{"version":3,"sources":["webpack:///81a587f43a1d4cf251db.worker.js","webpack:///webpack/bootstrap 81a587f43a1d4cf251db","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/react-pdf/dist/pdf.worker.entry.js","webpack:///./node_modules/pdfjs-dist/build/pdf.worker.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/process/browser.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","g","this","Function","eval","e","window","pdfjsWorker","root","factory","__w_pdfjs_require__","r","Symbol","toStringTag","value","t","mode","ns","create","key","bind","pdfjsCoreWorker","WorkerMessageHandler","_interopRequireDefault","obj","default","_typeof","iterator","constructor","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","TypeError","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","length","err","Array","isArray","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","WorkerTask","_regenerator","_util","_pdf_manager","_is_node","_message_handler","_primitives","terminated","_capability","createPromiseCapability","promise","finish","terminate","ensureNotTerminated","Error","PDFWorkerStream","msgHandler","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","PDFWorkerStreamReader","_this","_isRangeSupported","_isStreamingSupported","readableStream","sendWithStream","_reader","getReader","_headersReady","sendWithPromise","data","isStreamingSupported","isRangeSupported","contentLength","PDFWorkerStreamRangeReader","begin","end","onProgress","getFullReader","assert","getRangeReader","reader","cancelAllRequests","reason","cancel","slice","forEach","read","_ref","buffer","_ref2","setup","handler","port","testMessageProcessed","on","Uint8Array","send","supportTransfers","postMessageTransfers","xhr","XMLHttpRequest","responseExists","responseType","supportTypedArray","setVerbosityLevel","verbosity","createDocumentHandler","docParams","startWorkerTask","task","WorkerTasks","finishWorkerTask","indexOf","splice","loadDocument","_x","_loadDocument","mark","_callee","recoveryMode","_ref6","_ref7","numPages","fingerprint","wrap","_context","prev","pdfManager","ensureDoc","all","sent","abrupt","stop","getPdfManager","evaluatorOptions","pdfManagerCapability","source","LocalPdfManager","docId","password","docBaseUrl","ex","pdfStream","cachedChunks","fullRequest","headersReady","disableAutoFetch","NetworkPdfManager","rangeChunkSize","sendProgressiveData","cancelXHRs","catch","loaded","flushChunks","pdfFile","arraysToBytes","warn","readChunk","chunk","arrayByteLength","total","Math","max","setupDoc","onSuccess","doc","pdfInfo","onFailure","PasswordException","code","updatePassword","pdfManagerReady","boundException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","UnknownErrorException","message","toString","XRefParseException","requestLoadedStream","onLoadedStream","forceDataSchema","disableCreateObjectURL","maxImageSize","disableFontFace","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","newPdfManager","stream","bytes","byteLength","apiVersion","concat","workerHandlerName","MessageHandler","getPage","pageIndex","page","ensure","_ref3","_ref4","rotate","ref","userUnit","view","Ref","num","pdfDocument","catalog","getPageIndex","ensureCatalog","id","xref","stats","_ref5","intent","getAnnotationsData","pageNum","start","Date","now","getOperatorList","renderInteractiveForms","operatorList","totalLength","featureId","UNSUPPORTED_FEATURES","unknown","wrappedException","minimumStackMessage","stack","sink","onPull","desiredSize","onCancel","extractTextContent","normalizeWhitespace","combineTextItems","close","fontFallback","cleanup","waitOn","finished","destroy","initializeFromPort","maybePort","postMessage","hadRuntime","regeneratorRuntime","getOwnPropertyNames","oldRuntime","global","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","type","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","method","AsyncIterator","invoke","record","result","hasOwn","__await","unwrapped","enqueue","callInvokeWithMethodAndArg","previousPromise","state","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","GenStateSuspendedYield","return","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","values","iterable","iteratorMethod","iteratorSymbol","isNaN","Op","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","inModule","runtime","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","displayName","isGeneratorFunction","genFun","ctor","setPrototypeOf","__proto__","awrap","async","iter","keys","reverse","pop","skipTempReset","charAt","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","webpackPolyfill","deprecate","paths","children","level","Number","isInteger","getVerbosityLevel","msg","VerbosityLevel","INFOS","console","log","WARNINGS","deprecated","details","unreachable","cond","isSameOrigin","baseUrl","otherUrl","base","_url_polyfill","URL","origin","other","_isValidProtocol","url","protocol","createValidAbsoluteUrl","absoluteUrl","shadow","prop","writable","getLookupTableFactory","initializer","lookup","removeNullCharacters","str","replace","NullCharactersRegExp","bytesToString","String","fromCharCode","strBuf","chunkEnd","min","subarray","join","stringToBytes","charCodeAt","item","itemLength","resultLength","ii","pos","set","string32","log2","x","ceil","readInt8","readUint16","offset","readUint32","isLittleEndian","buffer8","Uint32Array","getInheritableProperty","dict","_ref$getArray","getArray","_ref$stopWhenFound","stopWhenFound","loopCount","toRomanNumerals","number","lowerCase","romanBuf","ROMAN_NUMBER_MAP","romanStr","toLowerCase","stringToPDFString","PDFStringTranslateTable","stringToUTF8String","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isEmptyObj","isBool","v","isNum","isString","isArrayBuffer","isSpace","ch","capability","isSettled","_streams_polyfill","ReadableStream","createObjectURL","FormatError","XRefEntryException","Util","TextRenderingMode","StreamType","PermissionFlag","PasswordResponses","NativeImageDecoding","MissingDataException","AbortException","CMapCompressionType","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","OPS","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","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","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","forms","javaScript","smask","shadingPattern","font","NEED_PASSWORD","INCORRECT_PASSWORD","status","rgbBuf","makeCssRgb","b","m1","m2","applyTransform","applyInverseTransform","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","a","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","compare","orderedX","sort","orderedY","digits","contentType","blob","Blob","b1","b2","b3","globalScope","_pdfjsCompatibilityChecked","isNodeJS","hasDOM","document","btoa","chars","Buffer","from","atob","input","Element","remove","parentNode","removeChild","div","createElement","classList","add","contains","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","_len","tokens","_key","token","_len2","_key2","_i2","toggle","force","startsWith","endsWith","includes","assign","finally","WeakMap","WeakSet","codePointAt","fromCodePoint","padStart","padEnd","process","versions","$export","toLength","$startsWith","P","F","searchString","that","index","search","core","hide","redefine","ctx","own","out","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","target","expProto","U","W","R","__g","version","__e","dP","createDesc","f","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","isObject","it","exec","is","val","valueOf","bitmap","has","SRC","$toString","TPL","split","inspectSource","safe","isFunction","px","random","aFunction","toInteger","floor","isRegExp","defined","NAME","cof","MATCH","store","uid","_Symbol","USE_SYMBOL","copyright","KEY","re","$endsWith","endPosition","len","$includes","el","toIObject","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","IObject","propertyIsEnumerable","UNSCOPABLES","ArrayProto","$at","iterated","_t","point","TO_STRING","LIBRARY","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","descriptor","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","open","write","lt","Properties","getKeys","defineProperties","$keys","arrayIndexOf","names","shared","documentElement","def","tag","stat","toObject","ObjectProto","isArrayIter","createProperty","getIterFn","arrayLike","step","C","aLen","mapfn","mapping","iterFn","ret","$defineProperty","classof","getIteratorMethod","ARG","tryGet","T","callee","SAFE_CLOSING","riter","skipClosing","gOPS","pIE","$assign","A","K","k","getSymbols","isEnum","j","getOwnPropertySymbols","LN2","isFinite","test","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","reaction","exited","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","_a","onrejectionhandled","$reject","_w","$resolve","wrapper","executor","onFulfilled","onRejected","$$reject","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","_exports","SPECIES","D","defer","channel","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","nextTick","port2","port1","onmessage","addEventListener","importScripts","setTimeout","clear","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","navigator","standalone","node","createTextNode","observe","characterData","PromiseCapability","$$resolve","promiseCapability","DESCRIPTORS","onFinally","callbackfn","InternalMap","each","meta","weak","fails","validate","getWeak","isExtensible","uncaughtFrozenStore","ufstore","tmp","$WeakMap","freeze","getConstructor","NEED","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","res","original","META","setDesc","FREEZE","preventExtensions","setMeta","w","fastKey","onFreeze","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","_l","UncaughtFrozenStore","findUncaughtFrozen","ADDER","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setStrong","check","buggy","gOPD","getOwnPropertyDescriptor","COLLECTION","of","cb","mapFn","nextItem","$fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$DP","gOPN","$JSON","JSON","_stringify","stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","findChild","setSymbolDesc","protoDesc","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","replacer","$replacer","symbols","windowNames","getWindowNames","hiddenKeys","$pad","maxLength","repeat","fillString","left","stringLength","fillStr","intMaxLength","fillLen","stringFiller","count","Infinity","$values","isEntries","isReadableStreamSupported","controller","_typeof2","IsPropertyKey","argument","Call","V","_require","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","size","rethrowAssertionErrorRejection","AssertionError","_classCallCheck","AcquireWritableStreamDefaultWriter","WritableStreamDefaultWriter","IsWritableStream","IsWritableStreamLocked","_writer","WritableStreamAbort","_state","_storedError","_pendingAbortRequest","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","WritableStreamAddWriteRequest","writeRequest","_writeRequests","WritableStreamDealWithRejection","WritableStreamFinishErroring","_writableStreamController","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","_started","__errorSteps","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","__abortSteps","WritableStreamFinishInFlightWrite","_inFlightWriteRequest","WritableStreamFinishInFlightWriteWithError","WritableStreamFinishInFlightClose","_inFlightCloseRequest","defaultWriterClosedPromiseResolve","WritableStreamFinishInFlightCloseWithError","WritableStreamCloseQueuedOrInFlight","_closeRequest","WritableStreamMarkCloseRequestInFlight","WritableStreamMarkFirstWriteRequestInFlight","shift","defaultWriterClosedPromiseReject","_closedPromise","WritableStreamUpdateBackpressure","backpressure","_backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","IsWritableStreamDefaultWriter","WritableStreamDefaultWriterAbort","_ownerWritableStream","WritableStreamDefaultWriterClose","closeRequest","WritableStreamDefaultControllerClose","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterEnsureClosedPromiseRejected","_closedPromiseState","defaultWriterClosedPromiseResetToRejected","_readyPromiseState","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","_readyPromise","WritableStreamDefaultWriterGetDesiredSize","WritableStreamDefaultControllerGetDesiredSize","WritableStreamDefaultWriterRelease","releasedError","WritableStreamDefaultWriterWrite","chunkSize","WritableStreamDefaultControllerGetChunkSize","defaultWriterLockException","WritableStreamDefaultControllerWrite","EnqueueValueWithSize","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","_strategySize","chunkSizeE","WritableStreamDefaultControllerErrorIfNeeded","_strategyHWM","_queueTotalSize","writeRecord","enqueueE","_controlledWritableStream","WritableStreamDefaultControllerGetBackpressure","IsWritableStreamDefaultController","_queue","PeekQueueValue","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamDefaultControllerError","DequeueValue","_underlyingSink","streamBrandCheckException","defaultWriterBrandCheckException","defaultWriterClosedPromiseInitialize","_closedPromise_resolve","_closedPromise_reject","defaultWriterClosedPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterReadyPromiseInitialize","_readyPromise_resolve","_readyPromise_reject","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterReadyPromiseInitializeAsResolved","_createClass","props","protoProps","staticProps","_require2","_require3","ResetQueue","WritableStream","underlyingSink","_ref$highWaterMark","WritableStreamDefaultController","__startSteps","normalizedStrategy","startResult","container","pair","AcquireReadableStreamBYOBReader","ReadableStreamBYOBReader","AcquireReadableStreamDefaultReader","ReadableStreamDefaultReader","IsReadableStream","IsReadableStreamDisturbed","_disturbed","IsReadableStreamLocked","ReadableStreamTee","cloneForBranch2","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","_teeState","_cloneForBranch2","cancel1","create_ReadableStreamTeeBranch1CancelFunction","_stream","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","_branch1","_readableStreamController","_branch2","ReadableStreamDefaultControllerError","branch1","branch2","ReadableStreamDefaultReaderRead","ReadableStreamDefaultControllerClose","value1","value2","ReadableStreamDefaultControllerEnqueue","compositeReason","cancelResult","ReadableStreamCancel","ReadableStreamAddReadIntoRequest","IsReadableStreamBYOBReader","readIntoRequest","_readIntoRequests","ReadableStreamAddReadRequest","IsReadableStreamDefaultReader","readRequest","_readRequests","ReadableStreamClose","__cancelSteps","defaultReaderClosedPromiseResolve","ReadableStreamError","defaultReaderClosedPromiseReject","ReadableStreamFulfillReadIntoRequest","ReadableStreamFulfillReadRequest","ReadableStreamGetNumReadIntoRequests","ReadableStreamGetNumReadRequests","ReadableStreamHasBYOBReader","ReadableStreamHasDefaultReader","ReadableStreamReaderGenericInitialize","_ownerReadableStream","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","ReadableStreamReaderGenericCancel","ReadableStreamReaderGenericRelease","defaultReaderClosedPromiseResetToRejected","ReadableStreamBYOBReaderRead","ReadableByteStreamControllerPullInto","__pullSteps","IsReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerShouldCallPull","_pulling","_pullAgain","_underlyingSource","ReadableStreamDefaultControllerErrorIfNeeded","_controlledReadableStream","_closeRequested","ReadableStreamDefaultControllerGetDesiredSize","IsReadableByteStreamController","IsReadableStreamBYOBRequest","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerShouldCallPull","_underlyingByteSource","ReadableByteStreamControllerError","ReadableByteStreamControllerClearPendingPullIntos","ReadableByteStreamControllerInvalidateBYOBRequest","_pendingPullIntos","ReadableByteStreamControllerCommitPullIntoDescriptor","pullIntoDescriptor","bytesFilled","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","readerType","elementSize","byteOffset","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerHandleQueueDrain","_byobRequest","_associatedReadableByteStreamController","_view","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","DataView","BYTES_PER_ELEMENT","emptyView","ReadableByteStreamControllerRespondInClosedState","firstDescriptor","ReadableByteStreamControllerRespondInReadableState","bytesWritten","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","transferredBuffer","transferredView","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","readerLockException","defaultReaderBrandCheckException","byobReaderBrandCheckException","defaultControllerBrandCheckException","byobRequestBrandCheckException","byteStreamControllerBrandCheckException","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_require4","_require5","underlyingSource","ReadableByteStreamController","ReadableStreamDefaultController","options","readable","pipeTo","preventClose","preventAbort","preventCancel","Boolean","shuttingDown","currentWrite","pipeLoop","waitForWritesToFinish","oldCurrentWrite","isOrBecomesErrored","action","shutdownWithAction","originalIsError","originalError","doTheRest","finalize","newError","shutdown","isError","destClosed","branches","ArrayBuffer","isView","pendingPromise","ReadableStreamBYOBRequest","underlyingByteSource","autoAllocateChunkSize","_autoAllocateChunkSize","viewE","bufferE","transformStream","writableStream","TransformStream","TransformStreamCloseReadable","_errored","_readableClosed","TransformStreamCloseReadableInternal","TransformStreamEnqueueToReadable","_readableController","TransformStreamErrorIfNeeded","TransformStreamSetBackpressure","TransformStreamError","TransformStreamErrorInternal","_writableDone","_writableController","TransformStreamReadableReadyPromise","_backpressureChangePromise","_backpressureChangePromise_resolve","resolution","TransformStreamDefaultTransform","transformStreamController","_controlledTransformStream","TransformStreamTransform","_transforming","transformer","_transformer","_transformStreamController","IsTransformStreamDefaultController","IsTransformStream","TransformStreamSink","startPromise","_transformStream","_startPromise","TransformStreamSource","TransformStreamDefaultController","readableController","readableStrategy","writableStrategy","startPromise_resolve","_readable","_writable","isURLSupported","u","pathname","href","PolyfillURL","OriginalURL","revokeObjectURL","isRelativeScheme","scheme","relative","invalid","_isInvalid","IDNAToASCII","h","percentEscape","unicode","percentEscapeQuery","parse","stateOverride","errors","cursor","seenAt","seenBracket","loop","EOF","ALPHA","ALPHANUMERIC","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","temp","parseInt","relativePathDotMapping","JURL","_url","authority","host","_","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","_inherits","subClass","superClass","_setPrototypeOf","ReferenceError","_defineProperties","_chunked_stream","_document","BasePdfManager","_x2","_x3","_ensure","_docId","_docBaseUrl","_BasePdfManager","Stream","PDFDocument","_loadedStreamPromise","_x4","_x5","_x6","_ensure2","_callee2","_context2","_BasePdfManager2","pdfNetworkStream","_this2","streamManager","ChunkedStreamManager","getStream","_x7","_x8","_x9","_ensure3","_callee3","_context3","t0","requestRange","requestAllChunks","onReceiveData","abort","ChunkedStream","manager","loadedChunks","numChunksLoaded","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","chunks","beginChunk","endChunk","curChunk","position","ensureByte","b0","getByte","forceClamped","strEnd","ensureRange","_subarray","Uint8ClampedArray","peekedByte","getBytes","ChunkedStreamSubstream","getMissingChunks","missingChunks","subStream","currRequestId","chunksNeededByRequest","requestsByChunk","promisesByRequest","aborted","_loadedStreamCapability","rangeReader","chunkData","_requestChunks","requestId","chunksNeeded","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_chunk","hasChunk","chunksToRequest","groupedChunksToRequest","groupChunks","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","groupedChunk","sendRequest","getBeginChunk","getEndChunk","ranges","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","range","groupedChunks","prevChunk","isProgressive","onReceiveProgressiveData","allChunksLoaded","loadedRequests","_chunk2","requestIds","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","nextEmptyChunk","lastChunk","_requestId","isAnnotationRenderable","annotation","viewable","printable","find","needle","limit","backwards","lastIndexOf","Page","_obj","_stream2","_annotation","_crypto","_parser","_operator_list","_evaluator","_function","LETTER_SIZE_MEDIABOX","pageDict","fontCache","builtInCMapCache","pdfFunctionFactory","resourcesPromise","uniquePrefix","idCounters","idFactory","createObjId","isDict","Dict","merge","content","streams","fetchIfRef","StreamsSequenceStream","isStream","NullStream","ObjectLoader","resources","load","contentStreamPromise","loadResources","partialEvaluator","PartialEvaluator","dataPromises","pageListPromise","contentStream","opList","OperatorList","transparency","hasBlendModes","_parsedAnnotations","pageOpList","annotations","opListPromises","opLists","addOp","addOpList","_this3","_ref8","_ref9","getTextContent","annotationsData","_getInheritableProperty","mediaBox","cropBox","intersection","_this4","parsedAnnotations","annotationRefs","annotationPromises","AnnotationFactory","filter","XRef","PDFFunctionFactory","_pagePromises","catDict","isName","pdfFormatVersion","acroForm","xfa","fields","moveStart","substring","setStartXRef","startXRef","Catalog","linearization","pageFirst","objectNumberFirst","fetchAsync","pageKidsCountCache","put","getPageDict","_this5","_getLinearizationPage","_ref10","_ref11","_this6","Linearization","startXRefLength","found","skip","infoDict","DocumentInfoValidators","Title","Author","Subject","Keywords","Creator","Producer","CreationDate","ModDate","Trapped","docInfo","PDFFormatVersion","IsLinearized","IsAcroFormPresent","IsXFAPresent","trailer","customValue","hash","idArray","calculateMD5","hex","fetchDestination","FileSpec","_colorspace","getCatalogObj","RefSetCache","Map","getRaw","isRef","items","processed","RefSet","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","title","flags","color","rgbColor","ColorSpace","singletons","rgb","getRgb","outlineItem","unsafeUrl","newWindow","bold","italic","encrypt","pow","permissions","destinationId","_readDests","NameTree","pageLabels","prefix","numberTree","NumberTree","nums","getAll","currentLabel","currentIndex","labelDict","st","baseCharCode","letterIndex","character","charBuf","jj","promises","translatedFonts","translatedFont","loadedName","fallback","translated","nodesToVisit","_ret","currentNode","currentPageIndex","objId","kids","pageRef","pagesBeforeRef","kidRef","parentRef","isRefsEqual","getAsync","kidPromises","kid","_args","streamRef","metadata","suppressEncryption","encryptMetadata","fetch","subtype","pagesObj","_readDocumentOutline","_readPermissions","toplevelPagesDict","dests","_readPageLabels","pageMode","openActionDest","attachments","nameTree","fs","serializable","appendIfJavaScriptDict","jsDict","js","openActionDict","actionType","params","actionName","urlDict","remoteDest","namedAction","jsAction","URL_OPEN_METHODS","regex","RegExp","jsUrl","xrefstms","cache","streamTypes","fontTypes","startXRefQueue","trailerDict","indexObjects","readXRef","assignXref","ids","fileId","CipherTransformFactory","processXRefTable","parser","tableState","entryNum","streamPos","lexer","parserBuf1","buf1","parserBuf2","buf2","readXRefTable","isCmd","getObj","firstEntryNum","entryCount","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","skipUntil","what","dataLength","skipped","LF","CR","LT","objRegExp","endobjRegExp","nestedObjRegExp","trailerBytes","startxrefBytes","objBytes","xrefBytes","trailers","xrefStms","startPos","endPos","checkPos","tokenStr","objToken","xrefTagOffset","Parser","Lexer","rootDict","startXRefParsedCache","topDict","getEntry","xrefEntry","cacheEntry","fetchUncompressed","fetchCompressed","makeSubStream","obj1","obj2","obj3","cmd","createCipherTransform","tableOffset","allowStreams","fetchIfRefAsync","_fetchIfRefAsync","_fetchAsync","NameOrNumberTree","_type","_ii","kidsOrEntries","limits","_r","_m","currentKey","_m2","mm","_NameOrNumberTree","_NameOrNumberTree2","description","contentAvailable","pickPlatformItem","_filename","filename","contentRef","fileObj","mayHaveChildren","addChildren","dictKeys","rawValue","_i3","_ii2","refSet","_walk","nodesToRevisit","pendingRequests","getBaseStreams","baseStreams","foundMissingData","requestRanges","_i4","_ii3","isEOF","Name","Cmd","v1","v2","nameCache","nameValue","cmdCache","cmdValue","_map","__nonSerializable__","nonSerializable","newXref","key1","key2","key3","callback","dictArray","mergedDict","keyName","putAlias","aliasRef","thisArg","computeAdler32","bytesLength","_ccitt_stream","_jbig2_stream","_jpeg_stream","_jpx_stream","imageCache","refill","tryShift","cipherTransform","makeInlineImage","array","makeStream","decryptString","findDefaultInlineStreamEnd","maybeEIPos","followingBytes","peekBytes","endOffset","peekByte","findDCTDecodeInlineStreamEnd","markerLength","foundEOI","getUint16","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","findASCIIHexDecodeInlineStreamEnd","dictLength","beginInlineImagePos","filterName","filterZero","cacheKey","imageStream","imageBytes","initialStreamPos","dictBytes","createStream","_findStreamLength","signature","signatureLength","scanBytes","scanLength","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","TRUNCATED_SIGNATURE","maybeLength","lastByte","makeFilter","filterArray","paramsArray","xrefStreamStats","PredictorStream","FlateStream","earlyChange","LZWStream","JpegStream","JpxStream","Ascii85Stream","AsciiHexStream","CCITTFaxStream","RunLengthStream","Jbig2Stream","knownCommands","toHexDigit","specialChars","currentChar","peekChar","getNumber","eNotation","divideBy","sign","baseValue","powerValue","powerValueSign","currentDigit","getString","numParen","charBuffered","getName","previousCh","x2","getHexString","firstDigit","secondDigit","isFirstHex","comment","knownCommandFound","possibleCommand","getInt","allowZeroValue","linDict","hints","hintsLength","endFirst","mainXRefEntriesOffset","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arr2","StringStream","DecodeStream","DecryptStream","arrayBuffer","getInt32","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","emptyBuffer","minBufferLength","readBlock","ensureBuffer","requested","buffer2","bufEnd","newLength","cmf","flg","codeSize","codeBuf","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","getBits","bits","getCode","table","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","code2","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","bitsLength","bitsOffset","codeLengths","repeatLength","code1","dist","blockLen","predictor","readBlockTiff","readBlockPng","colors","columns","pixBytes","rowBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","pa","pb","pc","decrypt","nextChunk","initialized","hasMoreData","maxDecodeLength","digit","repeatHeader","cachedData","bitsCached","lzwState","codeLength","nextCode","dictionaryValues","dictionaryLengths","Uint16Array","dictionaryPrevCodes","currentSequence","currentSequenceLength","readBits","lastCode","q","estimatedDecodedSize","blockSize","prevCode","decodedLength","currentBufferLength","hasPrev","_ccitt","ccittFaxDecoder","CCITTFaxDecoder","EndOfLine","EncodedByteAlign","Columns","Rows","EndOfBlock","BlackIs1","readNextChar","encoding","eoline","byteAlign","rows","eoblock","black","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","_lookBits","_eatBits","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","refPos","blackPixels","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","limitValue","_jbig","jbig2Image","Jbig2Image","globalsStream","globals","parseChunks","_arithmetic_decoder","Jbig2Error","ContextCache","DecodingContext","decodeInteger","contextCache","procedure","decoder","bit","readBit","contexts","getContexts","decodeIAID","decodeBitmapTemplate0","width","height","decodingContext","contextLabel","pixel","row1","row2","decodeBitmap","mmr","templateIndex","prediction","at","decodeMMRBitmap","Reader","y","useskip","template","CodingTemplates","templateLength","templateX","Int8Array","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","i0","j0","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ReusedContexts","ltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","RefinementTemplates","coding","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","reference","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","RefinementReusedContexts","decodeSymbolDictionary","huffman","refinement","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","tableB1","symbolWidths","newSymbols","currentHeight","symbolCodeLength","getStandardTable","tableDeltaHeight","decode","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","s2","t2","symbolRow","offsetT","offsetS","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","patternBitmap","collectiveWidth","patterns","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","mmrInput","grayScaleBitPlanes","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","SegmentTypes","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPattern","headerEnd","readSegments","header","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","numberOfPages","_visitor$currentPageI","currentPageInfo","bitPacked","imgData","mask","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","isLeaf","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","buildTree","decodeTablesSegment","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","getCustomHuffmanTable","customTables","getTextRegionHuffmanTables","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","getSymbolDictionaryHuffmanTables","tableAggregateInstances","endOfBlock","ArithmeticDecoder","onPageInformation","rowSize","drawBitmap","regionInfo","mask0","offset0","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","onSymbolDictionary","currentSegment","referredSegments","referredSymbols","onImmediateTextRegion","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeNode","htOffset","linesLength","prefixLengthMax","histogram","currentCode","currentTemp","currentLength","firstCode","numBits","_parseJbig","QeTable","qe","nmps","nlps","switchFlag","bp","dataEnd","chigh","clow","byteIn","ct","cx_index","cx_mps","qeTableIcx","qeIcx","_jpg","jpegOptions","decodeTransform","colorTransform","decodeArr","forceRGB","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","JpegImage","getData","drawWidth","drawHeight","isSourcePDF","getIR","JpegError","DNLMarkerError","scanLines","EOIMarkerError","_ref$decodeTransform","_ref$colorTransform","_decodeTransform","_colorTransform","buildHuffmanTable","getBlockBufferOffset","component","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","bitsCount","bitsData","nextByte","parseDNLMarker","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","z","dctZigZag","decodeDCFirst","decodeDCSuccessive","decodeACFirst","eobrun","decodeACSuccessive","offsetZ","successiveACState","successiveACNextValue","decodeFn","mcusPerLine","progressive","startOffset","componentsLength","fileMarker","mcuExpected","mcu","blocksPerColumn","mcusPerColumn","mcuToRead","mcuRow","mcuCol","findNextFileMarker","marker","quantizeAndInverse","blockBufferOffset","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","qt","quantizationTable","dctSqrt2","dctSqrt1d2","dctSin6","dctCos6","dctSin3","dctCos3","dctSin1","dctCos1","buildComponentData","computationBuffer","Int16Array","blockRow","blockCol","currentPos","peekUint16","maxPos","newPos","currentMarker","newMarker","_ref2$dnlScanLines","dnlScanLines","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","appData","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","precision","sofScanLines","samplesPerLine","componentIds","componentId","componentsCount","maxH","maxV","qId","quantizationId","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","_convertYccToRgb","Y","Cb","Cr","_convertYcckToRgb","_convertYcckToCmyk","_convertCmykToRgb","_ref3$forceRGB","_ref3$isSourcePDF","rgbData","grayColor","_isColorConversionNeeded","_jpx","jpxImage","JpxImage","tileCount","tiles","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","top","srcPosition","dataPosition","imgRowSize","tileRowSize","JpxError","failOnCorruptedImage","calculateComponentDimensions","siz","x0","XOsiz","XRsiz","x1","Xsiz","y0","YOsiz","YRsiz","y1","Ysiz","calculateTileGrids","tile","SIZ","numXtiles","XTOsiz","XTsiz","numYtiles","YTOsiz","YTsiz","tx0","ty0","tx1","ty1","Csiz","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","entropyCoderWithCustomPrecincts","PPx","precinctsSizes","PPy","xcb_","xcb","ycb_","ycb","buildPrecincts","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblock","precinctNumber","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","currentTile","layersCount","codingStyleDefaultParameters","maxDecompositionLevelsCount","decompositionLevelsCount","nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","py","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","scale","widthCurrentResolution","heightCurrentResolution","buildPackets","blocksDimensions","bscale","resolutionSubbands","progressionOrder","packetsIterator","parseTilePackets","bufferSize","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","sopMarkerUsed","COD","ephMarkerUsed","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","inclusionTree","zeroBitPlanesTree","InclusionTree","TagTree","incrementValue","nextLevel","included","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","segmentationSymbolUsed","right","bottom","blockWidth","blockHeight","bitModel","currentCodingpassType","BitModel","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","nb","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","interleave","levelOffset","transformTile","quantizationParameters","spqcds","SPqcds","scalarExpounded","guardBits","reversibleTransformation","ReversibleTransform","IrreversibleTransform","subbandCoefficients","Float32Array","mu","epsilon","gainLog2","SubbandsGainLog2","calculate","transformComponents","resultImages","transformedTiles","y2","tile0","multipleComponentTransform","fourComponents","y0items","y1items","y2items","y3items","component0","alpha01","initializeTile","qcdOrQcc","QCC","QCD","COC","parseCodestream","headerSize","lbox","tbox","jumpDataLength","colorspace","headerType","parseImageProperties","newByte","oldByte","doNotRecover","sqcd","spqcdSize","mainHeader","isSigned","qcd","noQuantization","spqcd","qcc","cqcc","cod","scod","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","precinctsSize","unsupported","partIndex","partsCount","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","contextLabelTable","HHContextLabel","HLContextLabel","LLAndLHContextsLabel","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","decoded","horizontalContribution","indexNext","width4","index0","significance","iNext","oneRowDown","twoRowsDown","threeRowsDown","indexBase","checkAllEmpty","allEmpty","i2","Transform","u0","ll","iterate","extend","j1","j2","hl_lh_hh","llWidth","llHeight","llItems","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","gamma","calculateSHA512","calculateSHA384","calculateSHA256","PDF20","PDF17","ARCFourCipher","AES256Cipher","AES128Cipher","keyLength","encryptBlock","tmp2","decryptBlock","h0","h1","h2","h3","paddedLength","padded","rotateArg","Word64","highInteger","lowInteger","high","low","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","rotr","maj","sigma","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","t1","mode384","tmp3","tmp1","NullCipher","AESBaseCipher","_inv_s","_mix","_mixCol","bufferPosition","cipherKey","_keySize","_cyclesOfRepetition","_j","_j2","_j3","s0","s1","s3","_j4","_j5","_j6","_j7","_j8","_j9","_k2","sourceLength","iv","plain","_decrypt","outputLength","lastBlock","psLen","_j10","_decryptBlock2","cipher","_encrypt","_j11","_AESBaseCipher","_rcon","_expandKey","rcon","t3","t4","_AESBaseCipher2","compareByteArrays","array1","array2","checkOwnerPassword","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","concatArrays","calculatePDF20Hash","arrayLength","k1","concatBytes","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","hashDataSize","defaultPasswordBytes","keyLengthInBytes","checkData","encryptionKey","derivedKey","decodeUserPassword","algorithm","cfDict","streamCryptoName","handlerDict","passwordBytes","fileIdBytes","cf","stmf","identityName","strf","eff","buildObjectKey","isAes","buildCipherConstructor","cfm","cryptFilter","cipherConstructor","resizeRgbImage","w1","w2","oldIndex","xRatio","yRatio","newIndex","xScaled","w1Scanline","numComps","getRgbItem","inputLength","decodeMap","bpc","isDefaultDecode","originalWidth","originalHeight","actualHeight","comps","numComponentColors","needsResizing","isPassthrough","allColors","colorMap","getRgbBuffer","rgbPos","destPos","_destPos","_rgbPos","cs","IR","parseToIR","fromIR","whitePoint","blackPoint","gray","cmyk","CalGrayCS","matrix","CalRGBCS","basePatternCS","PatternCS","baseIndexedCS","hiVal","IndexedCS","alt","tintFn","AlternateCS","LabCS","colorSpaces","resCS","altIR","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","_ColorSpace","tmpBuf","baseNumComps","usesZeroToOneRange","baseBuf","scaled","tinted","getOutputLength","_ColorSpace2","baseCS","_ColorSpace3","highVal","outputDelta","lookupPos","_ColorSpace4","_ColorSpace5","convertToRgb","srcScale","_ColorSpace6","AG","L","YW","_ColorSpace7","XW","ZW","XB","YB","ZB","matrixProduct","convertToFlat","sourceWhitePoint","LMS","convertToD65","sRGBTransferFunction","adjustToRange","decodeL","DECODE_L_CONSTANT","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","BRADFORD_SCALE_MATRIX","LMS_Flat","tempNormalizeMatrix","BRADFORD_SCALE_INVERSE_MATRIX","normalizeWhitePointToD65","LMS_D65","AGR","GR","BGG","GG","CGB","GB","X","MXA","MXB","MXC","MYA","MYB","MYC","Z","MZA","MZB","MZC","XYZ","tempConvertMatrix1","tempConvertMatrix2","XYZ_Black","XYZ_D65","FLAT_WHITEPOINT_MATRIX","SRGB","SRGB_D65_XYZ_TO_RGB_MATRIX","_ColorSpace8","fn_g","high1","low2","high2","maxVal","Ls","as","bs","amin","amax","bmin","bmax","M","N","_ColorSpace9","_get","receiver","Reflect","_superPropBase","desc","getTransformMatrix","bbox","bounds","maxY","AnnotationBorderStyle","Annotation","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","WidgetAnnotation","PopupAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","annotationFlags","borderStyle","hasAppearance","appearance","flag","_hasFlag","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","hasPopup","contents","evaluator","renderForms","appearanceDict","_isViewable","_isPrintable","dashArray","horizontalCornerRadius","verticalCornerRadius","isValid","allZeros","element","radius","_Annotation","annotationType","fieldName","_constructFieldName","fieldValue","alternativeText","defaultAppearance","fieldResources","fieldFlags","readOnly","hasFieldFlag","unshift","loopDict","_WidgetAnnotation","alignment","textAlignment","maximumLength","multiLine","comb","_WidgetAnnotation2","checkBox","radioButton","pushButton","_processCheckBox","_processRadioButton","_processPushButton","customAppearance","exportValueOptionsDict","exportValues","exportValue","buttonValue","fieldParent","fieldParentValue","_WidgetAnnotation3","option","isOptionArray","displayValue","combo","multiSelect","_Annotation2","_preparePopup","_Annotation3","_this7","_Annotation4","_this8","parentItem","parentSubtype","parentType","parentId","parentFlags","_Annotation5","_this9","lineCoordinates","_Annotation6","_this10","_Annotation7","_this11","_Annotation8","_this12","rawVertices","vertices","_PolylineAnnotation","_this13","_Annotation9","_this14","originalInkLists","inkLists","_Annotation10","_this15","_Annotation11","_this16","_Annotation12","_this17","_Annotation13","_this18","_Annotation14","_this19","_Annotation15","_this20","file","QueueOptimizer","addState","parentState","pattern","checkFn","iterateFn","processFn","handlePaintSolidColorImageMask","iFirstSave","fnArray","argsArray","iFirstPIMXO","imageMask","iCurr","match","lastProcessed","InitialState","curr","iFirstTransform","iFirstPIIXO","map","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","dataOffset","iTransform","transformArgs","isSameImage","firstPIMXOArg0","firstTransformArg0","firstTransformArg3","iPIMXO","positions","images","maskParams","iFirstPIXO","firstPIXOArg0","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","_optimize","NullOptimizer","getTransfers","transfers","cached","messageHandler","optimizer","dependencies","_totalLength","weight","CHUNK_SIZE","addDependency","addDependencies","_cmap","_fonts","_encodings","_unicode","_standard_fonts","_pattern","_bidi","_glyphlist","_metrics","_murmurhash","_image","NativeImageDecoder","_ref$forceDataSchema","_ref3$options","DefaultPartialEvaluatorOptions","fetchBuiltInCMap","compressionType","TimeSlotManager","normalizeBlendMode","canDecode","image","isDecodable","colorSpace","isSupported","checked","endTime","deferred","clone","newOptions","newEvaluator","nodes","graphicStates","graphicStatesKeys","graphicState","bm","xObjects","xObjectsKeys","xObject","xResources","buildFormXObject","xobj","initialState","group","groupOptions","isolated","knockout","groupSubtype","backdrop","buildPaintImageXObject","_ref5$isInline","isInline","_ref5$forceDisableNat","forceDisableNativeImageDecoder","bitStrideLength","imgArray","PDFImage","createMask","imageIsFromDecodeStream","inverseDecode","softMask","createImageData","nativeImageDecoder","buildImage","nativeDecoder","imageObj","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","isPDFFunction","transferFn","transferMap","handleTilingType","patternDict","tilingOpList","resourcesArray","patternResources","getTilingPatternIR","tilingPatternIR","handleSetFont","fontArgs","fontRef","fontName","loadFont","isType3Font","loadType3Data","TranslatedFont","ErrorFont","handleText","glyphs","charsToGlyphs","textRenderingMode","fillColorSpace","buildFontPaths","gState","gStateObj","gStateKeys","errorFont","fontRes","fontID","fontCapability","preEvaluatedFont","preEvaluateFont","fontRefIsRef","fontAliases","aliasFontRef","Font","getFontID","translatedPromise","translateFont","fontType","fontFile3","getFontType","buildPath","lastIndex","opArgs","handleColorN","patternName","typeNum","shading","Pattern","parseShading","closePendingRestoreOPS","preprocessor","savedStatesDepth","_ref6$initialState","EvalState","xobjs","StateManager","EvaluatorPreprocessor","timeSlotManager","promiseBody","operation","resolveXObject","rejectXObject","fontSize","combinedGlyphs","arrLength","arrItem","strokeColorSpace","shadingRes","patternIR","dictName","extGState","ensureTextContentItem","textContentItem","textState","seenStyles","textContent","styles","fontFamily","fallbackName","ascent","descent","vertical","tsm","textHScale","textRise","fontMatrix","glyphHeight","trm","ctm","textMatrix","textLineMatrix","scaleLineX","scaleCtmX","textAdvanceScale","lastAdvanceWidth","lastAdvanceHeight","spaceWidth","fakeSpaceMin","SPACE_FACTOR","fakeMultiSpaceMin","MULTI_SPACE_FACTOR","fakeMultiSpaceMax","MULTI_SPACE_FACTOR_MAX","textRunBreakAllowed","isMonospace","replaceWhitespace","WhitespaceRegexp","runBidiTransform","textChunk","bidiResult","bidi","dir","buildTextContentItem","glyph","glyphWidth","vmetric","glyphUnicode","NormalizedUnicodes","getNormalizedUnicodes","reverseIfRtl","charSpacing","wordSpacing","addFakeSpaces","tx","ty","translateTextMatrix","abs","fakeSpaces","round","flushTextContentItem","enqueueChunk","_ref7$stateManager","_ref7$normalizeWhites","_ref7$combineTextItem","_ref7$seenStyles","TextState","skipEmptyXObjs","advance","fontNameArg","fontSizeArg","leading","isSameTextLine","translateTextLineMatrix","carriageReturn","calcTextLineMatrixAdvance","setTextLineMatrix","breakTextRun","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","gStateFont","extractDataStructures","baseDict","properties","toUnicode","toUnicodePromise","readToUnicode","composite","cidSystemInfo","registry","ordering","supplement","cidToGidMap","readCidToGidMap","differences","baseEncodingName","diffEncoding","defaultEncoding","getEncoding","isSymbolicFont","FontFlags","Symbolic","isNonsymbolicFont","Nonsymbolic","StandardEncoding","WinAnsiEncoding","MacRomanEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","hasEncoding","buildToUnicode","_buildSimpleFontToUnicode","charcode","glyphName","glyphsUnicodeMap","getGlyphsUnicode","getUnicodeForGlyph","baseEncoding","ToUnicodeMap","hasIncludedToUnicodeMap","fallbackToUnicode","cMap","builtInCMap","IdentityCMap","ucs2CMapName","CMapFactory","useCMap","ucs2CMap","cid","ucs2","IdentityToUnicodeMap","firstChar","lastChar","cmapObj","cmap","getMap","charCode","cidToGidStream","glyphsData","glyphID","extractWidths","defaultVMetrics","widths","glyphsWidths","defaultWidth","glyphsVMetrics","vmetrics","parseFloat","baseFontName","metrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","FixedPitch","isSerifFont","fontNameWoStyle","getSerifFonts","monospace","stdFontMap","getStdFontMap","lookupName","Metrics","getMetrics","glyphWidths","widthsByGlyphName","uint8array","df","MurmurHash3_64","update","diffLength","diffBuf","diffEntry","hexdigest","maxCharIndex","Serif","getSymbolsFonts","baseFont","fontNameStr","baseFontStr","fontFile","length1","length2","length3","wideChars","fixedPitch","xHeight","capHeight","italicAngle","cMapPromise","cidEncoding","fontChar","renderer","hasBuiltPath","getPathJs","accent","type3Loaded","exportData","glyphCacheValues","parentOperatorList","type3Options","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcKeys","charProcOperatorList","glyphStream","stateStack","old","txDiff","tyDiff","denominator","calcRenderMatrix","opMap","getOPMap","nonProcessedArgs","_numInvalidPathOPS","numArgs","variableArgs","opSpec","argsLength","partialMsg","preprocessCommand","CMap","BUILT_IN_CMAPS","codespaceRanges","numCodespaceRanges","dstLow","dst","nn","codespaceRange","_CMap","addCodespaceRange","BinaryCMapReader","hexToInt","hexToStr","addHex","incHex","BinaryCMapStream","MAX_ENCODED_NUM_SIZE","processBinaryCMap","readByte","MAX_NUM_SIZE","char","sequence","dataSize","subitemsCount","readNumber","readHex","readHexNumber","mapOne","readSigned","mapCidRange","readHexSigned","mapBfRange","readString","sp","strToInt","expectString","expectInt","parseBfChar","parseBfRange","mapBfRangeToArray","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","newCMap","useCodespaceRanges","cMapData","parsedCMap","isIdentityCMap","adjustWidths","adjustToUnicode","builtInEncoding","amend","recoverGlyphName","type1FontGlyphMapping","glyphNames","glyphId","charCodeToGlyphId","standardGlyphName","SEAC_ANALYSIS_ENABLED","_cff_parser","_font_renderer","_type1_parser","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","Script","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","Glyph","operatorListId","isInFont","matchesForCache","charCodeOf","OpenTypeFileBuilder","writeInt16","writeInt32","writeData","sfnt","tables","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","toArray","tablesNames","tableName","numTables","tableOffsets","searchParams","checksum","addTable","sizes","missingFile","glyphCache","toFontChar","isEmpty","fallbackToSystemFont","_getFontFileType","getFontFileType","_getFontFileType2","mimetype","cff","CFFFont","Type1Font","convert","checkAndRepair","isOpenType","seacMap","int16","writeSignedInt16","signedInt16","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","fileType","fileSubtype","buildToFontChar","adjustMapping","hasGlyph","newGlyphZeroId","newMap","privateUseAreaIndex","nextAvailableFontCharCode","privateUseOffetEnd","originalCharCode","fontCharCode","getRanges","numGlyphs","codeIndices","createCmapTable","bmpLength","trailingRangesCount","segCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","bias","contiguous","format314","format31012","header31012","validateOS2Table","os2","selection","createOS2Table","charstrings","override","unitsPerEm","yMax","yMin","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","getUnicodeRangeFor","ascentScaled","typoAscent","typoDescent","winAscent","winDescent","createPostTable","angle","createNameTable","strings","stringsUnicode","strBufUnicode","platforms","encodings","languages","namesRecordCount","nameTable","strOffset","strs","ID","FontRendererFactory","nonStdFontMap","getNonStdFontMap","isStandardFont","remeasure","GlyphMapForStandardFonts","getGlyphMapForStandardFonts","SupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForArialBlack","SupplementalGlyphMapForCalibri","getSupplementalGlyphMapForCalibri","unicodeCharCode","getDingbatsGlyphsUnicode","readTables","readTableEntry","VALID_TABLES","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","sanitizeGlyph","sourceStart","sourceEnd","hintsValid","glyphProfile","sizeOfInstructions","glyf","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xyLength","glyphDataLength","readNameTable","numRecords","stringsStart","records","platform","language","nameIndex","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsStackDeltas","stackTop","functionsDefined","functionsUsed","newStackLength","stackDelta","TTOpsStackDeltas","NaN","foldTTTable","checkInvalidFunctions","maxFunctionDefs","missingGlyphs","ttcData","_readTrueTypeCollecti","potentialHeader","potentialTables","nameEntry","cffFile","isTrueType","isComposite","numGlyphsOut","dupFirstEntry","maxSizeOfInstructions","fpgm","prep","cvt","cvtData","numOfMetrics","numOfSidebearings","numMissing","locaLength","indexToLocFormat","numGlyphsPlusOne","isGlyphLocationsLong","glyphsInfo","loca","itemSize","itemDecode","itemEncode","locaData","locaDataSize","oldGlyfData","oldGlyfDataLength","newGlyfData","writeOffset","simpleGlyph","firstEntryLength","metricsOverride","post","maxpNumGlyphs","valid","glyphNameIndexes","customNames","isCidToGidMapEmpty","cmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","format","segIndex","offsetsCount","rangeOffset","offsetIndex","offsets","cmapPlatformId","cmapEncodingId","cmapMappings","cmapMappingsLength","unicodeOrCharCode","glyphZeroId","newMapping","CFFParser","duplicateFirstGlyph","compiler","CFFCompiler","compile","namePrototype","builder","tableTag","createCharCode","getGlyphMapping","hasGlyphId","seacs","charset","getCharset","seac","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","charCodes","baseFontCharCode","accentFontCharCode","tan","cffWidths","hmtx","charstring","_shadowWidth","possibleSpaceReplacements","charToGlyph","widthCode","mapSpecialUnicodeValues","charsCache","charsCacheKey","readCharCode","findBlock","streamBytes","startIndex","streamBytesLength","getHeaderBlock","suggestedLength","headerBytes","headerBytesLength","block","EEXEC_SIGNATURE","streamStartPos","getEexecBlock","eexecBytes","headerBlockLength","eexecBlockLength","pfbHeader","pfbHeaderPresent","headerBlock","Type1Parser","extractFontHeader","eexecBlock","eexecBlockParser","extractFontProgram","type2Charstrings","getType2Charstrings","subrs","getType2Subrs","getSeacs","type1Charstrings","type1Subrs","type2Subrs","CFF","CFFHeader","CFFTopDict","setByName","CFFStrings","globalSubrIndex","CFFIndex","charsetArray","CFFStandardStrings","CFFCharset","charStringsIndex","charStrings","privateDict","CFFPrivateDict","field","privateData","subrIndex","subrsIndex","charsets","isCIDFont","CFFFDSelect","_charsets","seacAnalysisEnabled","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackFn","parseHeader","parseIndex","topDictIndex","stringIndex","topDictParsed","parseDict","createDict","parseNameIndex","parseStringIndex","parsePrivateDict","hasName","charStringOffset","getByName","charStringIndex","fontBBox","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","localSubrIndex","hdrSize","offSize","parseFloatOperand","operands","cffIndex","offsetSize","offsetStart","offsetEnd","Type","cffDict","setByKey","parseCharString","callDepth","stackSize","validationCommand","subrNumber","hasVStems","firstStackClearing","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","emptyPrivateDictionary","parentDict","privateOffset","removeByName","privateDictEnd","dictData","subrsOffset","relativeOffset","CFFCharsetPredefinedTypes","ISO_ADOBE","ISOAdobeCharset","EXPERT","ExpertCharset","EXPERT_SUBSET","ExpertSubsetCharset","raw","predefined","ExpertEncoding","dataStart","glyphsCount","rangesCount","gid","supplementsCount","sid","CFFEncoding","glyphZero","objects","CFFDict","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","valueLength","createTables","layout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","offset1","offset2","offset3","offset4","compileHeader","compileNameIndex","subDict","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeFloat","encodeInteger","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","offsetTracker","compileGlobalSubrIndex","writeByteArray","compileTypedArray","lastFD","currentFD","numRanges","lastOffset","encodingName","MacExpertEncoding","getSpecialPUASymbols","hexStr","nameLen","toUpperCase","UnicodeRanges","isRTLRangeFor","charsLength","getLong","getUshort","parseCmap","idDelta","idOffset","groups","parseCff","gsubrs","isCFFCIDFont","parseGlyfTable","lookupCmap","compileGlyf","cmds","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","numberOfPoints","points","startPoint","endPoint","contour","compileCharString","bezierCurveTo","xb","yb","y3","subrCode","stackClean","stems","numSubrs","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","compileGlyph","compileGlyphImpl","TrueTypeCompiled","_CompiledFont","Type2Compiled","_CompiledFont2","cffInfo","Type1CharString","lsb","flexing","COMMAND_MAP","encoded","wx","sbx","dy","executeCommand","vmoveto","rlineto","hlineto","vlineto","rrcurveto","hmoveto","endchar","rmoveto","vhcurveto","hvcurveto","sby","num2","num1","flexArgs","flex","howManyArgs","command","keepStack","stackLength","isHexDigit","discardNumber","decrypted","decryptAscii","digit1","digit2","isSpecial","encrypted","isBinary","EEXEC_ENCRYPT_KEY","readNumberArray","getToken","readInt","readBoolean","readCharStrings","lenIV","program","blueArray","charString","encodingArg","xstep","ystep","paintType","tilingType","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","getPattern","Shadings","RadialAxial","Mesh","Dummy","SMALL_NUMBER","coordsArr","shadingType","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","fnObj","createFromArray","colorStops","ratio","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","tmpCsCompsBuf","colorFn","decodeType4Shading","mesh","coords","operators","ps","verticesLeft","hasData","readFlag","coord","readCoordinate","readComponents","align","figures","decodeType5Shading","verticesPerRow","buildFigureFromPatch","figure","ci","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","TRIANGLE_DENSITY","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","splitYBy","figureCoords","figureColors","cl","cr","c0","c1","c2","c3","bRow","getB","bCol","newColor","decodeType6Shading","tmp4","decodeType7Shading","updateBounds","packData","coordsPacked","xy","colorsPacked","decodeContext","bitsPerCoordinate","bitsPerFlag","patchMesh","xi","yi","buildB","lut","t_","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","startLevel","strLength","numBidi","charType","baseTypes","arabicTypes","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","toNumberArray","fnDict","PostScriptCompiler","PostScriptEvaluator","_ps_parser","IsEvalSupportedCached","_ref$isEvalSupported","PDFFunction","parseArray","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","constructSampled","constructInterpolated","constructStiched","constructPostScript","typeFn","constructSampledFromIR","constructInterpolatedFromIR","constructStichedFromIR","constructPostScriptFromIR","toMultiArray","inputSize","encode","interpolate","xmin","xmax","ymin","ymax","samples","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","fnRefs","fns","dmin","dmax","rmin","rmax","_ref12","PostScriptLexer","PostScriptParser","_ref13","numOutputs","numInputs","cache_available","cachedValue","execute","stackIndex","bound","PostScriptStack","initialStack","copy","roll","operator","atan","cos","LN10","sin","AstNode","AstArgument","AstLiteral","AstBinaryOperation","AstMin","AstVariable","AstVariableDefinition","variable","ExpressionBuilderVisitor","parts","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","visit","visitArgument","visitLiteral","visitBinaryOperation","visitMin","visitVariable","visitVariableDefinition","literal","definition","ast1","ast2","tmpVar","instructions","lastRegister","instruction","statementBuilder","expr","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","opValue","getOperator","seed","blockCounts","tailLength","dataUint32","k2","C1","C2","handleImageData","decodeAndClamp","addend","coefficient","resizeImageMask","_ref$isInline","_ref$smask","_ref$mask","_ref$isMask","isMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","smaskPromise","maskPromise","_ref2$isInline","_ref2$nativeDecoder","imagePromise","imageData","smaskData","maskData","computedLength","haveFullData","decodeBuffer","getComponents","buf","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","sh","fillGrayBuffer","opacity","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","forceRGBA","getImageBytes","newArray","imageLength","maybeUndoPreblend","fillRgb","resolveCall","_resolveCall","wrapReason","makeReasonSerializable","resolveOrReject","success","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","_sourceName","_targetName","_createStreamSink","scope","queueingStrategy","startCapability","startCall","isClosed","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","sendStreamResponse","deleteStreamController","removeEventListener","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","string","isEncoding","actual","fromArrayLike","isBuffer","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","indexSize","readUInt16BE","valLength","foundIndex","hexWrite","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","fromByteArray","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","trim","units","leadSurrogate","byteArray","hi","lo","toByteArray","INSPECT_MAX_BYTES","foo","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","getLens","b64","validLen","lens","placeHoldersLen","_byteLength","Arr","curByte","revLookup","tripletToBase64","encodeChunk","uint8","extraBytes","len2","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","timeout","Item","noop","browser","env","argv","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask"],"mappings":"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AAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,KAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,SAAW,GACriJI,GAAoB,GAAIJ,aAAY,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,EAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,IAAW,EAuS1U,OA1QAtE,GAAY5pE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAEnD4pE,EAAY5pE,UAAUuuE,QAAU,SAA6BC,GAM3D,IALA,GAGIpiD,GAHAjS,EAAM9Z,KAAK8Z,IACX4zD,EAAW1tE,KAAK0tE,SAChBC,EAAU3tE,KAAK2tE,QAGZD,EAAWS,GAAM,CACtB,IAA6B,KAAxBpiD,EAAIjS,EAAIixC,WACX,KAAM,IAAI7mD,GAAM6Z,YAAY,+BAG9B4vD,IAAW5hD,GAAK2hD,EAChBA,GAAY,EAMd,MAHA3hD,GAAI4hD,GAAW,GAAKQ,GAAQ,EAC5BnuE,KAAK2tE,QAAUA,GAAWQ,EAC1BnuE,KAAK0tE,SAAWA,GAAYS,EACrBpiD,GAGTw9C,EAAY5pE,UAAUyuE,QAAU,SAA6BC,GAQ3D,IAPA,GAKItiD,GALAjS,EAAM9Z,KAAK8Z,IACXw0D,EAAQD,EAAM,GACdE,EAASF,EAAM,GACfX,EAAW1tE,KAAK0tE,SAChBC,EAAU3tE,KAAK2tE,QAGZD,EAAWa,IACa,KAAxBxiD,EAAIjS,EAAIixC,YAIb4iB,GAAW5hD,GAAK2hD,EAChBA,GAAY,CAGd,IAAIvhE,GAAOmiE,EAAMX,GAAW,GAAKY,GAAU,GACvCC,EAAUriE,GAAQ,GAClBsiE,EAAiB,MAAPtiE,CAEd,IAAIqiE,EAAU,GAAKd,EAAWc,EAC5B,KAAM,IAAItqE,GAAM6Z,YAAY,+BAK9B,OAFA/d,MAAK2tE,QAAUA,GAAWa,EAC1BxuE,KAAK0tE,SAAWA,EAAWc,EACpBC,GAGTlF,EAAY5pE,UAAU+uE,qBAAuB,SAAyCC,GACpF,GAEIlwE,GAFAc,EAAIovE,EAAQhsE,OACZ4rE,EAAS,CAGb,KAAK9vE,EAAI,EAAGA,EAAIc,IAAKd,EACfkwE,EAAQlwE,GAAK8vE,IACfA,EAASI,EAAQlwE,GAOrB,KAAK,GAHDkwC,GAAO,GAAK4/B,EACZD,EAAQ,GAAIT,YAAWl/B,GAElBjZ,EAAM,EAAGvpB,EAAO,EAAGmpD,EAAO,EAAG5/B,GAAO64C,IAAU74C,EAAKvpB,IAAS,EAAGmpD,IAAS,EAC/E,IAAK,GAAI1hC,GAAM,EAAGA,EAAMr0B,IAAKq0B,EAC3B,GAAI+6C,EAAQ/6C,KAAS8B,EAAK,CACxB,GAAIk5C,GAAQ,EACR/tE,EAAIsL,CAER,KAAK1N,EAAI,EAAGA,EAAIi3B,IAAOj3B,EACrBmwE,EAAQA,GAAS,EAAQ,EAAJ/tE,EACrBA,IAAM,CAGR,KAAKpC,EAAImwE,EAAOnwE,EAAIkwC,EAAMlwC,GAAK62D,EAC7BgZ,EAAM7vE,GAAKi3B,GAAO,GAAK9B,IAGvBznB,EAKR,OAAQmiE,EAAOC,IAGjBhF,EAAY5pE,UAAUutE,UAAY,WAChC,GAAIhmE,GAAQwuB,EACR5b,EAAM9Z,KAAK8Z,IACX+0D,EAAM7uE,KAAKkuE,QAAQ,EAQvB,IANU,EAANW,IACF7uE,KAAK+sE,KAAM,GAKD,KAFZ8B,IAAQ,GAER,CAwDA,GAAIC,GACAC,CAEJ,IAAY,IAARF,EACFC,EAAed,EACfe,EAAgBd,MACX,IAAY,IAARY,EAgDT,KAAM,IAAI3qE,GAAM6Z,YAAY,qCA/C5B,IAIItf,GAJAuwE,EAAchvE,KAAKkuE,QAAQ,GAAK,IAChCe,EAAejvE,KAAKkuE,QAAQ,GAAK,EACjCgB,EAAkBlvE,KAAKkuE,QAAQ,GAAK,EACpCiB,EAAqB,GAAI1nE,YAAWmmE,EAAejrE,OAGvD,KAAKlE,EAAI,EAAGA,EAAIywE,IAAmBzwE,EACjC0wE,EAAmBvB,EAAenvE,IAAMuB,KAAKkuE,QAAQ,EAGvD,IAAIkB,GAAiBpvE,KAAK0uE,qBAAqBS,EAC/Cz5C,GAAM,EACNj3B,EAAI,CAKJ,KAJA,GAEI4wE,GAAYC,EAAYzP,EAFxByO,EAAQU,EAAcC,EACtBM,EAAc,GAAI9nE,YAAW6mE,GAG1B7vE,EAAI6vE,GAAO,CAChB,GAAIniE,GAAOnM,KAAKouE,QAAQgB,EAExB,IAAa,KAATjjE,EACFkjE,EAAa,EACbC,EAAa,EACbzP,EAAOnqC,MACF,IAAa,KAATvpB,EACTkjE,EAAa,EACbC,EAAa,EACbzP,EAAOnqC,EAAM,MACR,IAAa,KAATvpB,EAIJ,CACLojE,EAAY9wE,KAAOi3B,EAAMvpB,CACzB,UALAkjE,EAAa,EACbC,EAAa,GACbzP,EAAOnqC,EAAM,EAQf,IAFA,GAAI85C,GAAexvE,KAAKkuE,QAAQmB,GAAcC,EAEvCE,KAAiB,GACtBD,EAAY9wE,KAAOohE,EAIvBiP,EAAe9uE,KAAK0uE,qBAAqBa,EAAYh1D,SAAS,EAAGy0D,IACjED,EAAgB/uE,KAAK0uE,qBAAqBa,EAAYh1D,SAASy0D,EAAaV,IAK9EpnE,EAASlH,KAAKkH,MAId,KAHA,GAAIooD,GAAQpoD,EAASA,EAAOvE,OAAS,EACjCoY,EAAM/a,KAAK8sE,eAEF,CACX,GAAI2C,GAAQzvE,KAAKouE,QAAQU,EAEzB,IAAIW,EAAQ,IACN10D,EAAM,GAAKu0C,IACbpoD,EAASlH,KAAKmtE,aAAapyD,EAAM,GACjCu0C,EAAQpoD,EAAOvE,QAGjBuE,EAAO6T,KAAS00D,MANlB,CAUA,GAAc,MAAVA,EAEF,YADAzvE,KAAK8sE,aAAe/xD,EAItB00D,IAAS,IACTA,EAAQ3B,EAAa2B,EACrB,IAAIb,GAAQa,GAAS,EAEjBb,GAAQ,IACVA,EAAQ5uE,KAAKkuE,QAAQU,IAGvBl5C,GAAe,MAAR+5C,GAAkBb,EACzBa,EAAQzvE,KAAKouE,QAAQW,GACrBU,EAAQ1B,EAAW0B,GACnBb,EAAQa,GAAS,GAEbb,EAAQ,IACVA,EAAQ5uE,KAAKkuE,QAAQU,GAGvB,IAAIc,IAAgB,MAARD,GAAkBb,CAE1B7zD,GAAM2a,GAAO45B,IACfpoD,EAASlH,KAAKmtE,aAAapyD,EAAM2a,GACjC45B,EAAQpoD,EAAOvE,OAGjB,KAAK,GAAI+4B,GAAI,EAAGA,EAAIhG,IAAOgG,IAAK3gB,EAC9B7T,EAAO6T,GAAO7T,EAAO6T,EAAM20D,SAhK/B,CACE,GAAI3jD,EAEJ,KAA6B,KAAxBA,EAAIjS,EAAIixC,WACX,KAAM,IAAI7mD,GAAM6Z,YAAY,mCAG9B,IAAI4xD,GAAW5jD,CAEf,KAA6B,KAAxBA,EAAIjS,EAAIixC,WACX,KAAM,IAAI7mD,GAAM6Z,YAAY,mCAK9B,IAFA4xD,GAAY5jD,GAAK,GAEY,KAAxBA,EAAIjS,EAAIixC,WACX,KAAM,IAAI7mD,GAAM6Z,YAAY,mCAG9B,IAAI4qB,GAAQ5c,CAEZ,KAA6B,KAAxBA,EAAIjS,EAAIixC,WACX,KAAM,IAAI7mD,GAAM6Z,YAAY,mCAK9B,KAFA4qB,GAAS5c,GAAK,MAEa,OAAX4jD,KAAoC,IAAbA,GAA4B,IAAVhnC,GACvD,KAAM,IAAIzkC,GAAM6Z,YAAY,gDAG9B/d,MAAK2tE,QAAU,EACf3tE,KAAK0tE,SAAW,CAChB,IAAIZ,GAAe9sE,KAAK8sE,YACxB5lE,GAASlH,KAAKmtE,aAAaL,EAAe6C,EAC1C,IAAItpE,GAAMymE,EAAe6C,CAGzB,IAFA3vE,KAAK8sE,aAAezmE,EAEH,IAAbspE,GACsB,IAApB71D,EAAIstD,aACNpnE,KAAK+sE,KAAM,OAGb,KAAK,GAAIxtE,GAAIutE,EAAcvtE,EAAI8G,IAAO9G,EAAG,CACvC,IAA6B,KAAxBwsB,EAAIjS,EAAIixC,WAAmB,CAC9B/qD,KAAK+sE,KAAM,CACX,OAGF7lE,EAAO3H,GAAKwsB,KAoHbw9C,IAGThrE,GAAQgrE,YAAcA,CAEtB,IAAID,GAAkB,WACpB,QAASA,GAAgBxvD,EAAKkvD,EAAarM,GACzC,KAAK,EAAIr4D,EAAYssD,QAAQ+L,GAC3B,MAAO7iD,EAGT,IAAI81D,GAAY5vE,KAAK4vE,UAAYjT,EAAOr9D,IAAI,cAAgB,CAE5D,IAAIswE,GAAa,EACf,MAAO91D,EAGT,IAAkB,IAAd81D,IAAoBA,EAAY,IAAMA,EAAY,IACpD,KAAM,IAAI1rE,GAAM6Z,YAAY,0BAA0BnQ,OAAOgiE,GAI7D5vE,MAAKktE,UADW,IAAd0C,EACe5vE,KAAK6vE,cAEL7vE,KAAK8vE,aAGxB9vE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,IAChB,IAAIk0D,GAAS/vE,KAAK+vE,OAASpT,EAAOr9D,IAAI,WAAa,EAC/C6uE,EAAOnuE,KAAKmuE,KAAOxR,EAAOr9D,IAAI,qBAAuB,EACrD0wE,EAAUhwE,KAAKgwE,QAAUrT,EAAOr9D,IAAI,YAAc,CAItD,OAHAU,MAAKiwE,SAAWF,EAAS5B,EAAO,GAAK,EACrCnuE,KAAKkwE,SAAWF,EAAUD,EAAS5B,EAAO,GAAK,EAC/C3B,EAAa7tE,KAAKqB,KAAMgpE,GACjBhpE,KA0MT,MAvMAspE,GAAgB3pE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAEvD2pE,EAAgB3pE,UAAUkwE,cAAgB,WACxC,GAAIK,GAAWlwE,KAAKkwE,SAChBpD,EAAe9sE,KAAK8sE,aACpB5lE,EAASlH,KAAKmtE,aAAaL,EAAeoD,GAC1C/B,EAAOnuE,KAAKmuE,KACZ4B,EAAS/vE,KAAK+vE,OACdI,EAAWnwE,KAAK8Z,IAAIwxC,SAAS4kB,EAGjC,IAFAlwE,KAAK+sE,KAAOoD,EAASxtE,QAEjB3C,KAAK+sE,IAAT,CAIA,GAKItuE,GALA2xE,EAAQ,EACRC,EAAS,EACTC,EAAS,EACTC,EAAU,EACVx1D,EAAM+xD,CAGV,IAAa,IAATqB,GAAyB,IAAX4B,EAChB,IAAKtxE,EAAI,EAAGA,EAAIyxE,IAAYzxE,EAAG,CAC7B,GAAII,GAAIsxE,EAAS1xE,GAAK2xE,CACtBvxE,IAAKA,GAAK,EACVA,GAAKA,GAAK,EACVA,GAAKA,GAAK,EACVuxE,GAAa,EAAJvxE,IAAU,EACnBqI,EAAO6T,KAASlc,MAEb,IAAa,IAATsvE,EAAY,CACrB,IAAK1vE,EAAI,EAAGA,EAAIsxE,IAAUtxE,EACxByI,EAAO6T,KAASo1D,EAAS1xE,EAG3B,MAAOA,EAAIyxE,IAAYzxE,EACrByI,EAAO6T,GAAO7T,EAAO6T,EAAMg1D,GAAUI,EAAS1xE,GAC9Csc,QAEG,IAAa,KAATozD,EAAa,CACtB,GAAIqC,GAAyB,EAATT,CAEpB,KAAKtxE,EAAI,EAAGA,EAAI+xE,IAAiB/xE,EAC/ByI,EAAO6T,KAASo1D,EAAS1xE,EAG3B,MAAOA,EAAIyxE,EAAUzxE,GAAK,EAAG,CAC3B,GAAIgyE,KAAsB,IAAdN,EAAS1xE,KAAc,IAAwB,IAAlB0xE,EAAS1xE,EAAI,MAA6C,IAA9ByI,EAAO6T,EAAMy1D,KAA0B,IAAwC,IAAlCtpE,EAAO6T,EAAMy1D,EAAgB,GAC/ItpE,GAAO6T,KAAS01D,GAAO,EAAI,IAC3BvpE,EAAO6T,KAAe,IAAN01D,OAEb,CACL,GAAIC,GAAY,GAAIjpE,YAAWsoE,EAAS,GACpCY,GAAW,GAAKxC,GAAQ,EACxBtyC,EAAI,EACJH,EAAIoxC,EACJkD,EAAUhwE,KAAKgwE,OAEnB,KAAKvxE,EAAI,EAAGA,EAAIuxE,IAAWvxE,EACzB,IAAK,GAAImyE,GAAK,EAAGA,EAAKb,IAAUa,EAC1BN,EAASnC,IACXiC,EAAQA,GAAS,EAAoB,IAAhBD,EAASt0C,KAC9By0C,GAAU,GAGZI,EAAUE,GAAMF,EAAUE,IAAOR,GAASE,EAASnC,GAAQwC,EAC3DL,GAAUnC,EACVkC,EAASA,GAAUlC,EAAOuC,EAAUE,IACpCL,GAAWpC,IAEI,IACbjnE,EAAOw0B,KAAO20C,GAAUE,EAAU,EAAI,IACtCA,GAAW,EAKbA,GAAU,IACZrpE,EAAOw0B,MAAQ20C,GAAU,EAAIE,IAAYH,GAAS,GAAK,EAAIG,GAAW,IAI1EvwE,KAAK8sE,cAAgBoD,IAGvB5G,EAAgB3pE,UAAUmwE,aAAe,WACvC,GAAII,GAAWlwE,KAAKkwE,SAChBD,EAAWjwE,KAAKiwE,SAChBL,EAAY5vE,KAAK8Z,IAAIixC,UACrBolB,EAAWnwE,KAAK8Z,IAAIwxC,SAAS4kB,EAGjC,IAFAlwE,KAAK+sE,KAAOoD,EAASxtE,QAEjB3C,KAAK+sE,IAAT,CAIA,GAAID,GAAe9sE,KAAK8sE,aACpB5lE,EAASlH,KAAKmtE,aAAaL,EAAeoD,GAC1CW,EAAU3pE,EAAOqT,SAASuyD,EAAeoD,EAAUpD,EAEhC,KAAnB+D,EAAQluE,SACVkuE,EAAU,GAAIppE,YAAWyoE,GAG3B,IAAIzxE,GAEAqyE,EACAjyE,EAFAg9B,EAAIixC,CAIR,QAAQ8C,GACN,IAAK,GACH,IAAKnxE,EAAI,EAAGA,EAAIyxE,IAAYzxE,EAC1ByI,EAAO20B,KAAOs0C,EAAS1xE,EAGzB,MAEF,KAAK,GACH,IAAKA,EAAI,EAAGA,EAAIwxE,IAAYxxE,EAC1ByI,EAAO20B,KAAOs0C,EAAS1xE,EAGzB,MAAOA,EAAIyxE,IAAYzxE,EACrByI,EAAO20B,GAAK30B,EAAO20B,EAAIo0C,GAAYE,EAAS1xE,GAAK,IACjDo9B,GAGF,MAEF,KAAK,GACH,IAAKp9B,EAAI,EAAGA,EAAIyxE,IAAYzxE,EAC1ByI,EAAO20B,KAAOg1C,EAAQpyE,GAAK0xE,EAAS1xE,GAAK,GAG3C,MAEF,KAAK,GACH,IAAKA,EAAI,EAAGA,EAAIwxE,IAAYxxE,EAC1ByI,EAAO20B,MAAQg1C,EAAQpyE,IAAM,GAAK0xE,EAAS1xE,EAG7C,MAAOA,EAAIyxE,IAAYzxE,EACrByI,EAAO20B,IAAMg1C,EAAQpyE,GAAKyI,EAAO20B,EAAIo0C,IAAa,GAAKE,EAAS1xE,GAAK,IACrEo9B,GAGF,MAEF,KAAK,GACH,IAAKp9B,EAAI,EAAGA,EAAIwxE,IAAYxxE,EAC1BqyE,EAAKD,EAAQpyE,GACbI,EAAIsxE,EAAS1xE,GACbyI,EAAO20B,KAAOi1C,EAAKjyE,CAGrB,MAAOJ,EAAIyxE,IAAYzxE,EAAG,CACxBqyE,EAAKD,EAAQpyE,EACb,IAAIsyE,GAASF,EAAQpyE,EAAIwxE,GACrB5jC,EAAOnlC,EAAO20B,EAAIo0C,GAClBpwE,EAAIwsC,EAAOykC,EAAKC,EAChBC,EAAKnxE,EAAIwsC,CAET2kC,GAAK,IACPA,GAAMA,EAGR,IAAIC,GAAKpxE,EAAIixE,CAETG,GAAK,IACPA,GAAMA,EAGR,IAAIC,GAAKrxE,EAAIkxE,CAETG,GAAK,IACPA,GAAMA,GAGRryE,EAAIsxE,EAAS1xE,GAGXyI,EAAO20B,KADLm1C,GAAMC,GAAMD,GAAME,EACN7kC,EAAOxtC,EACZoyE,GAAMC,EACDJ,EAAKjyE,EAELkyE,EAASlyE,EAI3B,KAEF,SACE,KAAM,IAAIqF,GAAM6Z,YAAY,0BAA0BnQ,OAAOgiE,IAGjE5vE,KAAK8sE,cAAgBoD,IAGhB5G,IAGT/qE,GAAQ+qE,gBAAkBA,CAE1B,IAAImD,GAAgB,WAClB,QAASA,GAAc3yD,EAAKkvD,EAAamI,GACvCnxE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,KAChB7b,KAAKmxE,QAAUA,EACfnxE,KAAKoxE,UAAY,KACjBpxE,KAAKqxE,aAAc,EACnB7E,EAAa7tE,KAAKqB,KAAMgpE,GAqC1B,MAjCAyD,GAAc9sE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAErD8sE,EAAc9sE,UAAUutE,UAAY,WAClC,GAAI1hE,EASJ,IAPIxL,KAAKqxE,YACP7lE,EAAQxL,KAAKoxE,WAEb5lE,EAAQxL,KAAK8Z,IAAIwxC,SATL,KAUZtrD,KAAKqxE,aAAc,IAGhB7lE,GAA0B,IAAjBA,EAAM7I,OAElB,YADA3C,KAAK+sE,KAAM,EAIb/sE,MAAKoxE,UAAYpxE,KAAK8Z,IAAIwxC,SAlBZ,IAmBd,IAAIgmB,GAActxE,KAAKoxE,WAAapxE,KAAKoxE,UAAUzuE,OAAS,CAE5D6I,IAAQ2lE,EADMnxE,KAAKmxE,SACH3lE,GAAQ8lE,EACxB,IACI7yE,GADAquE,EAAe9sE,KAAK8sE,aAEpBvtE,EAAIiM,EAAM7I,OACVuE,EAASlH,KAAKmtE,aAAaL,EAAevtE,EAE9C,KAAKd,EAAI,EAAGA,EAAIc,EAAGd,IACjByI,EAAO4lE,KAAkBthE,EAAM/M,EAGjCuB,MAAK8sE,aAAeA,GAGfL,IAGTluE,GAAQkuE,cAAgBA,CAExB,IAAI7C,GAAgB,WAClB,QAASA,GAAc9vD,EAAKkvD,GAC1BhpE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,KAChB7b,KAAK6uB,MAAQ,GAAIpnB,YAAW,GAExBuhE,IACFA,GAAc,IAGhBwD,EAAa7tE,KAAKqB,KAAMgpE,GA2E1B,MAxEAY,GAAcjqE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAErDiqE,EAAcjqE,UAAUutE,UAAY,WAOlC,IANA,GAGIpzD,GAAM9Z,KAAK8Z,IACXjb,EAAIib,EAAIixC,WAEL,EAAI7mD,EAAMsZ,SAAS3e,IACxBA,EAAIib,EAAIixC,SAGV,KARU,IAQNlsD,GAVa,MAUAA,EAEf,YADAmB,KAAK+sE,KAAM,EAIb,IACI7lE,GACAzI,EAFAquE,EAAe9sE,KAAK8sE,YAIxB,IAlBmB,MAkBfjuE,EAAoB,CAGtB,IAFAqI,EAASlH,KAAKmtE,aAAaL,EAAe,GAErCruE,EAAI,EAAGA,EAAI,IAAKA,EACnByI,EAAO4lE,EAAeruE,GAAK,CAG7BuB,MAAK8sE,cAAgB,MAChB,CACL,GAAIj+C,GAAQ7uB,KAAK6uB,KAGjB,KAFAA,EAAM,GAAKhwB,EAENJ,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAGtB,IAFAI,EAAIib,EAAIixC,WAED,EAAI7mD,EAAMsZ,SAAS3e,IACxBA,EAAIib,EAAIixC,SAKV,IAFAl8B,EAAMpwB,GAAKI,GApCL,IAsCFA,GAxCS,MAwCIA,EACf,MAOJ,GAHAqI,EAASlH,KAAKmtE,aAAaL,EAAeruE,EAAI,GAC9CuB,KAAK8sE,cAAgBruE,EAAI,EAErBA,EAAI,EAAG,CACT,KAAOA,EAAI,IAAKA,EACdowB,EAAMpwB,GAAK,GAGbuB,MAAK+sE,KAAM,EAGb,GAAIlsE,GAAI,CAER,KAAKpC,EAAI,EAAGA,EAAI,IAAKA,EACnBoC,EAAQ,GAAJA,GAAUguB,EAAMpwB,GAAK,GAG3B,KAAKA,EAAI,EAAGA,GAAK,IAAKA,EACpByI,EAAO4lE,EAAeruE,GAAS,IAAJoC,EAC3BA,IAAM,IAKL+oE,IAGTrrE,GAAQqrE,cAAgBA,CAExB,IAAIC,GAAiB,WACnB,QAASA,GAAe/vD,EAAKkvD,GAC3BhpE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,KAChB7b,KAAKqrE,YAAc,EAEfrC,IACFA,GAAc,IAGhBwD,EAAa7tE,KAAKqB,KAAMgpE,GAmD1B,MAhDAa,GAAelqE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAEtDkqE,EAAelqE,UAAUutE,UAAY,WACnC,GACIz/D,GAAQzN,KAAK8Z,IAAIwxC,SADK,IAG1B,KAAK79C,EAAM9K,OAET,YADA3C,KAAK+sE,KAAM,EASb,KAAK,GALDwE,GAAkB9jE,EAAM9K,OAAS,GAAK,EACtCuE,EAASlH,KAAKmtE,aAAantE,KAAK8sE,aAAeyE,GAC/CzE,EAAe9sE,KAAK8sE,aACpBzB,EAAarrE,KAAKqrE,WAEb5sE,EAAI,EAAGqc,EAAKrN,EAAM9K,OAAQlE,EAAIqc,EAAIrc,IAAK,CAC9C,GACI+yE,GADA/zD,EAAKhQ,EAAMhP,EAGf,IAAIgf,GAAM,IAAQA,GAAM,GACtB+zD,EAAa,GAAL/zD,MACH,MAAIA,GAAM,IAAQA,GAAM,IAAQA,GAAM,IAAQA,GAAM,KAEpD,IAAW,KAAPA,EAAa,CACtBzd,KAAK+sE,KAAM,CACX,OAEA,SALAyE,EAAsB,GAAR,GAAL/zD,GAQP4tD,EAAa,EACfA,EAAamG,GAEbtqE,EAAO4lE,KAAkBzB,GAAc,EAAImG,EAC3CnG,GAAc,GAIdA,GAAc,GAAKrrE,KAAK+sE,MAC1B7lE,EAAO4lE,KAAkBzB,GAAc,EACvCA,GAAc,GAGhBrrE,KAAKqrE,WAAaA,EAClBrrE,KAAK8sE,aAAeA,GAGfjD,IAGTtrE,GAAQsrE,eAAiBA,CAEzB,IAAIE,GAAkB,WACpB,QAASA,GAAgBjwD,EAAKkvD,GAC5BhpE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,KAChB2wD,EAAa7tE,KAAKqB,KAAMgpE,GAuC1B,MApCAe,GAAgBpqE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAEvDoqE,EAAgBpqE,UAAUutE,UAAY,WACpC,GAAIuE,GAAezxE,KAAK8Z,IAAIwxC,SAAS,EAErC,KAAKmmB,GAAgBA,EAAa9uE,OAAS,GAAyB,MAApB8uE,EAAa,GAE3D,YADAzxE,KAAK+sE,KAAM,EAIb,IAAI7lE,GACA4lE,EAAe9sE,KAAK8sE,aACpBvtE,EAAIkyE,EAAa,EAErB,IAAIlyE,EAAI,KAIN,GAHA2H,EAASlH,KAAKmtE,aAAaL,EAAevtE,EAAI,GAC9C2H,EAAO4lE,KAAkB2E,EAAa,GAElClyE,EAAI,EAAG,CACT,GAAI2K,GAASlK,KAAK8Z,IAAIwxC,SAAS/rD,EAC/B2H,GAAO8T,IAAI9Q,EAAQ4iE,GACnBA,GAAgBvtE,OAEb,CACLA,EAAI,IAAMA,CACV,IAAIwsB,GAAI0lD,EAAa,EACrBvqE,GAASlH,KAAKmtE,aAAaL,EAAevtE,EAAI,EAE9C,KAAK,GAAId,GAAI,EAAGA,EAAIc,EAAGd,IACrByI,EAAO4lE,KAAkB/gD,EAI7B/rB,KAAK8sE,aAAeA,GAGf/C,IAGTxrE,GAAQwrE,gBAAkBA,CAE1B,IAAIN,GAAY,WACd,QAASA,GAAU3vD,EAAKkvD,EAAaQ,GACnCxpE,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,KAChB7b,KAAK0xE,WAAa,EAClB1xE,KAAK2xE,WAAa,CAalB,KAAK,GAXDC,IACFpI,YAAaA,EACbqI,WAAY,EACZC,SAAU,IACVC,iBAAkB,GAAItqE,YALG,MAMzBuqE,kBAAmB,GAAIC,aANE,MAOzBC,oBAAqB,GAAID,aAPA,MAQzBE,gBAAiB,GAAI1qE,YARI,MASzB2qE,sBAAuB,GAGhB3zE,EAAI,EAAGA,EAAI,MAAOA,EACzBmzE,EAASG,iBAAiBtzE,GAAKA,EAC/BmzE,EAASI,kBAAkBvzE,GAAK,CAGlCuB,MAAK4xE,SAAWA,EAChBpF,EAAa7tE,KAAKqB,KAAMgpE,GA+G1B,MA5GAS,GAAU9pE,UAAYT,OAAO8B,OAAOwrE,EAAa7sE,WAEjD8pE,EAAU9pE,UAAU0yE,SAAW,SAA4B9yE,GAIzD,IAHA,GAAIoyE,GAAa3xE,KAAK2xE,WAClBD,EAAa1xE,KAAK0xE,WAEfC,EAAapyE,GAAG,CACrB,GAAIV,GAAImB,KAAK8Z,IAAIixC,SAEjB,KAAW,IAAPlsD,EAEF,MADAmB,MAAK+sE,KAAM,EACJ,IAGT2E,GAAaA,GAAc,EAAI7yE,EAC/B8yE,GAAc,EAMhB,MAHA3xE,MAAK2xE,WAAaA,GAAcpyE,EAChCS,KAAK0xE,WAAaA,EAClB1xE,KAAKsyE,SAAW,KACTZ,IAAeC,GAAc,GAAKpyE,GAAK,GAGhDkqE,EAAU9pE,UAAUutE,UAAY,WAC9B,GAGIzuE,GAAGo9B,EAAG02C,EAFNC,EAAuBC,KAGvBb,EAAW5xE,KAAK4xE,QAEpB,IAAKA,EAAL,CAIA,GAAIpI,GAAcoI,EAASpI,YACvBsI,EAAWF,EAASE,SACpBC,EAAmBH,EAASG,iBAC5BC,EAAoBJ,EAASI,kBAC7BE,EAAsBN,EAASM,oBAC/BL,EAAaD,EAASC,WACtBa,EAAWd,EAASc,SACpBP,EAAkBP,EAASO,gBAC3BC,EAAwBR,EAASQ,sBACjCO,EAAgB,EAChBC,EAAsB5yE,KAAK8sE,aAC3B5lE,EAASlH,KAAKmtE,aAAantE,KAAK8sE,aAAe0F,EAEnD,KAAK/zE,EAAI,EAAGA,EAvBI,IAuBWA,IAAK,CAC9B,GAAI0N,GAAOnM,KAAKqyE,SAASR,GACrBgB,EAAUT,EAAwB,CAEtC,IAAIjmE,EAAO,IACTgmE,EAAgB,GAAKhmE,EACrBimE,EAAwB,MACnB,MAAIjmE,GAAQ,KAWZ,IAAa,MAATA,EAAc,CACvB0lE,EAAa,EACbC,EAAW,IACXM,EAAwB,CACxB,UAEApyE,KAAK+sE,KAAM,QACJ/sE,MAAK4xE,QACZ,OAlBA,GAAIzlE,EAAO2lE,EAGT,IAFAM,EAAwBJ,EAAkB7lE,GAErC0vB,EAAIu2C,EAAwB,EAAGG,EAAIpmE,EAAM0vB,GAAK,EAAGA,IACpDs2C,EAAgBt2C,GAAKk2C,EAAiBQ,GACtCA,EAAIL,EAAoBK,OAG1BJ,GAAgBC,KAA2BD,EAAgB,GAwB/D,GAXIU,IACFX,EAAoBJ,GAAYY,EAChCV,EAAkBF,GAAYE,EAAkBU,GAAY,EAC5DX,EAAiBD,GAAYK,EAAgB,GAC7CL,IACAD,EAAaC,EAAWtI,EAAcsI,EAAWtI,EAAc,EAAIqI,EAAuF,EAA1ElmE,KAAK2O,IAAI3O,KAAKyM,IAAI05D,EAAWtI,GAAe,kBAAqB,EAAG,KAGtJkJ,EAAWvmE,EACXwmE,GAAiBP,EAEbI,EAAuBG,EAAe,CACxC,GACEH,GAjEU,UAkEHA,EAAuBG,EAEhCzrE,GAASlH,KAAKmtE,aAAantE,KAAK8sE,aAAe0F,GAGjD,IAAK32C,EAAI,EAAGA,EAAIu2C,EAAuBv2C,IACrC30B,EAAO0rE,KAAyBT,EAAgBt2C,GAIpD+1C,EAASE,SAAWA,EACpBF,EAASC,WAAaA,EACtBD,EAASc,SAAWA,EACpBd,EAASQ,sBAAwBA,EACjCpyE,KAAK8sE,aAAe8F,IAGfnJ,IAGTlrE,GAAQkrE,UAAYA,CAEpB,IAAIrY,GAAa,WACf,QAASA,KACP7I,EAAO5pD,KAAKqB,KAAM,GAAIyH,YAAW,IAInC,MADA2pD,GAAWzxD,UAAY4oD,EAAO5oD,UACvByxD,IAGT7yD,GAAQ6yD,WAAaA,GAIf,SAAU5yD,EAAQD,EAASiC,GAEjC,YAGAtB,QAAOC,eAAeZ,EAAS,cAC7BqC,OAAO,IAETrC,EAAQurE,mBAAiB,EAEzB,IAAIxlE,GAAc9D,EAAoB,KAElCsyE,EAAStyE,EAAoB,KAE7Bq3C,EAAUr3C,EAAoB,KAE9BspE,EAAiB,WACnB,QAASA,GAAehwD,EAAKkvD,EAAarM,GACxC38D,KAAK8Z,IAAMA,EACX9Z,KAAK6b,KAAO/B,EAAI+B,MAEX,EAAIvX,EAAYssD,QAAQ+L,KAC3BA,EAASr4D,EAAYusD,KAAKnxB,MAG5B,IAAIx1B,IACF1H,KAAM,WACJ,MAAOsX,GAAIixC,WAGf/qD,MAAK+yE,gBAAkB,GAAID,GAAOE,gBAAgB9oE,GAChDuxB,EAAGkhC,EAAOr9D,IAAI,KACd2zE,UAAWtW,EAAOr9D,IAAI,aACtB4zE,iBAAkBvW,EAAOr9D,IAAI,oBAC7B6zE,QAASxW,EAAOr9D,IAAI,WACpB8zE,KAAMzW,EAAOr9D,IAAI,QACjB+zE,WAAY1W,EAAOr9D,IAAI,cACvBg0E,SAAU3W,EAAOr9D,IAAI,cAGvBu4C,EAAQ20B,aAAa7tE,KAAKqB,KAAMgpE,GAmBlC,MAhBAc,GAAenqE,UAAYT,OAAO8B,OAAO62C,EAAQ20B,aAAa7sE,WAE9DmqE,EAAenqE,UAAUutE,UAAY,WACnC,MAAQltE,KAAK+sE,KAAK,CAChB,GAAIluE,GAAImB,KAAK+yE,gBAAgBQ,cAE7B,KAAW,IAAP10E,EAEF,YADAmB,KAAK+sE,KAAM,EAIb/sE,MAAKmtE,aAAantE,KAAK8sE,aAAe,GACtC9sE,KAAKkH,OAAOlH,KAAK8sE,gBAAkBjuE,IAIhCirE,IAGTvrE,GAAQurE,eAAiBA,GAInB,SAAUtrE,EAAQD,EAASiC,GAEjC,YAGAtB,QAAOC,eAAeZ,EAAS,cAC7BqC,OAAO,IAETrC,EAAQy0E,oBAAkB,EAE1B,IAAI9uE,GAAQ1D,EAAoB,GAE5BwyE,EAAkB,WAmBpB,QAASA,GAAgB9oE,GACvB,GAAIw1C,GAAU57C,UAAUnB,OAAS,OAAsBN,KAAjByB,UAAU,GAAmBA,UAAU,KAE7E,KAAKoG,GAAiC,kBAAhBA,GAAO1H,KAC3B,KAAM,IAAIsC,OAAM,gDAGlB9E,MAAKkK,OAASA,EACdlK,KAAK+sE,KAAM,EACX/sE,KAAKwzE,SAAW9zB,EAAW,GAAK,EAChC1/C,KAAKyzE,OAAS/zB,EAAmB,YAAK,EACtC1/C,KAAK0zE,UAAYh0B,EAA0B,mBAAK,EAChD1/C,KAAKgwE,QAAUtwB,EAAiB,SAAK,KACrC1/C,KAAK2zE,KAAOj0B,EAAc,MAAK,CAC/B,IAAIk0B,GAAUl0B,EAAoB,UAElB,QAAZk0B,OAAgCvxE,KAAZuxE,IACtBA,GAAU,GAGZ5zE,KAAK4zE,QAAUA,EACf5zE,KAAK6zE,MAAQn0B,EAAkB,WAAK,EACpC1/C,KAAK8zE,WAAa,GAAIn4D,aAAY3b,KAAKgwE,QAAU,GACjDhwE,KAAK+zE,QAAU,GAAIp4D,aAAY3b,KAAKgwE,QAAU,GAC9ChwE,KAAK8zE,WAAW,GAAK9zE,KAAKgwE,QAC1BhwE,KAAKg0E,UAAY,EACjBh0E,KAAKi0E,IAAM,EACXj0E,KAAKk0E,WAAal0E,KAAKwzE,SAAW,EAClCxzE,KAAKm0E,UAAY,EACjBn0E,KAAKo0E,SAAW,EAChBp0E,KAAKq0E,WAAa,EAClBr0E,KAAKs0E,UAAW,CAGhB,KAFA,GAAI7E,GAEoC,KAAhCA,EAAQzvE,KAAKu0E,UAAU,MAC7Bv0E,KAAKw0E,SAAS,EAGF,KAAV/E,GACFzvE,KAAKw0E,SAAS,IAGZx0E,KAAKwzE,SAAW,IAClBxzE,KAAKk0E,YAAcl0E,KAAKu0E,UAAU,GAElCv0E,KAAKw0E,SAAS,IA/DlB,GAWIC,MAAiB,GAAI,KAAM,GAAI,IAAK,EADrB,IACwC,EAFxC,IAE2D,EAH3D,IAG8E,EAH9E,IAGiG,EAJjG,IAIoH,EAJpH,IAIuI,EATzI,IAS0J,EAT1J,IAS2K,EAT3K,IAS4L,EAT5L,IAS6M,EAT7M,IAS8N,EAT9N,IAS+O,EAT/O,IASgQ,EAThQ,IASiR,EARhR,IAQkS,EARlS,IAQoT,EARpT,IAQsU,EARtU,IAQwV,EARxV,IAQ0W,EAR1W,IAQ4X,EAR5X,IAQ8Y,EAR9Y,IAQga,EARha,IAQkb,EARlb,IAQoc,EARpc,IAQsd,EARtd,IAQwe,EARxe,IAQ0f,EAR1f,IAQ4gB,EAR5gB,IAQ8hB,EAR9hB,IAQgjB,EAL/iB,IAKkkB,EALlkB,IAKqlB,EALrlB,IAKwmB,EALxmB,IAK2nB,EAL3nB,IAK8oB,EAL9oB,IAKiqB,EALjqB,IAKorB,EALprB,IAKusB,EALvsB,IAK0tB,EAL1tB,IAK6uB,EAL7uB,IAKgwB,EALhwB,IAKmxB,EALnxB,IAKsyB,EALtyB,IAKyzB,EALzzB,IAK40B,EAL50B,IAK+1B,EAN/1B,IAMk3B,EANl3B,IAMq4B,EANr4B,IAMw5B,EANx5B,IAM26B,EAN36B,IAM87B,EAN97B,IAMi9B,EANj9B,IAMo+B,EANp+B,IAMu/B,EANv/B,IAM0gC,EAN1gC,IAM6hC,EAN7hC,IAMgjC,EANhjC,IAMmkC,EANnkC,IAMslC,EANtlC,IAMymC,EANzmC,IAM4nC,EAN5nC,IAM+oC,EAPhpC,IAOkqC,EAPlqC,IAOorC,EAPprC,IAOssC,EAPtsC,IAOwtC,EAPxtC,IAO0uC,EAP1uC,IAO4vC,EAP5vC,IAO8wC,EAP9wC,IAOgyC,EAPhyC,IAOkzC,EAPlzC,IAOo0C,EAPp0C,IAOs1C,EAPt1C,IAOw2C,EAPx2C,IAO03C,EAP13C,IAO44C,EAP54C,IAO85C,EAP95C,IAOg7C,EAPh7C,IAOk8C,EAPl8C,IAOo9C,EAPp9C,IAOs+C,EAPt+C,IAOw/C,EAPx/C,IAO0gD,EAP1gD,IAO4hD,EAP5hD,IAO8iD,EAP9iD,IAOgkD,EAPhkD,IAOklD,EAPllD,IAOomD,EAPpmD,IAOsnD,EAPtnD,IAOwoD,EAPxoD,IAO0pD,EAP1pD,IAO4qD,EAP5qD,IAO8rD,EAP9rD,IAOgtD,EAPhtD,IAOkuD,EAPluD,IAOovD,EAPpvD,IAOswD,EAPtwD,IAOwxD,EAPxxD,IAO0yD,EAP1yD,IAO4zD,EAP5zD,IAO80D,EAP90D,IAOg2D,EAPh2D,IAOk3D,EAPl3D,IAOo4D,EAPp4D,IAOs5D,EAPt5D,IAOw6D,EAPx6D,IAO07D,EAP17D,IAO48D,EAP58D,IAO89D,EAP99D,IAOg/D,EAPh/D,IAOkgE,EAPlgE,IAOohE,EAPphE,IAOsiE,EAPtiE,IAOwjE,EAPxjE,IAO0kE,EAP1kE,IAO4lE,EAP5lE,IAO8mE,EAP9mE,IAOgoE,EAPhoE,IAOkpE,EAPlpE,IAOoqE,EAPpqE,IAOsrE,EAPtrE,IAOwsE,EAPxsE,IAO0tE,EAP1tE,IAO4uE,EAP5uE,IAO8vE,EAP9vE,IAQdC,KAAiB,GAAI,IAAK,IAZf,KAYgC,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAC9WC,KAAiB,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,OAAQ,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IACx3IC,KAAiB,GAAI,KAAM,GAAI,IAAK,IAdzB,IAcyC,IAdzC,KAc0D,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,OAAQ,GAAI,OAAQ,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,MAAO,GAAI,MAAO,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,OAAQ,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAC53CC,IAAgB,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,GAAI,MAAO,GAAI,MAAO,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KAAM,EAAG,KACjwDC,KAAiB,GAAI,KAAM,GAAI,KAAM,GAAI,KAAM,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,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AM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,EAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,EAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,EAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,KACphDzH,KAAKiuG,OAAS,GAAIxmG,aAAY,GAAM,EAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,EAAM,IAAM,IAAM,GAAM,EAAM,IAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,EAAM,IAAM,IAAM,IAAM,EAAM,EAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GAAM,IAAM,GAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,IAAM,GAAM,IAAM,IAAM,GAAM,IAAM,EAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,GAAM,IAAM,GAAM,GAAM,GAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,GAAM,GA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,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,MACjBA,EAAa,UAAI,MACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,MACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,MACjBA,EAAa,UAAI,MACjBA,EAAa,UAAI,KACjBA,EAAW,QAAI,KACfA,EAAW,QAAI,KACfA,EAAW,QAAI,KACfA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,KACjBA,EAAa,UAAI,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AI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,KACXA,EAAO,IAAI,MACXA,EAAO,IAAI,KACXA,EAAO,IAAI,MACXA,EAAQ,KAAI,MACZA,EAAO,IAAI,MACXA,EAAQ,KAAI,MACZA,EAAO,IAAI,KACXA,EAAO,IAAI,KACXA,EAAO,IAAI,KACXA,EAAO,IAAI,MACXA,EAAO,IAAI,KACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAQ,KAAI,MACZA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAQ,KAAI,MACZA,EAAO,IAAI,MACXA,EAAQ,KAAI,MACZA,EAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAO,IAAI,KACXA,GAAO,IAAI,MACXA,EAAO,IAAI,MACXA,EAAE,WAAa,GAEhBtC,GAAQ28H,iBAAmBA,EAC3B38H,EAAQswI,yBAA2BA,GAI7B,SAAUrwI,EAAQD,EAASiC,GAEjC,YAGAtB,QAAOC,eAAeZ,EAAS,cAC7BqC,OAAO,IAETrC,EAAQowI,kCAAoCpwI,EAAQkwI,qCAAuClwI,EAAQgwI,4BAA8BhwI,EAAQugI,gBAAkBvgI,EAAQo/H,cAAgBp/H,EAAQ4vI,iBAAmB5vI,EAAQu/H,kBAAgB,EAEtO,IAAI55H,GAAQ1D,EAAoB,GAE5Bs9H,GAAgB,EAAI55H,EAAMwV,uBAAuB,SAAU7Y,GAC7DA,EAAe,YAAI,YACnBA,EAAE,oBAAsB,iBACxBA,EAAE,0BAA4B,wBAC9BA,EAAE,sBAAwB,oBAC1BA,EAAc,WAAI,YAClBA,EAAE,mBAAqB,iBACvBA,EAAE,yBAA2B,wBAC7BA,EAAE,qBAAuB,oBACzBA,EAAE,eAAiB,YACnBA,EAAE,oBAAsB,iBACxBA,EAAE,0BAA4B,wBAC9BA,EAAE,sBAAwB,oBAC1BA,EAAS,MAAI,YACbA,EAAE,cAAgB,iBAClBA,EAAE,oBAAsB,wBACxBA,EAAE,gBAAkB,oBACpBA,EAAE,sBAAwB,wBAC1BA,EAAE,gBAAkB,iBACpBA,EAAE,kBAAoB,oBACtBA,EAAW,QAAI,YACfA,EAAE,gBAAkB,eACpBA,EAAE,sBAAwB,sBAC1BA,EAAE,kBAAoB,kBACtBA,EAAc,WAAI,UAClBA,EAAE,mBAAqB,eACvBA,EAAE,yBAA2B,sBAC7BA,EAAE,qBAAuB,kBACzBA,EAAE,6BAA+B,sBACjCA,EAAE,uBAAyB,eAC3BA,EAAE,yBAA2B,kBAC7BA,EAAkB,eAAI,UACtBA,EAAa,UAAI,YACjBA,EAAE,kBAAoB,iBACtBA,EAAE,wBAA0B,wBAC5BA,EAAE,yBAA2B,wBAC7BA,EAAE,oBAAsB,oBACxBA,EAAE,qBAAuB,oBACzBA,EAAiB,cAAI,YACrBA,EAAE,eAAiB,SACnBA,EAAE,qBAAuB,SACzBA,EAAE,iBAAmB,SACrBA,EAAiB,cAAI,cACrBA,EAAE,sBAAwB,aAC1BA,EAAE,4BAA8B,mBAChCA,EAAE,wBAA0B,eAC5BA,EAAmB,gBAAI,cACvBA,EAAE,wBAA0B,aAC5BA,EAAE,8BAAgC,mBAClCA,EAAE,gCAAkC,mBACpCA,EAAE,0BAA4B,aAC9BA,EAAE,0BAA4B,eAC9BA,EAAE,4BAA8B,eAChCA,EAAqB,kBAAI,cACzBA,EAAE,0BAA4B,aAC9BA,EAAE,gCAAkC,mBACpCA,EAAE,4BAA8B,gBAElCtC,GAAQu/H,cAAgBA,CACxB,IAAIqQ,IAAmB,EAAIjqI,EAAMwV,uBAAuB,SAAU7Y,GAChEA,EAAW,QAAI,YACfA,EAAE,gBAAkB,iBACpBA,EAAE,sBAAwB,wBAC1BA,EAAE,kBAAoB,oBACtBA,EAAiB,cAAI,YACrBA,EAAE,sBAAwB,iBAC1BA,EAAE,4BAA8B,wBAChCA,EAAE,wBAA0B,oBAC5BA,EAAe,YAAI,gBACnBA,EAAE,oBAAsB,qBACxBA,EAAE,0BAA4B,2BAC9BA,EAAE,sBAAwB,uBAC1BA,EAAiB,cAAI,UACrBA,EAAE,sBAAwB,eAC1BA,EAAE,4BAA8B,sBAChCA,EAAE,wBAA0B,kBAC5BA,EAAE,mBAAqB,iBACvBA,EAAE,aAAe,YACjBA,EAAE,kBAAoB,iBACtBA,EAAE,wBAA0B,uBAC5BA,EAAE,oBAAsB,mBACxBA,EAAE,aAAe,YACjBA,EAAE,kBAAoB,iBACtBA,EAAE,wBAA0B,uBAC5BA,EAAE,oBAAsB,mBACxBA,EAAE,cAAgB,aAClBA,EAAE,mBAAqB,kBACvBA,EAAE,yBAA2B,wBAC7BA,EAAE,qBAAuB,oBACzBA,EAAE,cAAgB,aAClBA,EAAE,mBAAqB,kBACvBA,EAAE,yBAA2B,wBAC7BA,EAAE,qBAAuB,oBACzBA,EAAiB,cAAI,eACrBA,EAAa,UAAI,gBAEnBtC,GAAQ4vI,iBAAmBA,CAC3B,IAAIxQ,IAAgB,EAAIz5H,EAAMwV,uBAAuB,SAAU7Y,GAC7DA,EAAE,iBAAkB,EACpBA,EAAE,eAAgB,EAClBA,EAAY,UAAI,EAChBA,EAAS,OAAI,EACbA,EAAc,YAAI,EAClBA,EAAY,UAAI,EAChBA,EAAE,wBAAyB,EAC3BA,EAAW,SAAI,EACfA,EAAQ,MAAI,EACZA,EAAQ,MAAI,EACZA,EAAS,OAAI,EACbA,EAAU,QAAI,EACdA,EAAe,aAAI,EACnBA,EAAQ,MAAI,EACZA,EAAS,OAAI,EACbA,EAAE,qBAAsB,EACxBA,EAAY,UAAI,EAChBA,EAAE,uBAAwB,EAC1BA,EAAE,oBAAqB,EACvBA,EAAE,kBAAmB,EACrBA,EAAU,QAAI,EACdA,EAAE,iBAAkB,EACpBA,EAAE,iBAAkB,EACpBA,EAAW,SAAI,EACfA,EAAE,mBAAoB,EACtBA,EAAE,mBAAoB,EACtBA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAY,UAAI,EAChBA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAU,QAAI,EACdA,EAAU,QAAI,EACdA,EAAW,SAAI,EACfA,EAAE,sBAAuB,EACzBA,EAAE,uBAAwB,EAC1BA,EAAa,WAAI,EACjBA,EAAE,eAAgB,EAClBA,EAAc,YAAI,EAClBA,EAAE,gBAAiB,EACnBA,EAAa,WAAI,EACjBA,EAAa,WAAI,EACjBA,EAAU,QAAI,EACdA,EAAW,SAAI,EACfA,EAAE,oBAAqB,EACvBA,EAAE,mBAAoB,EACtBA,EAAc,YAAI,EAClBA,EAAE,iBAAkB,EACpBA,EAAU,QAAI,EACdA,EAAW,SAAI,EACfA,EAAc,YAAI,EAClBA,EAAY,UAAI,EAChBA,EAAa,WAAI,EACjBA,EAAa,WAAI,EACjBA,EAAE,aAAc,EAChBA,EAAW,SAAI,EACfA,EAAa,WAAI,EACjBA,EAAa,WAAI,EACjBA,EAAE,kBAAmB,EACrBA,EAAY,UAAI,EAChBA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAc,YAAI,EAClBA,EAAE,oBAAqB,EACvBA,EAAE,qBAAsB,EACxBA,EAAE,mBAAoB,EACtBA,EAAW,SAAI,EACfA,EAAE,sBAAuB,EACzBA,EAAW,SAAI,EACfA,EAAY,UAAI,EAChBA,EAAE,oBAAqB,EACvBA,EAAa,WAAI,EACjBA,EAAE,iBAAkB,EACpBA,EAAE,iBAAkB,EACpBA,EAAW,SAAI,EACfA,EAAE,gBAAiB,EACnBA,EAAU,QAAI,EACdA,EAAU,QAAI,EACdA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAE,qBAAsB,EACxBA,EAAE,oBAAqB,EACvBA,EAAiB,eAAI,EACrBA,EAAU,QAAI,EACdA,EAAE,kBAAmB,EACrBA,EAAU,QAAI,EACdA,EAAW,SAAI,EACfA,EAAU,QAAI,EACdA,EAAU,QAAI,EACdA,EAAU,QAAI,EACdA,EAAE,cAAe,EACjBA,EAAE,cAAe,EACjBA,EAAE,aAAc,EAChBA,EAAE,eAAgB,EAClBA,EAAE,aAAc,EAChBA,EAAE,iBAAkB,EACpBA,EAAE,0BAA2B,EAC7BA,EAAiB,eAAI,EACrBA,EAAY,UAAI,EAChBA,EAAY,UAAI,EAChBA,EAAW,SAAI,EACfA,EAAE,uBAAwB,EAC1BA,EAAY,UAAI,EAChBA,EAAE,iBAAkB,EACpBA,EAAE,sBAAuB,EACzBA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAY,UAAI,EAChBA,EAAS,OAAI,EACbA,EAAE,gBAAiB,EACnBA,EAAS,OAAI,EACbA,EAAS,OAAI,EACbA,EAAW,SAAI,EACfA,EAAW,SAAI,EACfA,EAAY,UAAI,EAChBA,EAAQ,MAAI,EACZA,EAAE,mBAAoB,EACtBA,EAAE,gBAAiB,EACnBA,EAAW,SAAI,EACfA,EAAS,OAAI,EACbA,EAAU,QAAI,EACdA,EAAE,YAAa,EACfA,EAAE,oBAAqB,EACvBA,EAAU,QAAI,EACdA,EAAE,cAAe,EACjBA,EAAE,mBAAoB,EACtBA,EAAE,eAAgB,EAClBA,EAAc,YAAI,EAClBA,EAAU,QAAI,EACdA,EAAS,OAAI,EACbA,EAAE,eAAgB,EAClBA,EAAW,SAAI,EACfA,EAAQ,MAAI,GAEdtC,GAAQo/H,cAAgBA,CACxB,IAAImB,IAAkB,EAAI56H,EAAMwV,uBAAuB,SAAU7Y,GAC/DA,EAAY,UAAI,EAChBA,EAAU,QAAI,EACdA,EAAgB,cAAI,GAEtBtC,GAAQugI,gBAAkBA,CAC1B,IAAIyP,IAA8B,EAAIrqI,EAAMwV,uBAAuB,SAAU7Y,GAC3EA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,IAAM,IACRA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,GAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,KACTA,EAAE,KAAO,KACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,KAAO,MACTA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,IACVA,EAAE,MAAQ,MACVA,EAAE,MAAQ,KACVA,EAAE,MAAQ,MAEZtC,GAAQgwI,4BAA8BA,CACtC,IAAIE,IAAuC,EAAIvqI,EAAMwV,uBAAuB,SAAU7Y,GACpFA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,KAEXtC,GAAQkwI,qCAAuCA,CAC/C,IAAIE,IAAoC,EAAIzqI,EAAMwV,uBAAuB,SAAU7Y,GACjFA,EAAE,GAAK,GACPA,EAAE,GAAK,GACPA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,IAAM,GACRA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,IACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,IACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,KAAO,GACTA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,GACVA,EAAE,MAAQ,IAEZtC,GAAQowI,kCAAoCA,GAItC,SAAUnwI,EAAQD,EAASiC,GA6BjC,QAASm4I,GAAwBxsI,GAChC,MAAIA,IAAQ,OAAUA,GAAQ,MACtB,EACGA,GAAQ,OAAUA,GAAQ,MAC7B84I,IAAuB94I,IAASA,EACpB,MAATA,EACH,GAEDA,EAER,QAASgvH,GAAmBp8H,EAAMk8H,GACjC,GAAI91E,GAAU81E,EAAiBl8H,EAC/B,QAAgBsD,KAAZ8iD,EACH,MAAOA,EAER,KAAKpmD,EACJ,OAAQ,CAET,IAAgB,MAAZA,EAAK,GAAY,CACpB,GAA2BmmJ,GAAvBC,EAAUpmJ,EAAK4D,MACnB,IAAgB,IAAZwiJ,GAA6B,MAAZpmJ,EAAK,IAA0B,MAAZA,EAAK,GAC5CmmJ,EAASnmJ,EAAKo1D,UAAU,OAClB,MAAIgxF,GAAW,GAAKA,GAAW,GAGrC,OAAQ,CAFRD,GAASnmJ,EAAKo1D,UAAU,GAIzB,GAAI+wF,IAAWA,EAAOE,gBACrBjgG,EAAU2B,SAASo+F,EAAQ,MACZ,EACd,MAAO//F,GAIV,OAAQ,EAgfT,QAAS0nF,GAAmBjsI,GAC3B,IAAK,GAAInC,GAAI,EAAGqc,EAAKuqI,EAAc1iJ,OAAQlE,EAAIqc,EAAIrc,IAAK,CACvD,GAAIsvD,GAAQs3F,EAAc5mJ,EAC1B,IAAImC,GAASmtD,EAAM3nD,OAASxF,EAAQmtD,EAAM1nD,IACzC,MAAO5H,GAGT,OAAQ,EAET,QAAS6mJ,GAAc1kJ,GACtB,GAAImtD,GAAQs3F,EAAc,GAC1B,OAAIzkJ,IAASmtD,EAAM3nD,OAASxF,EAAQmtD,EAAM1nD,MAG1C0nD,EAAQs3F,EAAc,IAClBzkJ,GAASmtD,EAAM3nD,OAASxF,EAAQmtD,EAAM1nD,KAw2C3C,QAAS0wH,GAAatoG,GACrB,GAAI82H,GAAc92H,EAAM9rB,MACxB,IAAI4iJ,GAAe,IAAMD,EAAc72H,EAAM/T,WAAW,IACvD,MAAO+T,EAGR,KAAK,GADD3uB,GAAI,GACCgb,EAAKyqI,EAAc,EAAGzqI,GAAM,EAAGA,IACvChb,GAAK2uB,EAAM3T,EAEZ,OAAOhb,GA76DR,GAAI4Z,GAAwBlZ,EAAoB,GAAGkZ,sBAC/CurI,EAAuBvrI,EAAsB,SAAU7Y,GAC1DA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,IACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,KACXA,EAAE,OAAS,OAsCRwkJ,IAEF,MAAS,EACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,MAGP,MAAS,IACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,KACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,OACT,IAAO,SAGP,MAAS,OACT,IAAO,SAGP,MAAS,QACT,IAAO,UAGP,MAAS,MACT,IAAO,QAGP,MAAS,OACT,IAAO,SAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,OACT,IAAO,SAGP,MAAS,MACT,IAAO,QAGP,MAAS,OACT,IAAO,SAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,KACT,IAAO,OAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,KACT,IAAO,QAGP,MAAS,MACT,IAAO,QAGP,MAAS,OACT,IAAO,SAuBLvuB,EAAwBp9G,EAAsB,SAAU7Y,GAC3DA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,OACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,KACdA,GAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,GACdA,GAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,OACdA,EAAE,KAAY,UACdA,EAAE,KAAY,SACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,GAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,GAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,IACdA,GAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,KACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,KACdA,GAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,MACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,EAAE,KAAY,IACdA,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KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAC14CC,GAAe,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MA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,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAO,IAAI,IACXA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,KACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ,KAAI,IACZA,EAAQ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","file":"81a587f43a1d4cf251db.worker.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_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, __webpack_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__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_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__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/packs/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 1);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * PDF.js Worker entry file.\n *\n * This file is identical to Mozilla's pdf.worker.entry.js, with one exception being placed inside\n * this bundle, not theirs. This file can be safely removed and replaced with Mozilla's after the\n * issue mentioned below has been resolved on Parcel's side.\n * See: https://github.com/parcel-bundler/parcel/issues/670\n */\n(typeof window !== 'undefined' ? window : {}).pdfjsWorker = __webpack_require__(2);\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(Buffer, global, process) {/**\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(true)\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = 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.1.266';\nvar pdfjsBuild = '81f5835c';\n\nvar pdfjsCoreWorker = __w_pdfjs_require__(1);\n\nexports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;\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.WorkerMessageHandler = exports.WorkerTask = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _pdf_manager = __w_pdfjs_require__(151);\n\nvar _is_node = _interopRequireDefault(__w_pdfjs_require__(9));\n\nvar _message_handler = __w_pdfjs_require__(189);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar WorkerTask = function WorkerTaskClosure() {\n  function WorkerTask(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = (0, _util.createPromiseCapability)();\n  }\n\n  WorkerTask.prototype = {\n    get finished() {\n      return this._capability.promise;\n    },\n\n    finish: function finish() {\n      this._capability.resolve();\n    },\n    terminate: function terminate() {\n      this.terminated = true;\n    },\n    ensureNotTerminated: function ensureNotTerminated() {\n      if (this.terminated) {\n        throw new Error('Worker task was terminated');\n      }\n    }\n  };\n  return WorkerTask;\n}();\n\nexports.WorkerTask = WorkerTask;\n\nvar PDFWorkerStream = function PDFWorkerStreamClosure() {\n  function PDFWorkerStream(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  PDFWorkerStream.prototype = {\n    getFullReader: function getFullReader() {\n      (0, _util.assert)(!this._fullRequestReader);\n      this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n      return this._fullRequestReader;\n    },\n    getRangeReader: function getRangeReader(begin, end) {\n      var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n\n      this._rangeRequestReaders.push(reader);\n\n      return reader;\n    },\n    cancelAllRequests: function cancelAllRequests(reason) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader.cancel(reason);\n      }\n\n      var readers = this._rangeRequestReaders.slice(0);\n\n      readers.forEach(function (reader) {\n        reader.cancel(reason);\n      });\n    }\n  };\n\n  function PDFWorkerStreamReader(msgHandler) {\n    var _this = this;\n\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    var readableStream = this._msgHandler.sendWithStream('GetReader');\n\n    this._reader = readableStream.getReader();\n    this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {\n      _this._isStreamingSupported = data.isStreamingSupported;\n      _this._isRangeSupported = data.isRangeSupported;\n      _this._contentLength = data.contentLength;\n    });\n  }\n\n  PDFWorkerStreamReader.prototype = {\n    get headersReady() {\n      return this._headersReady;\n    },\n\n    get contentLength() {\n      return this._contentLength;\n    },\n\n    get isStreamingSupported() {\n      return this._isStreamingSupported;\n    },\n\n    get isRangeSupported() {\n      return this._isRangeSupported;\n    },\n\n    read: function read() {\n      return this._reader.read().then(function (_ref) {\n        var value = _ref.value,\n            done = _ref.done;\n\n        if (done) {\n          return {\n            value: undefined,\n            done: true\n          };\n        }\n\n        return {\n          value: value.buffer,\n          done: false\n        };\n      });\n    },\n    cancel: function cancel(reason) {\n      this._reader.cancel(reason);\n    }\n  };\n\n  function PDFWorkerStreamRangeReader(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {\n      begin: begin,\n      end: end\n    });\n\n    this._reader = readableStream.getReader();\n  }\n\n  PDFWorkerStreamRangeReader.prototype = {\n    get isStreamingSupported() {\n      return false;\n    },\n\n    read: function read() {\n      return this._reader.read().then(function (_ref2) {\n        var value = _ref2.value,\n            done = _ref2.done;\n\n        if (done) {\n          return {\n            value: undefined,\n            done: true\n          };\n        }\n\n        return {\n          value: value.buffer,\n          done: false\n        };\n      });\n    },\n    cancel: function cancel(reason) {\n      this._reader.cancel(reason);\n    }\n  };\n  return PDFWorkerStream;\n}();\n\nvar WorkerMessageHandler = {\n  setup: function setup(handler, port) {\n    var testMessageProcessed = false;\n    handler.on('test', function wphSetupTest(data) {\n      if (testMessageProcessed) {\n        return;\n      }\n\n      testMessageProcessed = true;\n\n      if (!(data instanceof Uint8Array)) {\n        handler.send('test', false);\n        return;\n      }\n\n      var supportTransfers = data[0] === 255;\n      handler.postMessageTransfers = supportTransfers;\n      var xhr = new XMLHttpRequest();\n      var responseExists = 'response' in xhr;\n\n      try {\n        xhr.responseType;\n      } catch (e) {\n        responseExists = false;\n      }\n\n      if (!responseExists) {\n        handler.send('test', false);\n        return;\n      }\n\n      handler.send('test', {\n        supportTypedArray: true,\n        supportTransfers: supportTransfers\n      });\n    });\n    handler.on('configure', function wphConfigure(data) {\n      (0, _util.setVerbosityLevel)(data.verbosity);\n    });\n    handler.on('GetDocRequest', function wphSetupDoc(data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  },\n  createDocumentHandler: function createDocumentHandler(docParams, port) {\n    var pdfManager;\n    var terminated = false;\n    var cancelXHRs = null;\n    var WorkerTasks = [];\n    var apiVersion = docParams.apiVersion;\n    var workerVersion = '2.1.266';\n\n    if (apiVersion !== workerVersion) {\n      throw new Error(\"The API version \\\"\".concat(apiVersion, \"\\\" does not match \") + \"the Worker version \\\"\".concat(workerVersion, \"\\\".\"));\n    }\n\n    var docId = docParams.docId;\n    var docBaseUrl = docParams.docBaseUrl;\n    var workerHandlerName = docParams.docId + '_worker';\n    var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n    handler.postMessageTransfers = docParams.postMessageTransfers;\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error('Worker was terminated');\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.push(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      var i = WorkerTasks.indexOf(task);\n      WorkerTasks.splice(i, 1);\n    }\n\n    function loadDocument(_x) {\n      return _loadDocument.apply(this, arguments);\n    }\n\n    function _loadDocument() {\n      _loadDocument = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(recoveryMode) {\n        var _ref6, _ref7, numPages, fingerprint;\n\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _context.next = 2;\n                return pdfManager.ensureDoc('checkHeader');\n\n              case 2:\n                _context.next = 4;\n                return pdfManager.ensureDoc('parseStartXRef');\n\n              case 4:\n                _context.next = 6;\n                return pdfManager.ensureDoc('parse', [recoveryMode]);\n\n              case 6:\n                if (recoveryMode) {\n                  _context.next = 9;\n                  break;\n                }\n\n                _context.next = 9;\n                return pdfManager.ensureDoc('checkFirstPage');\n\n              case 9:\n                _context.next = 11;\n                return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);\n\n              case 11:\n                _ref6 = _context.sent;\n                _ref7 = _slicedToArray(_ref6, 2);\n                numPages = _ref7[0];\n                fingerprint = _ref7[1];\n                return _context.abrupt(\"return\", {\n                  numPages: numPages,\n                  fingerprint: fingerprint\n                });\n\n              case 16:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n      return _loadDocument.apply(this, arguments);\n    }\n\n    function getPdfManager(data, evaluatorOptions) {\n      var pdfManagerCapability = (0, _util.createPromiseCapability)();\n      var pdfManager;\n      var source = data.source;\n\n      if (source.data) {\n        try {\n          pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n          pdfManagerCapability.resolve(pdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        return pdfManagerCapability.promise;\n      }\n\n      var pdfStream,\n          cachedChunks = [];\n\n      try {\n        pdfStream = new PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      var fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady.then(function () {\n        if (!fullRequest.isRangeSupported) {\n          return;\n        }\n\n        var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n        pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n          msgHandler: handler,\n          password: source.password,\n          length: fullRequest.contentLength,\n          disableAutoFetch: disableAutoFetch,\n          rangeChunkSize: source.rangeChunkSize\n        }, evaluatorOptions, docBaseUrl);\n\n        for (var i = 0; i < cachedChunks.length; i++) {\n          pdfManager.sendProgressiveData(cachedChunks[i]);\n        }\n\n        cachedChunks = [];\n        pdfManagerCapability.resolve(pdfManager);\n        cancelXHRs = null;\n      }).catch(function (reason) {\n        pdfManagerCapability.reject(reason);\n        cancelXHRs = null;\n      });\n      var loaded = 0;\n\n      var flushChunks = function flushChunks() {\n        var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n        if (source.length && pdfFile.length !== source.length) {\n          (0, _util.warn)('reported HTTP length is different from actual');\n        }\n\n        try {\n          pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n          pdfManagerCapability.resolve(pdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        cachedChunks = [];\n      };\n\n      var readPromise = new Promise(function (resolve, reject) {\n        var readChunk = function readChunk(chunk) {\n          try {\n            ensureNotTerminated();\n\n            if (chunk.done) {\n              if (!pdfManager) {\n                flushChunks();\n              }\n\n              cancelXHRs = null;\n              return;\n            }\n\n            var data = chunk.value;\n            loaded += (0, _util.arrayByteLength)(data);\n\n            if (!fullRequest.isStreamingSupported) {\n              handler.send('DocProgress', {\n                loaded: loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0)\n              });\n            }\n\n            if (pdfManager) {\n              pdfManager.sendProgressiveData(data);\n            } else {\n              cachedChunks.push(data);\n            }\n\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        fullRequest.read().then(readChunk, reject);\n      });\n      readPromise.catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function cancelXHRs() {\n        pdfStream.cancelAllRequests('abort');\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send('GetDoc', {\n          pdfInfo: doc\n        });\n      }\n\n      function onFailure(e) {\n        ensureNotTerminated();\n\n        if (e instanceof _util.PasswordException) {\n          var task = new WorkerTask('PasswordException: response ' + e.code);\n          startWorkerTask(task);\n          handler.sendWithPromise('PasswordRequest', e).then(function (data) {\n            finishWorkerTask(task);\n            pdfManager.updatePassword(data.password);\n            pdfManagerReady();\n          }).catch(function (boundException) {\n            finishWorkerTask(task);\n            handler.send('PasswordException', boundException);\n          }.bind(null, e));\n        } else if (e instanceof _util.InvalidPDFException) {\n          handler.send('InvalidPDF', e);\n        } else if (e instanceof _util.MissingPDFException) {\n          handler.send('MissingPDF', e);\n        } else if (e instanceof _util.UnexpectedResponseException) {\n          handler.send('UnexpectedResponse', e);\n        } else {\n          handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n        loadDocument(false).then(onSuccess, function loadFailure(ex) {\n          ensureNotTerminated();\n\n          if (!(ex instanceof _util.XRefParseException)) {\n            onFailure(ex);\n            return;\n          }\n\n          pdfManager.requestLoadedStream();\n          pdfManager.onLoadedStream().then(function () {\n            ensureNotTerminated();\n            loadDocument(true).then(onSuccess, onFailure);\n          });\n        }, onFailure);\n      }\n\n      ensureNotTerminated();\n      var evaluatorOptions = {\n        forceDataSchema: data.disableCreateObjectURL,\n        maxImageSize: data.maxImageSize,\n        disableFontFace: data.disableFontFace,\n        nativeImageDecoderSupport: data.nativeImageDecoderSupport,\n        ignoreErrors: data.ignoreErrors,\n        isEvalSupported: data.isEvalSupported\n      };\n      getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n        if (terminated) {\n          newPdfManager.terminate();\n          throw new Error('Worker was terminated');\n        }\n\n        pdfManager = newPdfManager;\n        pdfManager.onLoadedStream().then(function (stream) {\n          handler.send('DataLoaded', {\n            length: stream.bytes.byteLength\n          });\n        });\n      }).then(pdfManagerReady, onFailure);\n    }\n\n    handler.on('GetPage', function wphSetupGetPage(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {\n          var _ref4 = _slicedToArray(_ref3, 4),\n              rotate = _ref4[0],\n              ref = _ref4[1],\n              userUnit = _ref4[2],\n              view = _ref4[3];\n\n          return {\n            rotate: rotate,\n            ref: ref,\n            userUnit: userUnit,\n            view: view\n          };\n        });\n      });\n    });\n    handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {\n      var ref = new _primitives.Ref(data.ref.num, data.ref.gen);\n      var catalog = pdfManager.pdfDocument.catalog;\n      return catalog.getPageIndex(ref);\n    });\n    handler.on('GetDestinations', function wphSetupGetDestinations(data) {\n      return pdfManager.ensureCatalog('destinations');\n    });\n    handler.on('GetDestination', function wphSetupGetDestination(data) {\n      return pdfManager.ensureCatalog('getDestination', [data.id]);\n    });\n    handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {\n      return pdfManager.ensureCatalog('pageLabels');\n    });\n    handler.on('GetPageMode', function wphSetupGetPageMode(data) {\n      return pdfManager.ensureCatalog('pageMode');\n    });\n    handler.on('getOpenActionDestination', function (data) {\n      return pdfManager.ensureCatalog('openActionDestination');\n    });\n    handler.on('GetAttachments', function wphSetupGetAttachments(data) {\n      return pdfManager.ensureCatalog('attachments');\n    });\n    handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {\n      return pdfManager.ensureCatalog('javaScript');\n    });\n    handler.on('GetOutline', function wphSetupGetOutline(data) {\n      return pdfManager.ensureCatalog('documentOutline');\n    });\n    handler.on('GetPermissions', function (data) {\n      return pdfManager.ensureCatalog('permissions');\n    });\n    handler.on('GetMetadata', function wphSetupGetMetadata(data) {\n      return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);\n    });\n    handler.on('GetData', function wphSetupGetData(data) {\n      pdfManager.requestLoadedStream();\n      return pdfManager.onLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n    handler.on('GetStats', function wphSetupGetStats(data) {\n      return pdfManager.pdfDocument.xref.stats;\n    });\n    handler.on('GetAnnotations', function (_ref5) {\n      var pageIndex = _ref5.pageIndex,\n          intent = _ref5.intent;\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return page.getAnnotationsData(intent);\n      });\n    });\n    handler.on('RenderPageRequest', function wphSetupRenderPage(data) {\n      var pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);\n        startWorkerTask(task);\n        var pageNum = pageIndex + 1;\n        var start = Date.now();\n        page.getOperatorList({\n          handler: handler,\n          task: task,\n          intent: data.intent,\n          renderInteractiveForms: data.renderInteractiveForms\n        }).then(function (operatorList) {\n          finishWorkerTask(task);\n          (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);\n        }, function (e) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n          var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';\n          var wrappedException;\n\n          if (typeof e === 'string') {\n            wrappedException = {\n              message: e,\n              stack: minimumStackMessage\n            };\n          } else if (_typeof(e) === 'object') {\n            wrappedException = {\n              message: e.message || e.toString(),\n              stack: e.stack || minimumStackMessage\n            };\n          } else {\n            wrappedException = {\n              message: 'Unknown exception type: ' + _typeof(e),\n              stack: minimumStackMessage\n            };\n          }\n\n          handler.send('PageError', {\n            pageNum: pageNum,\n            error: wrappedException,\n            intent: data.intent\n          });\n        });\n      });\n    }, this);\n    handler.on('GetTextContent', function wphExtractText(data, sink) {\n      var pageIndex = data.pageIndex;\n\n      sink.onPull = function (desiredSize) {};\n\n      sink.onCancel = function (reason) {};\n\n      pdfManager.getPage(pageIndex).then(function (page) {\n        var task = new WorkerTask('GetTextContent: page ' + pageIndex);\n        startWorkerTask(task);\n        var pageNum = pageIndex + 1;\n        var start = Date.now();\n        page.extractTextContent({\n          handler: handler,\n          task: task,\n          sink: sink,\n          normalizeWhitespace: data.normalizeWhitespace,\n          combineTextItems: data.combineTextItems\n        }).then(function () {\n          finishWorkerTask(task);\n          (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          sink.error(reason);\n          throw reason;\n        });\n      });\n    });\n    handler.on('FontFallback', function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n    handler.on('Cleanup', function wphCleanup(data) {\n      return pdfManager.cleanup();\n    });\n    handler.on('Terminate', function wphTerminate(data) {\n      terminated = true;\n\n      if (pdfManager) {\n        pdfManager.terminate();\n        pdfManager = null;\n      }\n\n      if (cancelXHRs) {\n        cancelXHRs();\n      }\n\n      var waitOn = [];\n      WorkerTasks.forEach(function (task) {\n        waitOn.push(task.finished);\n        task.terminate();\n      });\n      return Promise.all(waitOn).then(function () {\n        handler.destroy();\n        handler = null;\n      });\n    });\n    handler.on('Ready', function wphReady(data) {\n      setupDoc(docParams);\n      docParams = null;\n    });\n    return workerHandlerName;\n  },\n  initializeFromPort: function initializeFromPort(port) {\n    var handler = new _message_handler.MessageHandler('worker', 'main', port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send('ready', null);\n  }\n};\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n  return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;\n}\n\nif (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(3);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g = function () {\n  return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self;\n}() || Function(\"return this\")();\n\nvar hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\ng.regeneratorRuntime = undefined;\nmodule.exports = __w_pdfjs_require__(4);\n\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/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\n  if (runtime) {\n    if (inModule) {\n      module.exports = runtime;\n    }\n\n    return;\n  }\n\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n    return generator;\n  }\n\n  runtime.wrap = wrap;\n\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n  var ContinueSentinel = {};\n\n  function Generator() {}\n\n  function GeneratorFunction() {}\n\n  function GeneratorFunctionPrototype() {}\n\n  var IteratorPrototype = {};\n\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n  if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      prototype[method] = function (arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  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\n  runtime.mark = function (genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  runtime.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n\n        if (value && _typeof(value) === \"object\" && hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function (value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function (err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped;\n          resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function (resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n    }\n\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n\n  runtime.AsyncIterator = AsyncIterator;\n\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\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          context.sent = context._sent = context.arg;\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n        var record = tryCatch(innerFn, self, context);\n\n        if (record.type === \"normal\") {\n          state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n\n    if (method === undefined) {\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (!info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      context[delegate.resultName] = info.value;\n      context.next = delegate.nextLoc;\n\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n    } else {\n      return info;\n    }\n\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  defineIteratorMethods(Gp);\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  Gp[iteratorSymbol] = function () {\n    return this;\n  };\n\n  Gp.toString = function () {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function (object) {\n    var keys = [];\n\n    for (var key in object) {\n      keys.push(key);\n    }\n\n    keys.reverse();\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n            next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    return {\n      next: doneResult\n    };\n  }\n\n  runtime.values = values;\n\n  function doneResult() {\n    return {\n      value: undefined,\n      done: true\n    };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n      this.method = \"next\";\n      this.arg = undefined;\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n    stop: function stop() {\n      this.done = true;\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !!caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" || record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n\n          return thrown;\n        }\n      }\n\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n}(function () {\n  return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self;\n}() || Function(\"return this\")());\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(5)(module)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n  if (!module.webpackPolyfill) {\n    module.deprecate = function () {};\n\n    module.paths = [];\n    if (!module.children) module.children = [];\n    Object.defineProperty(module, \"loaded\", {\n      enumerable: true,\n      get: function get() {\n        return module.l;\n      }\n    });\n    Object.defineProperty(module, \"id\", {\n      enumerable: true,\n      get: function get() {\n        return module.i;\n      }\n    });\n    module.webpackPolyfill = 1;\n  }\n\n  return module;\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.toRomanNumerals = toRomanNumerals;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\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.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;\nObject.defineProperty(exports, \"ReadableStream\", {\n  enumerable: true,\n  get: function get() {\n    return _streams_polyfill.ReadableStream;\n  }\n});\nObject.defineProperty(exports, \"URL\", {\n  enumerable: true,\n  get: function get() {\n    return _url_polyfill.URL;\n  }\n});\nexports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = 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 = void 0;\n\n__w_pdfjs_require__(7);\n\nvar _streams_polyfill = __w_pdfjs_require__(147);\n\nvar _url_polyfill = __w_pdfjs_require__(149);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nvar NativeImageDecoding = {\n  NONE: 'none',\n  DECODE: 'decode',\n  DISPLAY: 'display'\n};\nexports.NativeImageDecoding = NativeImageDecoding;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nvar ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nvar AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nvar VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nvar CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\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};\nexports.OPS = OPS;\nvar UNSUPPORTED_FEATURES = {\n  unknown: 'unknown',\n  forms: 'forms',\n  javaScript: 'javaScript',\n  smask: 'smask',\n  shadingPattern: 'shadingPattern',\n  font: 'font'\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nvar PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nvar verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log('Info: ' + msg);\n  }\n}\n\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log('Warning: ' + msg);\n  }\n}\n\nfunction deprecated(details) {\n  console.log('Deprecated API usage: ' + details);\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n  try {\n    var base = new _url_polyfill.URL(baseUrl);\n\n    if (!base.origin || base.origin === 'null') {\n      return false;\n    }\n  } catch (e) {\n    return false;\n  }\n\n  var other = new _url_polyfill.URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n\n  switch (url.protocol) {\n    case 'http:':\n    case 'https:':\n    case 'ftp:':\n    case 'mailto:':\n    case 'tel:':\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n  if (!url) {\n    return null;\n  }\n\n  try {\n    var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {}\n\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value: value,\n    enumerable: true,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\n\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\n    return lookup;\n  };\n}\n\nvar PasswordException = function PasswordExceptionClosure() {\n  function PasswordException(msg, code) {\n    this.name = 'PasswordException';\n    this.message = msg;\n    this.code = code;\n  }\n\n  PasswordException.prototype = new Error();\n  PasswordException.constructor = PasswordException;\n  return PasswordException;\n}();\n\nexports.PasswordException = PasswordException;\n\nvar UnknownErrorException = function UnknownErrorExceptionClosure() {\n  function UnknownErrorException(msg, details) {\n    this.name = 'UnknownErrorException';\n    this.message = msg;\n    this.details = details;\n  }\n\n  UnknownErrorException.prototype = new Error();\n  UnknownErrorException.constructor = UnknownErrorException;\n  return UnknownErrorException;\n}();\n\nexports.UnknownErrorException = UnknownErrorException;\n\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n  function InvalidPDFException(msg) {\n    this.name = 'InvalidPDFException';\n    this.message = msg;\n  }\n\n  InvalidPDFException.prototype = new Error();\n  InvalidPDFException.constructor = InvalidPDFException;\n  return InvalidPDFException;\n}();\n\nexports.InvalidPDFException = InvalidPDFException;\n\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n  function MissingPDFException(msg) {\n    this.name = 'MissingPDFException';\n    this.message = msg;\n  }\n\n  MissingPDFException.prototype = new Error();\n  MissingPDFException.constructor = MissingPDFException;\n  return MissingPDFException;\n}();\n\nexports.MissingPDFException = MissingPDFException;\n\nvar UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n  function UnexpectedResponseException(msg, status) {\n    this.name = 'UnexpectedResponseException';\n    this.message = msg;\n    this.status = status;\n  }\n\n  UnexpectedResponseException.prototype = new Error();\n  UnexpectedResponseException.constructor = UnexpectedResponseException;\n  return UnexpectedResponseException;\n}();\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nvar 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\n  MissingDataException.prototype = new Error();\n  MissingDataException.prototype.name = 'MissingDataException';\n  MissingDataException.constructor = MissingDataException;\n  return MissingDataException;\n}();\n\nexports.MissingDataException = MissingDataException;\n\nvar XRefEntryException = function XRefEntryExceptionClosure() {\n  function XRefEntryException(msg) {\n    this.message = msg;\n  }\n\n  XRefEntryException.prototype = new Error();\n  XRefEntryException.prototype.name = 'XRefEntryException';\n  XRefEntryException.constructor = XRefEntryException;\n  return XRefEntryException;\n}();\n\nexports.XRefEntryException = XRefEntryException;\n\nvar XRefParseException = function XRefParseExceptionClosure() {\n  function XRefParseException(msg) {\n    this.message = msg;\n  }\n\n  XRefParseException.prototype = new Error();\n  XRefParseException.prototype.name = 'XRefParseException';\n  XRefParseException.constructor = XRefParseException;\n  return XRefParseException;\n}();\n\nexports.XRefParseException = XRefParseException;\n\nvar FormatError = function FormatErrorClosure() {\n  function FormatError(msg) {\n    this.message = msg;\n  }\n\n  FormatError.prototype = new Error();\n  FormatError.prototype.name = 'FormatError';\n  FormatError.constructor = FormatError;\n  return FormatError;\n}();\n\nexports.FormatError = FormatError;\n\nvar AbortException = function AbortExceptionClosure() {\n  function AbortException(msg) {\n    this.name = 'AbortException';\n    this.message = msg;\n  }\n\n  AbortException.prototype = new Error();\n  AbortException.constructor = AbortException;\n  return AbortException;\n}();\n\nexports.AbortException = AbortException;\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n  if (typeof str !== 'string') {\n    warn('The argument for removeNullCharacters must be a string.');\n    return str;\n  }\n\n  return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n  assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n  var length = bytes.length;\n  var MAX_ARGUMENT_COUNT = 8192;\n\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n\n  var strBuf = [];\n\n  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    var chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n\n  return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n  var length = str.length;\n  var bytes = new Uint8Array(length);\n\n  for (var i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xFF;\n  }\n\n  return bytes;\n}\n\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n\n  assert(arr.byteLength !== undefined);\n  return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n  if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n\n  var resultLength = 0;\n  var i,\n      ii = arr.length;\n  var item, itemLength;\n\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n    itemLength = arrayByteLength(item);\n    resultLength += itemLength;\n  }\n\n  var pos = 0;\n  var data = new Uint8Array(resultLength);\n\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === 'string') {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n\n    itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n  return data[start] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isLittleEndian() {\n  var buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n  try {\n    new Function('');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction getInheritableProperty(_ref) {\n  var dict = _ref.dict,\n      key = _ref.key,\n      _ref$getArray = _ref.getArray,\n      getArray = _ref$getArray === void 0 ? false : _ref$getArray,\n      _ref$stopWhenFound = _ref.stopWhenFound,\n      stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;\n  var LOOP_LIMIT = 100;\n  var loopCount = 0;\n  var values;\n\n  while (dict) {\n    var value = getArray ? dict.getArray(key) : dict.get(key);\n\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n\n      if (!values) {\n        values = [];\n      }\n\n      values.push(value);\n    }\n\n    if (++loopCount > LOOP_LIMIT) {\n      warn(\"getInheritableProperty: maximum loop count exceeded for \\\"\".concat(key, \"\\\"\"));\n      break;\n    }\n\n    dict = dict.get('Parent');\n  }\n\n  return values;\n}\n\nvar Util = function UtilClosure() {\n  function Util() {}\n\n  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n    rgbBuf[1] = r;\n    rgbBuf[3] = g;\n    rgbBuf[5] = b;\n    return rgbBuf.join('');\n  };\n\n  Util.transform = function Util_transform(m1, m2) {\n    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n  };\n\n  Util.applyTransform = function Util_applyTransform(p, m) {\n    var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  };\n\n  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n    var d = m[0] * m[3] - m[1] * m[2];\n    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  };\n\n  Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n    var p1 = Util.applyTransform(r, m);\n    var p2 = Util.applyTransform(r.slice(2, 4), m);\n    var p3 = Util.applyTransform([r[0], r[3]], m);\n    var p4 = Util.applyTransform([r[2], r[1]], m);\n    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n  };\n\n  Util.inverseTransform = function Util_inverseTransform(m) {\n    var d = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  };\n\n  Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n  };\n\n  Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n    var transpose = [m[0], m[2], m[1], m[3]];\n    var a = m[0] * transpose[0] + m[1] * transpose[2];\n    var b = m[0] * transpose[1] + m[1] * transpose[3];\n    var c = m[2] * transpose[0] + m[3] * transpose[2];\n    var d = m[2] * transpose[1] + m[3] * transpose[3];\n    var first = (a + d) / 2;\n    var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n    var sx = first + second || 1;\n    var sy = first - second || 1;\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  };\n\n  Util.normalizeRect = function Util_normalizeRect(rect) {\n    var r = rect.slice(0);\n\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n\n    return r;\n  };\n\n  Util.intersect = function Util_intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n        result = [];\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return false;\n    }\n\n    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return false;\n    }\n\n    return result;\n  };\n\n  return Util;\n}();\n\nexports.Util = Util;\nvar 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'];\n\nfunction toRomanNumerals(number) {\n  var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');\n  var pos,\n      romanBuf = [];\n\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push('M');\n  }\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}\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];\n\nfunction stringToPDFString(str) {\n  var i,\n      n = str.length,\n      strBuf = [];\n\n  if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n    for (i = 2; i < n; i += 2) {\n      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n    }\n  } else {\n    for (i = 0; i < n; ++i) {\n      var code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n\n  return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n  for (var key in obj) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction isBool(v) {\n  return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n  return typeof v === 'number';\n}\n\nfunction isString(v) {\n  return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n  return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;\n}\n\nfunction isSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\n\nfunction createPromiseCapability() {\n  var capability = Object.create(null);\n  var isSettled = false;\n  Object.defineProperty(capability, 'settled', {\n    get: function get() {\n      return isSettled;\n    }\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nvar createObjectURL = function createObjectURLClosure() {\n  var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n  return function createObjectURL(data, contentType) {\n    var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {\n      var blob = new Blob([data], {\n        type: contentType\n      });\n      return _url_polyfill.URL.createObjectURL(blob);\n    }\n\n    var buffer = 'data:' + contentType + ';base64,';\n\n    for (var i = 0, ii = data.length; i < ii; i += 3) {\n      var b1 = data[i] & 0xFF;\n      var b2 = data[i + 1] & 0xFF;\n      var b3 = data[i + 2] & 0xFF;\n      var d1 = b1 >> 2,\n          d2 = (b1 & 3) << 4 | b2 >> 4;\n      var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n      var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n\n    return buffer;\n  };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar globalScope = __w_pdfjs_require__(8);\n\nif (!globalScope._pdfjsCompatibilityChecked) {\n  globalScope._pdfjsCompatibilityChecked = true;\n\n  var isNodeJS = __w_pdfjs_require__(9);\n\n  var hasDOM = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object';\n\n  (function checkNodeBtoa() {\n    if (globalScope.btoa || !isNodeJS()) {\n      return;\n    }\n\n    globalScope.btoa = function (chars) {\n      return Buffer.from(chars, 'binary').toString('base64');\n    };\n  })();\n\n  (function checkNodeAtob() {\n    if (globalScope.atob || !isNodeJS()) {\n      return;\n    }\n\n    globalScope.atob = function (input) {\n      return Buffer.from(input, 'base64').toString('binary');\n    };\n  })();\n\n  (function checkChildNodeRemove() {\n    if (!hasDOM) {\n      return;\n    }\n\n    if (typeof Element.prototype.remove !== 'undefined') {\n      return;\n    }\n\n    Element.prototype.remove = function () {\n      if (this.parentNode) {\n        this.parentNode.removeChild(this);\n      }\n    };\n  })();\n\n  (function checkDOMTokenListAddRemove() {\n    if (!hasDOM || isNodeJS()) {\n      return;\n    }\n\n    var div = document.createElement('div');\n    div.classList.add('testOne', 'testTwo');\n\n    if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {\n      return;\n    }\n\n    var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n    var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n    DOMTokenList.prototype.add = function () {\n      for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {\n        tokens[_key] = arguments[_key];\n      }\n\n      for (var _i = 0; _i < tokens.length; _i++) {\n        var token = tokens[_i];\n        OriginalDOMTokenListAdd.call(this, token);\n      }\n    };\n\n    DOMTokenList.prototype.remove = function () {\n      for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        tokens[_key2] = arguments[_key2];\n      }\n\n      for (var _i2 = 0; _i2 < tokens.length; _i2++) {\n        var token = tokens[_i2];\n        OriginalDOMTokenListRemove.call(this, token);\n      }\n    };\n  })();\n\n  (function checkDOMTokenListToggle() {\n    if (!hasDOM || isNodeJS()) {\n      return;\n    }\n\n    var div = document.createElement('div');\n\n    if (div.classList.toggle('test', 0) === false) {\n      return;\n    }\n\n    DOMTokenList.prototype.toggle = function (token) {\n      var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n      return this[force ? 'add' : 'remove'](token), force;\n    };\n  })();\n\n  (function checkStringStartsWith() {\n    if (String.prototype.startsWith) {\n      return;\n    }\n\n    __w_pdfjs_require__(10);\n  })();\n\n  (function checkStringEndsWith() {\n    if (String.prototype.endsWith) {\n      return;\n    }\n\n    __w_pdfjs_require__(40);\n  })();\n\n  (function checkStringIncludes() {\n    if (String.prototype.includes) {\n      return;\n    }\n\n    __w_pdfjs_require__(42);\n  })();\n\n  (function checkArrayIncludes() {\n    if (Array.prototype.includes) {\n      return;\n    }\n\n    __w_pdfjs_require__(44);\n  })();\n\n  (function checkArrayFrom() {\n    if (Array.from) {\n      return;\n    }\n\n    __w_pdfjs_require__(51);\n  })();\n\n  (function checkObjectAssign() {\n    if (Object.assign) {\n      return;\n    }\n\n    __w_pdfjs_require__(74);\n  })();\n\n  (function checkMathLog2() {\n    if (Math.log2) {\n      return;\n    }\n\n    Math.log2 = __w_pdfjs_require__(79);\n  })();\n\n  (function checkNumberIsNaN() {\n    if (Number.isNaN) {\n      return;\n    }\n\n    Number.isNaN = __w_pdfjs_require__(81);\n  })();\n\n  (function checkNumberIsInteger() {\n    if (Number.isInteger) {\n      return;\n    }\n\n    Number.isInteger = __w_pdfjs_require__(83);\n  })();\n\n  (function checkPromise() {\n    if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) {\n      return;\n    }\n\n    globalScope.Promise = __w_pdfjs_require__(86);\n  })();\n\n  (function checkWeakMap() {\n    if (globalScope.WeakMap) {\n      return;\n    }\n\n    globalScope.WeakMap = __w_pdfjs_require__(106);\n  })();\n\n  (function checkWeakSet() {\n    if (globalScope.WeakSet) {\n      return;\n    }\n\n    globalScope.WeakSet = __w_pdfjs_require__(123);\n  })();\n\n  (function checkStringCodePointAt() {\n    if (String.codePointAt) {\n      return;\n    }\n\n    String.codePointAt = __w_pdfjs_require__(127);\n  })();\n\n  (function checkStringFromCodePoint() {\n    if (String.fromCodePoint) {\n      return;\n    }\n\n    String.fromCodePoint = __w_pdfjs_require__(129);\n  })();\n\n  (function checkSymbol() {\n    if (globalScope.Symbol) {\n      return;\n    }\n\n    __w_pdfjs_require__(131);\n  })();\n\n  (function checkStringPadStart() {\n    if (String.prototype.padStart) {\n      return;\n    }\n\n    __w_pdfjs_require__(138);\n  })();\n\n  (function checkStringPadEnd() {\n    if (String.prototype.padEnd) {\n      return;\n    }\n\n    __w_pdfjs_require__(142);\n  })();\n\n  (function checkObjectValues() {\n    if (Object.values) {\n      return;\n    }\n\n    Object.values = __w_pdfjs_require__(144);\n  })();\n}\n\n/***/ }),\n/* 8 */\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/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function isNodeJS() {\n  return (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'];\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(11);\n\nmodule.exports = __w_pdfjs_require__(14).String.startsWith;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar context = __w_pdfjs_require__(32);\n\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(39)(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;\n  }\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar core = __w_pdfjs_require__(14);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar PROTOTYPE = 'prototype';\n\nvar $export = function $export(type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n\n  for (key in source) {\n    own = !IS_FORCED && target && target[key] !== undefined;\n    out = (own ? target : source)[key];\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    if (target) redefine(target, key, out, type & $export.U);\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\n\nglobal.core = core;\n$export.F = 1;\n$export.G = 2;\n$export.S = 4;\n$export.P = 8;\n$export.B = 16;\n$export.W = 32;\n$export.U = 64;\n$export.R = 128;\nmodule.exports = $export;\n\n/***/ }),\n/* 13 */\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/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = module.exports = {\n  version: '2.6.2'\n};\nif (typeof __e == 'number') __e = core;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(16);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nmodule.exports = __w_pdfjs_require__(20) ? 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/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(19);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(20) ? 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/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function (it) {\n  return _typeof(it) === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(20) && !__w_pdfjs_require__(21)(function () {\n  return Object.defineProperty(__w_pdfjs_require__(22)('div'), 'a', {\n    get: function get() {\n      return 7;\n    }\n  }).a != 7;\n});\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(21)(function () {\n  return Object.defineProperty({}, 'a', {\n    get: function get() {\n      return 7;\n    }\n  }).a != 7;\n});\n\n/***/ }),\n/* 21 */\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/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar document = __w_pdfjs_require__(13).document;\n\nvar is = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 24 */\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/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar has = __w_pdfjs_require__(26);\n\nvar SRC = __w_pdfjs_require__(27)('src');\n\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__w_pdfjs_require__(14).inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar id = 0;\nvar px = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(29);\n\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n\n  switch (length) {\n    case 1:\n      return function (a) {\n        return fn.call(that, a);\n      };\n\n    case 2:\n      return function (a, b) {\n        return fn.call(that, a, b);\n      };\n\n    case 3:\n      return function (a, b, c) {\n        return fn.call(that, a, b, c);\n      };\n  }\n\n  return function () {\n    return fn.apply(that, arguments);\n  };\n};\n\n/***/ }),\n/* 29 */\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/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar min = Math.min;\n\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(33);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar cof = __w_pdfjs_require__(34);\n\nvar MATCH = __w_pdfjs_require__(35)('match');\n\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(36)('wks');\n\nvar uid = __w_pdfjs_require__(27);\n\nvar _Symbol = __w_pdfjs_require__(13).Symbol;\n\nvar USE_SYMBOL = typeof _Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(14);\n\nvar global = __w_pdfjs_require__(13);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __w_pdfjs_require__(37) ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 38 */\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/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(35)('match');\n\nmodule.exports = function (KEY) {\n  var re = /./;\n\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) {}\n  }\n\n  return true;\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(41);\n\nmodule.exports = __w_pdfjs_require__(14).String.endsWith;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar context = __w_pdfjs_require__(32);\n\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(39)(ENDS_WITH), 'String', {\n  endsWith: function endsWith(searchString) {\n    var that = context(this, searchString, ENDS_WITH);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n    var search = String(searchString);\n    return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;\n  }\n});\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(43);\n\nmodule.exports = __w_pdfjs_require__(14).String.includes;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar context = __w_pdfjs_require__(32);\n\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(39)(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/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(45);\n\nmodule.exports = __w_pdfjs_require__(14).Array.includes;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $includes = __w_pdfjs_require__(46)(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n__w_pdfjs_require__(50)('includes');\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(49);\n\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      if (value != value) return true;\n    } else for (; length > index; index++) {\n      if (IS_INCLUDES || index in O) {\n        if (O[index] === el) return IS_INCLUDES || index || 0;\n      }\n    }\n    return !IS_INCLUDES && -1;\n  };\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar max = Math.max;\nvar min = Math.min;\n\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(35)('unscopables');\n\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(15)(ArrayProto, UNSCOPABLES, {});\n\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(52);\n\n__w_pdfjs_require__(67);\n\nmodule.exports = __w_pdfjs_require__(14).Array.from;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(53)(true);\n\n__w_pdfjs_require__(54)(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/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar $iterCreate = __w_pdfjs_require__(56);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar getPrototypeOf = __w_pdfjs_require__(65);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function returnThis() {\n  return this;\n};\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n\n  var getMethod = function getMethod(kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n\n    switch (kind) {\n      case KEYS:\n        return function keys() {\n          return new Constructor(this, kind);\n        };\n\n      case VALUES:\n        return function values() {\n          return new Constructor(this, kind);\n        };\n    }\n\n    return function entries() {\n      return new Constructor(this, kind);\n    };\n  };\n\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      setToStringTag(IteratorPrototype, TAG, true);\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n\n    $default = function values() {\n      return $native.call(this);\n    };\n  }\n\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n\n  return methods;\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(57);\n\nvar descriptor = __w_pdfjs_require__(24);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar IteratorPrototype = {};\n\n__w_pdfjs_require__(15)(IteratorPrototype, __w_pdfjs_require__(35)('iterator'), function () {\n  return this;\n});\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, {\n    next: descriptor(1, next)\n  });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar dPs = __w_pdfjs_require__(58);\n\nvar enumBugKeys = __w_pdfjs_require__(62);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nvar Empty = function Empty() {};\n\nvar PROTOTYPE = 'prototype';\n\nvar _createDict = function createDict() {\n  var iframe = __w_pdfjs_require__(22)('iframe');\n\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n\n  __w_pdfjs_require__(63).appendChild(iframe);\n\n  iframe.src = 'javascript:';\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  _createDict = iframeDocument.F;\n\n  while (i--) {\n    delete _createDict[PROTOTYPE][enumBugKeys[i]];\n  }\n\n  return _createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    result[IE_PROTO] = O;\n  } else result = _createDict();\n\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(16);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar getKeys = __w_pdfjs_require__(59);\n\nmodule.exports = __w_pdfjs_require__(20) ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n\n  while (length > i) {\n    dP.f(O, P = keys[i++], Properties[P]);\n  }\n\n  return O;\n};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(60);\n\nvar enumBugKeys = __w_pdfjs_require__(62);\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(26);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar arrayIndexOf = __w_pdfjs_require__(46)(false);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n\n  for (key in O) {\n    if (key != IE_PROTO) has(O, key) && result.push(key);\n  }\n\n  while (names.length > i) {\n    if (has(O, key = names[i++])) {\n      ~arrayIndexOf(result, key) || result.push(key);\n    }\n  }\n\n  return result;\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(36)('keys');\n\nvar uid = __w_pdfjs_require__(27);\n\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 62 */\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/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(13).document;\n\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(16).f;\n\nvar has = __w_pdfjs_require__(26);\n\nvar TAG = __w_pdfjs_require__(35)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n    configurable: true,\n    value: tag\n  });\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(26);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  }\n\n  return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar call = __w_pdfjs_require__(68);\n\nvar isArrayIter = __w_pdfjs_require__(69);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar createProperty = __w_pdfjs_require__(70);\n\nvar getIterFn = __w_pdfjs_require__(71);\n\n$export($export.S + $export.F * !__w_pdfjs_require__(73)(function (iter) {\n  Array.from(iter);\n}), 'Array', {\n  from: function from(arrayLike) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n\n    result.length = index;\n    return result;\n  }\n});\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $defineProperty = __w_pdfjs_require__(16);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;\n};\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(72);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar Iterators = __w_pdfjs_require__(55);\n\nmodule.exports = __w_pdfjs_require__(14).getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nvar TAG = __w_pdfjs_require__(35)('toStringTag');\n\nvar ARG = cof(function () {\n  return arguments;\n}()) == 'Arguments';\n\nvar tryGet = function tryGet(it, key) {\n  try {\n    return it[key];\n  } catch (e) {}\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n\n  riter['return'] = function () {\n    SAFE_CLOSING = true;\n  };\n\n  Array.from(riter, function () {\n    throw 2;\n  });\n} catch (e) {}\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n\n    iter.next = function () {\n      return {\n        done: safe = true\n      };\n    };\n\n    arr[ITERATOR] = function () {\n      return iter;\n    };\n\n    exec(arr);\n  } catch (e) {}\n\n  return safe;\n};\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(75);\n\nmodule.exports = __w_pdfjs_require__(14).Object.assign;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S + $export.F, 'Object', {\n  assign: __w_pdfjs_require__(76)\n});\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar gOPS = __w_pdfjs_require__(77);\n\nvar pIE = __w_pdfjs_require__(78);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar $assign = Object.assign;\nmodule.exports = !$assign || __w_pdfjs_require__(21)(function () {\n  var A = {};\n  var B = {};\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) {\n    B[k] = k;\n  });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) {\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n\n    while (length > j) {\n      if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n    }\n  }\n\n  return T;\n} : $assign;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(80);\n\nmodule.exports = __w_pdfjs_require__(14).Math.log2;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Math', {\n  log2: function log2(x) {\n    return Math.log(x) / Math.LN2;\n  }\n});\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(82);\n\nmodule.exports = __w_pdfjs_require__(14).Number.isNaN;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number) {\n    return number != number;\n  }\n});\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(84);\n\nmodule.exports = __w_pdfjs_require__(14).Number.isInteger;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Number', {\n  isInteger: __w_pdfjs_require__(85)\n});\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar floor = Math.floor;\n\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(52);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(91);\n\n__w_pdfjs_require__(104);\n\n__w_pdfjs_require__(105);\n\nmodule.exports = __w_pdfjs_require__(14).Promise;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(72);\n\nvar test = {};\ntest[__w_pdfjs_require__(35)('toStringTag')] = 'z';\n\nif (test + '' != '[object z]') {\n  __w_pdfjs_require__(25)(Object.prototype, 'toString', function toString() {\n    return '[object ' + classof(this) + ']';\n  }, true);\n}\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(89);\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar global = __w_pdfjs_require__(13);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar wks = __w_pdfjs_require__(35);\n\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\nvar DOMIterables = {\n  CSSRuleList: true,\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true,\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true,\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n\n  if (proto) {\n    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n    Iterators[NAME] = ArrayValues;\n    if (explicit) for (key in $iterators) {\n      if (!proto[key]) redefine(proto, key, $iterators[key], true);\n    }\n  }\n}\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(50);\n\nvar step = __w_pdfjs_require__(90);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nmodule.exports = __w_pdfjs_require__(54)(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated);\n  this._i = 0;\n  this._k = kind;\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 90 */\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/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar global = __w_pdfjs_require__(13);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar classof = __w_pdfjs_require__(72);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar speciesConstructor = __w_pdfjs_require__(94);\n\nvar task = __w_pdfjs_require__(95).set;\n\nvar microtask = __w_pdfjs_require__(97)();\n\nvar newPromiseCapabilityModule = __w_pdfjs_require__(98);\n\nvar perform = __w_pdfjs_require__(99);\n\nvar userAgent = __w_pdfjs_require__(100);\n\nvar promiseResolve = __w_pdfjs_require__(101);\n\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\n\nvar empty = function empty() {};\n\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n  try {\n    var promise = $Promise.resolve(1);\n\n    var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(35)('species')] = function (exec) {\n      exec(empty, empty);\n    };\n\n    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) {}\n}();\n\nvar isThenable = function isThenable(it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function notify(promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n\n    var run = function run(reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n\n          if (handler === true) result = value;else {\n            if (domain) domain.enter();\n            result = handler(value);\n\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n\n    while (chain.length > i) {\n      run(chain[i++]);\n    }\n\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\n\nvar onUnhandled = function onUnhandled(promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({\n            promise: promise,\n            reason: value\n          });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    }\n\n    promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\n\nvar isUnhandled = function isUnhandled(promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\n\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n  task.call(global, function () {\n    var handler;\n\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({\n        promise: promise,\n        reason: promise._v\n      });\n    }\n  });\n};\n\nvar $reject = function $reject(value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise;\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\n\nvar $resolve = function $resolve(value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise;\n\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = {\n          _w: promise,\n          _d: false\n        };\n\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({\n      _w: promise,\n      _d: false\n    }, e);\n  }\n};\n\nif (!USE_NATIVE) {\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n\n  Internal = function Promise(executor) {\n    this._c = [];\n    this._a = undefined;\n    this._s = 0;\n    this._d = false;\n    this._v = undefined;\n    this._h = 0;\n    this._n = false;\n  };\n\n  Internal.prototype = __w_pdfjs_require__(102)($Promise.prototype, {\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n\n      this._c.push(reaction);\n\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    'catch': function _catch(onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n\n  OwnPromiseCapability = function OwnPromiseCapability() {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n\n  newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n    return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n  Promise: $Promise\n});\n\n__w_pdfjs_require__(64)($Promise, PROMISE);\n\n__w_pdfjs_require__(103)(PROMISE);\n\nWrapper = __w_pdfjs_require__(14)[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__(73)(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/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n    throw TypeError(name + ': incorrect invocation!');\n  }\n\n  return it;\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar call = __w_pdfjs_require__(68);\n\nvar isArrayIter = __w_pdfjs_require__(69);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar getIterFn = __w_pdfjs_require__(71);\n\nvar BREAK = {};\nvar RETURN = {};\n\nvar _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () {\n    return iterable;\n  } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\n\n_exports.BREAK = BREAK;\n_exports.RETURN = RETURN;\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar invoke = __w_pdfjs_require__(96);\n\nvar html = __w_pdfjs_require__(63);\n\nvar cel = __w_pdfjs_require__(22);\n\nvar global = __w_pdfjs_require__(13);\n\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function run() {\n  var id = +this;\n\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar listener = function listener(event) {\n  run.call(event.data);\n};\n\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n\n    while (arguments.length > i) {\n      args.push(arguments[i++]);\n    }\n\n    queue[++counter] = function () {\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n\n    defer(counter);\n    return counter;\n  };\n\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n\n  if (__w_pdfjs_require__(34)(process) == 'process') {\n    defer = function defer(id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  } else if (Dispatch && Dispatch.now) {\n    defer = function defer(id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function defer(id) {\n      global.postMessage(id + '', '*');\n    };\n\n    global.addEventListener('message', listener, false);\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function defer(id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  } else {\n    defer = function defer(id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n\n  switch (args.length) {\n    case 0:\n      return un ? fn() : fn.call(that);\n\n    case 1:\n      return un ? fn(args[0]) : fn.call(that, args[0]);\n\n    case 2:\n      return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n\n    case 3:\n      return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n\n    case 4:\n      return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n  }\n\n  return fn.apply(that, args);\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar macrotask = __w_pdfjs_require__(95).set;\n\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(34)(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function flush() {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();else last = undefined;\n        throw e;\n      }\n    }\n\n    last = undefined;\n    if (parent) parent.enter();\n  };\n\n  if (isNode) {\n    notify = function notify() {\n      process.nextTick(flush);\n    };\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, {\n      characterData: true\n    });\n\n    notify = function notify() {\n      node.data = toggle = !toggle;\n    };\n  } else if (Promise && Promise.resolve) {\n    var promise = Promise.resolve(undefined);\n\n    notify = function notify() {\n      promise.then(flush);\n    };\n  } else {\n    notify = function notify() {\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = {\n      fn: fn,\n      next: undefined\n    };\n    if (last) last.next = task;\n\n    if (!head) {\n      head = task;\n      notify();\n    }\n\n    last = task;\n  };\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(29);\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 99 */\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/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar newPromiseCapability = __w_pdfjs_require__(98);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(25);\n\nmodule.exports = function (target, src, safe) {\n  for (var key in src) {\n    redefine(target, key, src[key], safe);\n  }\n\n  return target;\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar dP = __w_pdfjs_require__(16);\n\nvar DESCRIPTORS = __w_pdfjs_require__(20);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (KEY) {\n  var C = global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function get() {\n      return this;\n    }\n  });\n};\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar core = __w_pdfjs_require__(14);\n\nvar global = __w_pdfjs_require__(13);\n\nvar speciesConstructor = __w_pdfjs_require__(94);\n\nvar promiseResolve = __w_pdfjs_require__(101);\n\n$export($export.P + $export.R, 'Promise', {\n  'finally': function _finally(onFinally) {\n    var C = speciesConstructor(this, core.Promise || global.Promise);\n    var isFunction = typeof onFinally == 'function';\n    return this.then(isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () {\n        return x;\n      });\n    } : onFinally, isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () {\n        throw e;\n      });\n    } : onFinally);\n  }\n});\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar newPromiseCapability = __w_pdfjs_require__(98);\n\nvar perform = __w_pdfjs_require__(99);\n\n$export($export.S, 'Promise', {\n  'try': function _try(callbackfn) {\n    var promiseCapability = newPromiseCapability.f(this);\n    var result = perform(callbackfn);\n    (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n    return promiseCapability.promise;\n  }\n});\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(107);\n\n__w_pdfjs_require__(119);\n\n__w_pdfjs_require__(121);\n\nmodule.exports = __w_pdfjs_require__(14).WeakMap;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar each = __w_pdfjs_require__(108)(0);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar meta = __w_pdfjs_require__(112);\n\nvar assign = __w_pdfjs_require__(76);\n\nvar weak = __w_pdfjs_require__(113);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar fails = __w_pdfjs_require__(21);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function wrapper(get) {\n  return function WeakMap() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n};\n\nvar methods = {\n  get: function get(key) {\n    if (isObject(key)) {\n      var data = getWeak(key);\n      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n      return data ? data[this._i] : undefined;\n    }\n  },\n  set: function set(key, value) {\n    return weak.def(validate(this, WEAK_MAP), key, value);\n  }\n};\n\nvar $WeakMap = module.exports = __w_pdfjs_require__(115)(WEAK_MAP, wrapper, methods, weak, true, true);\n\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\n        var result = this._f[key](a, b);\n\n        return key == 'set' ? this : result;\n      }\n\n      return method.call(this, a, b);\n    });\n  });\n}\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar asc = __w_pdfjs_require__(109);\n\nmodule.exports = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || asc;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IObject(O);\n    var f = ctx(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n\n    for (; length > index; index++) {\n      if (NO_HOLES || index in self) {\n        val = self[index];\n        res = f(val, index, O);\n\n        if (TYPE) {\n          if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n            case 3:\n              return true;\n\n            case 5:\n              return val;\n\n            case 6:\n              return index;\n\n            case 2:\n              result.push(val);\n          } else if (IS_EVERY) return false;\n        }\n      }\n    }\n\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(110);\n\nmodule.exports = function (original, length) {\n  return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar isArray = __w_pdfjs_require__(111);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (original) {\n  var C;\n\n  if (isArray(original)) {\n    C = original.constructor;\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n\n    if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  }\n\n  return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar META = __w_pdfjs_require__(27)('meta');\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar has = __w_pdfjs_require__(26);\n\nvar setDesc = __w_pdfjs_require__(16).f;\n\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar FREEZE = !__w_pdfjs_require__(21)(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\n\nvar setMeta = function setMeta(it) {\n  setDesc(it, META, {\n    value: {\n      i: 'O' + ++id,\n      w: {}\n    }\n  });\n};\n\nvar fastKey = function fastKey(it, create) {\n  if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\n  if (!has(it, META)) {\n    if (!isExtensible(it)) return 'F';\n    if (!create) return 'E';\n    setMeta(it);\n  }\n\n  return it[META].i;\n};\n\nvar getWeak = function getWeak(it, create) {\n  if (!has(it, META)) {\n    if (!isExtensible(it)) return true;\n    if (!create) return false;\n    setMeta(it);\n  }\n\n  return it[META].w;\n};\n\nvar onFreeze = function onFreeze(it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(102);\n\nvar getWeak = __w_pdfjs_require__(112).getWeak;\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar createArrayMethod = __w_pdfjs_require__(108);\n\nvar $has = __w_pdfjs_require__(26);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\nvar uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n  return that._l || (that._l = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n  this.a = [];\n};\n\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n  return arrayFind(store.a, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function get(key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function has(key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function set(key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;else this.a.push([key, value]);\n  },\n  'delete': function _delete(key) {\n    var index = arrayFindIndex(this.a, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.a.splice(index, 1);\n    return !!~index;\n  }\n};\nmodule.exports = {\n  getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;\n      that._i = id++;\n      that._l = undefined;\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      'delete': function _delete(key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n        return data && $has(data, this._i) && delete data[this._i];\n      },\n      has: function has(key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n        return data && $has(data, this._i);\n      }\n    });\n    return C;\n  },\n  def: function def(that, key, value) {\n    var data = getWeak(anObject(key), true);\n    if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;\n    return that;\n  },\n  ufstore: uncaughtFrozenStore\n};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar redefineAll = __w_pdfjs_require__(102);\n\nvar meta = __w_pdfjs_require__(112);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar fails = __w_pdfjs_require__(21);\n\nvar $iterDetect = __w_pdfjs_require__(73);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar inheritIfRequired = __w_pdfjs_require__(116);\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n  var Base = global[NAME];\n  var C = Base;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var proto = C && C.prototype;\n  var O = {};\n\n  var fixMethod = function fixMethod(KEY) {\n    var fn = proto[KEY];\n    redefine(proto, KEY, KEY == 'delete' ? function (a) {\n      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'has' ? function has(a) {\n      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'get' ? function get(a) {\n      return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'add' ? function add(a) {\n      fn.call(this, a === 0 ? 0 : a);\n      return this;\n    } : function set(a, b) {\n      fn.call(this, a === 0 ? 0 : a, b);\n      return this;\n    });\n  };\n\n  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n    redefineAll(C.prototype, methods);\n    meta.NEED = true;\n  } else {\n    var instance = new C();\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    var THROWS_ON_PRIMITIVES = fails(function () {\n      instance.has(1);\n    });\n    var ACCEPT_ITERABLES = $iterDetect(function (iter) {\n      new C(iter);\n    });\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      var $instance = new C();\n      var index = 5;\n\n      while (index--) {\n        $instance[ADDER](index, index);\n      }\n\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      C = wrapper(function (target, iterable) {\n        anInstance(target, C, NAME);\n        var that = inheritIfRequired(new Base(), target, C);\n        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n        return that;\n      });\n      C.prototype = proto;\n      proto.constructor = C;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n    if (IS_WEAK && proto.clear) delete proto.clear;\n  }\n\n  setToStringTag(C, NAME);\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F * (C != Base), O);\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n  return C;\n};\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar setPrototypeOf = __w_pdfjs_require__(117).set;\n\nmodule.exports = function (that, target, C) {\n  var S = target.constructor;\n  var P;\n\n  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n    setPrototypeOf(that, P);\n  }\n\n  return that;\n};\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar check = function check(O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\n\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n    try {\n      set = __w_pdfjs_require__(28)(Function.call, __w_pdfjs_require__(118).f(Object.prototype, '__proto__').set, 2);\n      set(test, []);\n      buggy = !(test instanceof Array);\n    } catch (e) {\n      buggy = true;\n    }\n\n    return function setPrototypeOf(O, proto) {\n      check(O, proto);\n      if (buggy) O.__proto__ = proto;else set(O, proto);\n      return O;\n    };\n  }({}, false) : undefined),\n  check: check\n};\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(78);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar has = __w_pdfjs_require__(26);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(19);\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(20) ? 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/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(120)('WeakMap');\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, {\n    of: function of() {\n      var length = arguments.length;\n      var A = new Array(length);\n\n      while (length--) {\n        A[length] = arguments[length];\n      }\n\n      return new this(A);\n    }\n  });\n};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(122)('WeakMap');\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar forOf = __w_pdfjs_require__(93);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, {\n    from: function from(source) {\n      var mapFn = arguments[1];\n      var mapping, A, n, cb;\n      aFunction(this);\n      mapping = mapFn !== undefined;\n      if (mapping) aFunction(mapFn);\n      if (source == undefined) return new this();\n      A = [];\n\n      if (mapping) {\n        n = 0;\n        cb = ctx(mapFn, arguments[2], 2);\n        forOf(source, false, function (nextItem) {\n          A.push(cb(nextItem, n++));\n        });\n      } else {\n        forOf(source, false, A.push, A);\n      }\n\n      return new this(A);\n    }\n  });\n};\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(124);\n\n__w_pdfjs_require__(125);\n\n__w_pdfjs_require__(126);\n\nmodule.exports = __w_pdfjs_require__(14).WeakSet;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar weak = __w_pdfjs_require__(113);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar WEAK_SET = 'WeakSet';\n\n__w_pdfjs_require__(115)(WEAK_SET, function (get) {\n  return function WeakSet() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n}, {\n  add: function add(value) {\n    return weak.def(validate(this, WEAK_SET), value, true);\n  }\n}, weak, false, true);\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(120)('WeakSet');\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(122)('WeakSet');\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(128);\n\nmodule.exports = __w_pdfjs_require__(14).String.codePointAt;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $at = __w_pdfjs_require__(53)(false);\n\n$export($export.P, 'String', {\n  codePointAt: function codePointAt(pos) {\n    return $at(this, pos);\n  }\n});\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(130);\n\nmodule.exports = __w_pdfjs_require__(14).String.fromCodePoint;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(49);\n\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  fromCodePoint: function fromCodePoint(x) {\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));\n    }\n\n    return res.join('');\n  }\n});\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(132);\n\n__w_pdfjs_require__(87);\n\nmodule.exports = __w_pdfjs_require__(14).Symbol;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar global = __w_pdfjs_require__(13);\n\nvar has = __w_pdfjs_require__(26);\n\nvar DESCRIPTORS = __w_pdfjs_require__(20);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar META = __w_pdfjs_require__(112).KEY;\n\nvar $fails = __w_pdfjs_require__(21);\n\nvar shared = __w_pdfjs_require__(36);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar uid = __w_pdfjs_require__(27);\n\nvar wks = __w_pdfjs_require__(35);\n\nvar wksExt = __w_pdfjs_require__(133);\n\nvar wksDefine = __w_pdfjs_require__(134);\n\nvar enumKeys = __w_pdfjs_require__(135);\n\nvar isArray = __w_pdfjs_require__(111);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nvar _create = __w_pdfjs_require__(57);\n\nvar gOPNExt = __w_pdfjs_require__(136);\n\nvar $GOPD = __w_pdfjs_require__(118);\n\nvar $DP = __w_pdfjs_require__(16);\n\nvar $keys = __w_pdfjs_require__(59);\n\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\n\nvar _stringify = $JSON && $JSON.stringify;\n\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function get() {\n      return dP(this, 'a', {\n        value: 7\n      }).a;\n    }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function wrap(tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n  return _typeof(it) == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, {\n        enumerable: createDesc(0, false)\n      });\n    }\n\n    return setSymbolDesc(it, key, D);\n  }\n\n  return dP(it, key, D);\n};\n\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n\n  while (l > i) {\n    $defineProperty(it, key = keys[i++], P[key]);\n  }\n\n  return it;\n};\n\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  }\n\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  }\n\n  return result;\n};\n\nif (!USE_NATIVE) {\n  $Symbol = function _Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\n    var $set = function $set(value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n      configurable: true,\n      set: $set\n    });\n    return wrap(tag);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  __w_pdfjs_require__(137).f = gOPNExt.f = $getOwnPropertyNames;\n  __w_pdfjs_require__(78).f = $propertyIsEnumerable;\n  __w_pdfjs_require__(77).f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !__w_pdfjs_require__(37)) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n  Symbol: $Symbol\n});\n\nfor (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {\n  wks(es6Symbols[j++]);\n}\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n  wksDefine(wellKnownSymbols[k++]);\n}\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  'for': function _for(key) {\n    return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);\n  },\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n\n    for (var key in SymbolRegistry) {\n      if (SymbolRegistry[key] === sym) return key;\n    }\n  },\n  useSetter: function useSetter() {\n    setter = true;\n  },\n  useSimple: function useSimple() {\n    setter = false;\n  }\n});\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  create: $create,\n  defineProperty: $defineProperty,\n  defineProperties: $defineProperties,\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  getOwnPropertyNames: $getOwnPropertyNames,\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  return _stringify([S]) != '[null]' || _stringify({\n    a: S\n  }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n\n    while (arguments.length > i) {\n      args.push(arguments[i++]);\n    }\n\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return;\n    if (!isArray(replacer)) replacer = function replacer(key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(15)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\nsetToStringTag($Symbol, 'Symbol');\nsetToStringTag(Math, 'Math', true);\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(35);\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar core = __w_pdfjs_require__(14);\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar wksExt = __w_pdfjs_require__(133);\n\nvar defineProperty = __w_pdfjs_require__(16).f;\n\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {\n    value: wksExt.f(name)\n  });\n};\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar gOPS = __w_pdfjs_require__(77);\n\nvar pIE = __w_pdfjs_require__(78);\n\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n\n    while (symbols.length > i) {\n      if (isEnum.call(it, key = symbols[i++])) result.push(key);\n    }\n  }\n\n  return result;\n};\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar gOPN = __w_pdfjs_require__(137).f;\n\nvar toString = {}.toString;\nvar windowNames = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function getWindowNames(it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(60);\n\nvar hiddenKeys = __w_pdfjs_require__(62).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(139);\n\nmodule.exports = __w_pdfjs_require__(14).String.padStart;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $pad = __w_pdfjs_require__(140);\n\nvar userAgent = __w_pdfjs_require__(100);\n\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padStart: function padStart(maxLength) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n  }\n});\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar repeat = __w_pdfjs_require__(141);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (that, maxLength, fillString, left) {\n  var S = String(defined(that));\n  var stringLength = S.length;\n  var fillStr = fillString === undefined ? ' ' : String(fillString);\n  var intMaxLength = toLength(maxLength);\n  if (intMaxLength <= stringLength || fillStr == '') return S;\n  var fillLen = intMaxLength - stringLength;\n  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n  return left ? stringFiller + S : S + stringFiller;\n};\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function repeat(count) {\n  var str = String(defined(this));\n  var res = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n\n  for (; n > 0; (n >>>= 1) && (str += str)) {\n    if (n & 1) res += str;\n  }\n\n  return res;\n};\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(143);\n\nmodule.exports = __w_pdfjs_require__(14).String.padEnd;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $pad = __w_pdfjs_require__(140);\n\nvar userAgent = __w_pdfjs_require__(100);\n\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padEnd: function padEnd(maxLength) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n  }\n});\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(145);\n\nmodule.exports = __w_pdfjs_require__(14).Object.values;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $values = __w_pdfjs_require__(146)(false);\n\n$export($export.S, 'Object', {\n  values: function values(it) {\n    return $values(it);\n  }\n});\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar isEnum = __w_pdfjs_require__(78).f;\n\nmodule.exports = function (isEntries) {\n  return function (it) {\n    var O = toIObject(it);\n    var keys = getKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n\n    while (length > i) {\n      if (isEnum.call(O, key = keys[i++])) {\n        result.push(isEntries ? [key, O[key]] : O[key]);\n      }\n    }\n\n    return result;\n  };\n};\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n{\n  var isReadableStreamSupported = false;\n\n  if (typeof ReadableStream !== 'undefined') {\n    try {\n      new ReadableStream({\n        start: function start(controller) {\n          controller.close();\n        }\n      });\n      isReadableStreamSupported = true;\n    } catch (e) {}\n  }\n\n  if (isReadableStreamSupported) {\n    exports.ReadableStream = ReadableStream;\n  } else {\n    exports.ReadableStream = __w_pdfjs_require__(148).ReadableStream;\n  }\n}\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (e, a) {\n  for (var i in a) {\n    e[i] = a[i];\n  }\n})(exports, function (modules) {\n  var installedModules = {};\n\n  function __w_pdfjs_require__(moduleId) {\n    if (installedModules[moduleId]) return installedModules[moduleId].exports;\n    var module = installedModules[moduleId] = {\n      i: moduleId,\n      l: false,\n      exports: {}\n    };\n    modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n    module.l = true;\n    return module.exports;\n  }\n\n  __w_pdfjs_require__.m = modules;\n  __w_pdfjs_require__.c = installedModules;\n\n  __w_pdfjs_require__.i = function (value) {\n    return value;\n  };\n\n  __w_pdfjs_require__.d = function (exports, name, getter) {\n    if (!__w_pdfjs_require__.o(exports, name)) {\n      Object.defineProperty(exports, name, {\n        configurable: false,\n        enumerable: true,\n        get: getter\n      });\n    }\n  };\n\n  __w_pdfjs_require__.n = function (module) {\n    var getter = module && module.__esModule ? function getDefault() {\n      return module['default'];\n    } : function getModuleExports() {\n      return module;\n    };\n\n    __w_pdfjs_require__.d(getter, 'a', getter);\n\n    return getter;\n  };\n\n  __w_pdfjs_require__.o = function (object, property) {\n    return Object.prototype.hasOwnProperty.call(object, property);\n  };\n\n  __w_pdfjs_require__.p = \"\";\n  return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n}([function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n    return _typeof2(obj);\n  } : function (obj) {\n    return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n  };\n\n  var _require = __w_pdfjs_require__(1),\n      assert = _require.assert;\n\n  function IsPropertyKey(argument) {\n    return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n  }\n\n  exports.typeIsObject = function (x) {\n    return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n  };\n\n  exports.createDataProperty = function (o, p, v) {\n    assert(exports.typeIsObject(o));\n    Object.defineProperty(o, p, {\n      value: v,\n      writable: true,\n      enumerable: true,\n      configurable: true\n    });\n  };\n\n  exports.createArrayFromList = function (elements) {\n    return elements.slice();\n  };\n\n  exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n    new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n  };\n\n  exports.CreateIterResultObject = function (value, done) {\n    assert(typeof done === 'boolean');\n    var obj = {};\n    Object.defineProperty(obj, 'value', {\n      value: value,\n      enumerable: true,\n      writable: true,\n      configurable: true\n    });\n    Object.defineProperty(obj, 'done', {\n      value: done,\n      enumerable: true,\n      writable: true,\n      configurable: true\n    });\n    return obj;\n  };\n\n  exports.IsFiniteNonNegativeNumber = function (v) {\n    if (Number.isNaN(v)) {\n      return false;\n    }\n\n    if (v === Infinity) {\n      return false;\n    }\n\n    if (v < 0) {\n      return false;\n    }\n\n    return true;\n  };\n\n  function Call(F, V, args) {\n    if (typeof F !== 'function') {\n      throw new TypeError('Argument is not a function');\n    }\n\n    return Function.prototype.apply.call(F, V, args);\n  }\n\n  exports.InvokeOrNoop = function (O, P, args) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n    var method = O[P];\n\n    if (method === undefined) {\n      return undefined;\n    }\n\n    return Call(method, O, args);\n  };\n\n  exports.PromiseInvokeOrNoop = function (O, P, args) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n\n    try {\n      return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n    } catch (returnValueE) {\n      return Promise.reject(returnValueE);\n    }\n  };\n\n  exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n    assert(Array.isArray(argsF));\n    var method = void 0;\n\n    try {\n      method = O[P];\n    } catch (methodE) {\n      return Promise.reject(methodE);\n    }\n\n    if (method === undefined) {\n      return F.apply(null, argsF);\n    }\n\n    try {\n      return Promise.resolve(Call(method, O, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  };\n\n  exports.TransferArrayBuffer = function (O) {\n    return O.slice();\n  };\n\n  exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n    highWaterMark = Number(highWaterMark);\n\n    if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n      throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n    }\n\n    return highWaterMark;\n  };\n\n  exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n    if (size !== undefined && typeof size !== 'function') {\n      throw new TypeError('size property of a queuing strategy must be a function');\n    }\n\n    highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n    return {\n      size: size,\n      highWaterMark: highWaterMark\n    };\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  function rethrowAssertionErrorRejection(e) {\n    if (e && e.constructor === AssertionError) {\n      setTimeout(function () {\n        throw e;\n      }, 0);\n    }\n  }\n\n  function AssertionError(message) {\n    this.name = 'AssertionError';\n    this.message = message || '';\n    this.stack = new Error().stack;\n  }\n\n  AssertionError.prototype = Object.create(Error.prototype);\n  AssertionError.prototype.constructor = AssertionError;\n\n  function assert(value, message) {\n    if (!value) {\n      throw new AssertionError(message);\n    }\n  }\n\n  module.exports = {\n    rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n    AssertionError: AssertionError,\n    assert: assert\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(0),\n      InvokeOrNoop = _require.InvokeOrNoop,\n      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n      typeIsObject = _require.typeIsObject;\n\n  var _require2 = __w_pdfjs_require__(1),\n      assert = _require2.assert,\n      rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\n  var _require3 = __w_pdfjs_require__(3),\n      DequeueValue = _require3.DequeueValue,\n      EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n      PeekQueueValue = _require3.PeekQueueValue,\n      ResetQueue = _require3.ResetQueue;\n\n  var WritableStream = function () {\n    function WritableStream() {\n      var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          size = _ref.size,\n          _ref$highWaterMark = _ref.highWaterMark,\n          highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n      _classCallCheck(this, WritableStream);\n\n      this._state = 'writable';\n      this._storedError = undefined;\n      this._writer = undefined;\n      this._writableStreamController = undefined;\n      this._writeRequests = [];\n      this._inFlightWriteRequest = undefined;\n      this._closeRequest = undefined;\n      this._inFlightCloseRequest = undefined;\n      this._pendingAbortRequest = undefined;\n      this._backpressure = false;\n      var type = underlyingSink.type;\n\n      if (type !== undefined) {\n        throw new RangeError('Invalid type is specified');\n      }\n\n      this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n\n      this._writableStreamController.__startSteps();\n    }\n\n    _createClass(WritableStream, [{\n      key: 'abort',\n      value: function abort(reason) {\n        if (IsWritableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('abort'));\n        }\n\n        if (IsWritableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n        }\n\n        return WritableStreamAbort(this, reason);\n      }\n    }, {\n      key: 'getWriter',\n      value: function getWriter() {\n        if (IsWritableStream(this) === false) {\n          throw streamBrandCheckException('getWriter');\n        }\n\n        return AcquireWritableStreamDefaultWriter(this);\n      }\n    }, {\n      key: 'locked',\n      get: function get() {\n        if (IsWritableStream(this) === false) {\n          throw streamBrandCheckException('locked');\n        }\n\n        return IsWritableStreamLocked(this);\n      }\n    }]);\n\n    return WritableStream;\n  }();\n\n  module.exports = {\n    AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n    IsWritableStream: IsWritableStream,\n    IsWritableStreamLocked: IsWritableStreamLocked,\n    WritableStream: WritableStream,\n    WritableStreamAbort: WritableStreamAbort,\n    WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n    WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n    WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n    WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n    WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n  };\n\n  function AcquireWritableStreamDefaultWriter(stream) {\n    return new WritableStreamDefaultWriter(stream);\n  }\n\n  function IsWritableStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsWritableStreamLocked(stream) {\n    assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n    if (stream._writer === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamAbort(stream, reason) {\n    var state = stream._state;\n\n    if (state === 'closed') {\n      return Promise.resolve(undefined);\n    }\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    var error = new TypeError('Requested to abort');\n\n    if (stream._pendingAbortRequest !== undefined) {\n      return Promise.reject(error);\n    }\n\n    assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n    var wasAlreadyErroring = false;\n\n    if (state === 'erroring') {\n      wasAlreadyErroring = true;\n      reason = undefined;\n    }\n\n    var promise = new Promise(function (resolve, reject) {\n      stream._pendingAbortRequest = {\n        _resolve: resolve,\n        _reject: reject,\n        _reason: reason,\n        _wasAlreadyErroring: wasAlreadyErroring\n      };\n    });\n\n    if (wasAlreadyErroring === false) {\n      WritableStreamStartErroring(stream, error);\n    }\n\n    return promise;\n  }\n\n  function WritableStreamAddWriteRequest(stream) {\n    assert(IsWritableStreamLocked(stream) === true);\n    assert(stream._state === 'writable');\n    var promise = new Promise(function (resolve, reject) {\n      var writeRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._writeRequests.push(writeRequest);\n    });\n    return promise;\n  }\n\n  function WritableStreamDealWithRejection(stream, error) {\n    var state = stream._state;\n\n    if (state === 'writable') {\n      WritableStreamStartErroring(stream, error);\n      return;\n    }\n\n    assert(state === 'erroring');\n    WritableStreamFinishErroring(stream);\n  }\n\n  function WritableStreamStartErroring(stream, reason) {\n    assert(stream._storedError === undefined, 'stream._storedError === undefined');\n    assert(stream._state === 'writable', 'state must be writable');\n    var controller = stream._writableStreamController;\n    assert(controller !== undefined, 'controller must not be undefined');\n    stream._state = 'erroring';\n    stream._storedError = reason;\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n    }\n\n    if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n      WritableStreamFinishErroring(stream);\n    }\n  }\n\n  function WritableStreamFinishErroring(stream) {\n    assert(stream._state === 'erroring', 'stream._state === erroring');\n    assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n    stream._state = 'errored';\n\n    stream._writableStreamController.__errorSteps();\n\n    var storedError = stream._storedError;\n\n    for (var i = 0; i < stream._writeRequests.length; i++) {\n      var writeRequest = stream._writeRequests[i];\n\n      writeRequest._reject(storedError);\n    }\n\n    stream._writeRequests = [];\n\n    if (stream._pendingAbortRequest === undefined) {\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n      return;\n    }\n\n    var abortRequest = stream._pendingAbortRequest;\n    stream._pendingAbortRequest = undefined;\n\n    if (abortRequest._wasAlreadyErroring === true) {\n      abortRequest._reject(storedError);\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n      return;\n    }\n\n    var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n\n    promise.then(function () {\n      abortRequest._resolve();\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    }, function (reason) {\n      abortRequest._reject(reason);\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    });\n  }\n\n  function WritableStreamFinishInFlightWrite(stream) {\n    assert(stream._inFlightWriteRequest !== undefined);\n\n    stream._inFlightWriteRequest._resolve(undefined);\n\n    stream._inFlightWriteRequest = undefined;\n  }\n\n  function WritableStreamFinishInFlightWriteWithError(stream, error) {\n    assert(stream._inFlightWriteRequest !== undefined);\n\n    stream._inFlightWriteRequest._reject(error);\n\n    stream._inFlightWriteRequest = undefined;\n    assert(stream._state === 'writable' || stream._state === 'erroring');\n    WritableStreamDealWithRejection(stream, error);\n  }\n\n  function WritableStreamFinishInFlightClose(stream) {\n    assert(stream._inFlightCloseRequest !== undefined);\n\n    stream._inFlightCloseRequest._resolve(undefined);\n\n    stream._inFlightCloseRequest = undefined;\n    var state = stream._state;\n    assert(state === 'writable' || state === 'erroring');\n\n    if (state === 'erroring') {\n      stream._storedError = undefined;\n\n      if (stream._pendingAbortRequest !== undefined) {\n        stream._pendingAbortRequest._resolve();\n\n        stream._pendingAbortRequest = undefined;\n      }\n    }\n\n    stream._state = 'closed';\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      defaultWriterClosedPromiseResolve(writer);\n    }\n\n    assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n    assert(stream._storedError === undefined, 'stream._storedError === undefined');\n  }\n\n  function WritableStreamFinishInFlightCloseWithError(stream, error) {\n    assert(stream._inFlightCloseRequest !== undefined);\n\n    stream._inFlightCloseRequest._reject(error);\n\n    stream._inFlightCloseRequest = undefined;\n    assert(stream._state === 'writable' || stream._state === 'erroring');\n\n    if (stream._pendingAbortRequest !== undefined) {\n      stream._pendingAbortRequest._reject(error);\n\n      stream._pendingAbortRequest = undefined;\n    }\n\n    WritableStreamDealWithRejection(stream, error);\n  }\n\n  function WritableStreamCloseQueuedOrInFlight(stream) {\n    if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamHasOperationMarkedInFlight(stream) {\n    if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamMarkCloseRequestInFlight(stream) {\n    assert(stream._inFlightCloseRequest === undefined);\n    assert(stream._closeRequest !== undefined);\n    stream._inFlightCloseRequest = stream._closeRequest;\n    stream._closeRequest = undefined;\n  }\n\n  function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n    assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n    assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n    stream._inFlightWriteRequest = stream._writeRequests.shift();\n  }\n\n  function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n    assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n\n    if (stream._closeRequest !== undefined) {\n      assert(stream._inFlightCloseRequest === undefined);\n\n      stream._closeRequest._reject(stream._storedError);\n\n      stream._closeRequest = undefined;\n    }\n\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      defaultWriterClosedPromiseReject(writer, stream._storedError);\n\n      writer._closedPromise.catch(function () {});\n    }\n  }\n\n  function WritableStreamUpdateBackpressure(stream, backpressure) {\n    assert(stream._state === 'writable');\n    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n    var writer = stream._writer;\n\n    if (writer !== undefined && backpressure !== stream._backpressure) {\n      if (backpressure === true) {\n        defaultWriterReadyPromiseReset(writer);\n      } else {\n        assert(backpressure === false);\n        defaultWriterReadyPromiseResolve(writer);\n      }\n    }\n\n    stream._backpressure = backpressure;\n  }\n\n  var WritableStreamDefaultWriter = function () {\n    function WritableStreamDefaultWriter(stream) {\n      _classCallCheck(this, WritableStreamDefaultWriter);\n\n      if (IsWritableStream(stream) === false) {\n        throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n      }\n\n      if (IsWritableStreamLocked(stream) === true) {\n        throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n      }\n\n      this._ownerWritableStream = stream;\n      stream._writer = this;\n      var state = stream._state;\n\n      if (state === 'writable') {\n        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n          defaultWriterReadyPromiseInitialize(this);\n        } else {\n          defaultWriterReadyPromiseInitializeAsResolved(this);\n        }\n\n        defaultWriterClosedPromiseInitialize(this);\n      } else if (state === 'erroring') {\n        defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n\n        this._readyPromise.catch(function () {});\n\n        defaultWriterClosedPromiseInitialize(this);\n      } else if (state === 'closed') {\n        defaultWriterReadyPromiseInitializeAsResolved(this);\n        defaultWriterClosedPromiseInitializeAsResolved(this);\n      } else {\n        assert(state === 'errored', 'state must be errored');\n        var storedError = stream._storedError;\n        defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n\n        this._readyPromise.catch(function () {});\n\n        defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n\n        this._closedPromise.catch(function () {});\n      }\n    }\n\n    _createClass(WritableStreamDefaultWriter, [{\n      key: 'abort',\n      value: function abort(reason) {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('abort'));\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          return Promise.reject(defaultWriterLockException('abort'));\n        }\n\n        return WritableStreamDefaultWriterAbort(this, reason);\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('close'));\n        }\n\n        var stream = this._ownerWritableStream;\n\n        if (stream === undefined) {\n          return Promise.reject(defaultWriterLockException('close'));\n        }\n\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n          return Promise.reject(new TypeError('cannot close an already-closing stream'));\n        }\n\n        return WritableStreamDefaultWriterClose(this);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          throw defaultWriterBrandCheckException('releaseLock');\n        }\n\n        var stream = this._ownerWritableStream;\n\n        if (stream === undefined) {\n          return;\n        }\n\n        assert(stream._writer !== undefined);\n        WritableStreamDefaultWriterRelease(this);\n      }\n    }, {\n      key: 'write',\n      value: function write(chunk) {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('write'));\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          return Promise.reject(defaultWriterLockException('write to'));\n        }\n\n        return WritableStreamDefaultWriterWrite(this, chunk);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          throw defaultWriterBrandCheckException('desiredSize');\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          throw defaultWriterLockException('desiredSize');\n        }\n\n        return WritableStreamDefaultWriterGetDesiredSize(this);\n      }\n    }, {\n      key: 'ready',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('ready'));\n        }\n\n        return this._readyPromise;\n      }\n    }]);\n\n    return WritableStreamDefaultWriter;\n  }();\n\n  function IsWritableStreamDefaultWriter(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamDefaultWriterAbort(writer, reason) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    return WritableStreamAbort(stream, reason);\n  }\n\n  function WritableStreamDefaultWriterClose(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var state = stream._state;\n\n    if (state === 'closed' || state === 'errored') {\n      return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n    }\n\n    assert(state === 'writable' || state === 'erroring');\n    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n    var promise = new Promise(function (resolve, reject) {\n      var closeRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n      stream._closeRequest = closeRequest;\n    });\n\n    if (stream._backpressure === true && state === 'writable') {\n      defaultWriterReadyPromiseResolve(writer);\n    }\n\n    WritableStreamDefaultControllerClose(stream._writableStreamController);\n    return promise;\n  }\n\n  function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var state = stream._state;\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n      return Promise.resolve();\n    }\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(state === 'writable' || state === 'erroring');\n    return WritableStreamDefaultWriterClose(writer);\n  }\n\n  function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n    if (writer._closedPromiseState === 'pending') {\n      defaultWriterClosedPromiseReject(writer, error);\n    } else {\n      defaultWriterClosedPromiseResetToRejected(writer, error);\n    }\n\n    writer._closedPromise.catch(function () {});\n  }\n\n  function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n    if (writer._readyPromiseState === 'pending') {\n      defaultWriterReadyPromiseReject(writer, error);\n    } else {\n      defaultWriterReadyPromiseResetToRejected(writer, error);\n    }\n\n    writer._readyPromise.catch(function () {});\n  }\n\n  function WritableStreamDefaultWriterGetDesiredSize(writer) {\n    var stream = writer._ownerWritableStream;\n    var state = stream._state;\n\n    if (state === 'errored' || state === 'erroring') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n  }\n\n  function WritableStreamDefaultWriterRelease(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    assert(stream._writer === writer);\n    var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n    WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n    WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n    stream._writer = undefined;\n    writer._ownerWritableStream = undefined;\n  }\n\n  function WritableStreamDefaultWriterWrite(writer, chunk) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var controller = stream._writableStreamController;\n    var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n    if (stream !== writer._ownerWritableStream) {\n      return Promise.reject(defaultWriterLockException('write to'));\n    }\n\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n      return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n    }\n\n    if (state === 'erroring') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(state === 'writable');\n    var promise = WritableStreamAddWriteRequest(stream);\n    WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n    return promise;\n  }\n\n  var WritableStreamDefaultController = function () {\n    function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n      _classCallCheck(this, WritableStreamDefaultController);\n\n      if (IsWritableStream(stream) === false) {\n        throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n      }\n\n      if (stream._writableStreamController !== undefined) {\n        throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n      }\n\n      this._controlledWritableStream = stream;\n      this._underlyingSink = underlyingSink;\n      this._queue = undefined;\n      this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._started = false;\n      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n      this._strategySize = normalizedStrategy.size;\n      this._strategyHWM = normalizedStrategy.highWaterMark;\n      var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n      WritableStreamUpdateBackpressure(stream, backpressure);\n    }\n\n    _createClass(WritableStreamDefaultController, [{\n      key: 'error',\n      value: function error(e) {\n        if (IsWritableStreamDefaultController(this) === false) {\n          throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n        }\n\n        var state = this._controlledWritableStream._state;\n\n        if (state !== 'writable') {\n          return;\n        }\n\n        WritableStreamDefaultControllerError(this, e);\n      }\n    }, {\n      key: '__abortSteps',\n      value: function __abortSteps(reason) {\n        return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n      }\n    }, {\n      key: '__errorSteps',\n      value: function __errorSteps() {\n        ResetQueue(this);\n      }\n    }, {\n      key: '__startSteps',\n      value: function __startSteps() {\n        var _this = this;\n\n        var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n        var stream = this._controlledWritableStream;\n        Promise.resolve(startResult).then(function () {\n          assert(stream._state === 'writable' || stream._state === 'erroring');\n          _this._started = true;\n          WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n        }, function (r) {\n          assert(stream._state === 'writable' || stream._state === 'erroring');\n          _this._started = true;\n          WritableStreamDealWithRejection(stream, r);\n        }).catch(rethrowAssertionErrorRejection);\n      }\n    }]);\n\n    return WritableStreamDefaultController;\n  }();\n\n  function WritableStreamDefaultControllerClose(controller) {\n    EnqueueValueWithSize(controller, 'close', 0);\n    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n  }\n\n  function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n    var strategySize = controller._strategySize;\n\n    if (strategySize === undefined) {\n      return 1;\n    }\n\n    try {\n      return strategySize(chunk);\n    } catch (chunkSizeE) {\n      WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n      return 1;\n    }\n  }\n\n  function WritableStreamDefaultControllerGetDesiredSize(controller) {\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n    var writeRecord = {\n      chunk: chunk\n    };\n\n    try {\n      EnqueueValueWithSize(controller, writeRecord, chunkSize);\n    } catch (enqueueE) {\n      WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n      return;\n    }\n\n    var stream = controller._controlledWritableStream;\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n      var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n      WritableStreamUpdateBackpressure(stream, backpressure);\n    }\n\n    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n  }\n\n  function IsWritableStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n    var stream = controller._controlledWritableStream;\n\n    if (controller._started === false) {\n      return;\n    }\n\n    if (stream._inFlightWriteRequest !== undefined) {\n      return;\n    }\n\n    var state = stream._state;\n\n    if (state === 'closed' || state === 'errored') {\n      return;\n    }\n\n    if (state === 'erroring') {\n      WritableStreamFinishErroring(stream);\n      return;\n    }\n\n    if (controller._queue.length === 0) {\n      return;\n    }\n\n    var writeRecord = PeekQueueValue(controller);\n\n    if (writeRecord === 'close') {\n      WritableStreamDefaultControllerProcessClose(controller);\n    } else {\n      WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n    }\n  }\n\n  function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n    if (controller._controlledWritableStream._state === 'writable') {\n      WritableStreamDefaultControllerError(controller, error);\n    }\n  }\n\n  function WritableStreamDefaultControllerProcessClose(controller) {\n    var stream = controller._controlledWritableStream;\n    WritableStreamMarkCloseRequestInFlight(stream);\n    DequeueValue(controller);\n    assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n    var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n    sinkClosePromise.then(function () {\n      WritableStreamFinishInFlightClose(stream);\n    }, function (reason) {\n      WritableStreamFinishInFlightCloseWithError(stream, reason);\n    }).catch(rethrowAssertionErrorRejection);\n  }\n\n  function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n    var stream = controller._controlledWritableStream;\n    WritableStreamMarkFirstWriteRequestInFlight(stream);\n    var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n    sinkWritePromise.then(function () {\n      WritableStreamFinishInFlightWrite(stream);\n      var state = stream._state;\n      assert(state === 'writable' || state === 'erroring');\n      DequeueValue(controller);\n\n      if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n      }\n\n      WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }, function (reason) {\n      WritableStreamFinishInFlightWriteWithError(stream, reason);\n    }).catch(rethrowAssertionErrorRejection);\n  }\n\n  function WritableStreamDefaultControllerGetBackpressure(controller) {\n    var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n    return desiredSize <= 0;\n  }\n\n  function WritableStreamDefaultControllerError(controller, error) {\n    var stream = controller._controlledWritableStream;\n    assert(stream._state === 'writable');\n    WritableStreamStartErroring(stream, error);\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n  }\n\n  function defaultWriterBrandCheckException(name) {\n    return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n  }\n\n  function defaultWriterLockException(name) {\n    return new TypeError('Cannot ' + name + ' a stream using a released writer');\n  }\n\n  function defaultWriterClosedPromiseInitialize(writer) {\n    writer._closedPromise = new Promise(function (resolve, reject) {\n      writer._closedPromise_resolve = resolve;\n      writer._closedPromise_reject = reject;\n      writer._closedPromiseState = 'pending';\n    });\n  }\n\n  function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n    writer._closedPromise = Promise.reject(reason);\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n    writer._closedPromise = Promise.resolve(undefined);\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'resolved';\n  }\n\n  function defaultWriterClosedPromiseReject(writer, reason) {\n    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n    writer._closedPromise_reject(reason);\n\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n    assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n    assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n    assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n    writer._closedPromise = Promise.reject(reason);\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseResolve(writer) {\n    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n    writer._closedPromise_resolve(undefined);\n\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'resolved';\n  }\n\n  function defaultWriterReadyPromiseInitialize(writer) {\n    writer._readyPromise = new Promise(function (resolve, reject) {\n      writer._readyPromise_resolve = resolve;\n      writer._readyPromise_reject = reject;\n    });\n    writer._readyPromiseState = 'pending';\n  }\n\n  function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n    writer._readyPromise = Promise.reject(reason);\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n    writer._readyPromise = Promise.resolve(undefined);\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'fulfilled';\n  }\n\n  function defaultWriterReadyPromiseReject(writer, reason) {\n    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n    writer._readyPromise_reject(reason);\n\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseReset(writer) {\n    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n    writer._readyPromise = new Promise(function (resolve, reject) {\n      writer._readyPromise_resolve = resolve;\n      writer._readyPromise_reject = reject;\n    });\n    writer._readyPromiseState = 'pending';\n  }\n\n  function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n    writer._readyPromise = Promise.reject(reason);\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseResolve(writer) {\n    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n    writer._readyPromise_resolve(undefined);\n\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'fulfilled';\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _require = __w_pdfjs_require__(0),\n      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\n  var _require2 = __w_pdfjs_require__(1),\n      assert = _require2.assert;\n\n  exports.DequeueValue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n    var pair = container._queue.shift();\n\n    container._queueTotalSize -= pair.size;\n\n    if (container._queueTotalSize < 0) {\n      container._queueTotalSize = 0;\n    }\n\n    return pair.value;\n  };\n\n  exports.EnqueueValueWithSize = function (container, value, size) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n    size = Number(size);\n\n    if (!IsFiniteNonNegativeNumber(size)) {\n      throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n    }\n\n    container._queue.push({\n      value: value,\n      size: size\n    });\n\n    container._queueTotalSize += size;\n  };\n\n  exports.PeekQueueValue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n    var pair = container._queue[0];\n    return pair.value;\n  };\n\n  exports.ResetQueue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    container._queue = [];\n    container._queueTotalSize = 0;\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(0),\n      ArrayBufferCopy = _require.ArrayBufferCopy,\n      CreateIterResultObject = _require.CreateIterResultObject,\n      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n      InvokeOrNoop = _require.InvokeOrNoop,\n      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n      TransferArrayBuffer = _require.TransferArrayBuffer,\n      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n      ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\n  var _require2 = __w_pdfjs_require__(0),\n      createArrayFromList = _require2.createArrayFromList,\n      createDataProperty = _require2.createDataProperty,\n      typeIsObject = _require2.typeIsObject;\n\n  var _require3 = __w_pdfjs_require__(1),\n      assert = _require3.assert,\n      rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\n  var _require4 = __w_pdfjs_require__(3),\n      DequeueValue = _require4.DequeueValue,\n      EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n      ResetQueue = _require4.ResetQueue;\n\n  var _require5 = __w_pdfjs_require__(2),\n      AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n      IsWritableStream = _require5.IsWritableStream,\n      IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n      WritableStreamAbort = _require5.WritableStreamAbort,\n      WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n      WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n      WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n      WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\n  var ReadableStream = function () {\n    function ReadableStream() {\n      var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          size = _ref.size,\n          highWaterMark = _ref.highWaterMark;\n\n      _classCallCheck(this, ReadableStream);\n\n      this._state = 'readable';\n      this._reader = undefined;\n      this._storedError = undefined;\n      this._disturbed = false;\n      this._readableStreamController = undefined;\n      var type = underlyingSource.type;\n      var typeString = String(type);\n\n      if (typeString === 'bytes') {\n        if (highWaterMark === undefined) {\n          highWaterMark = 0;\n        }\n\n        this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n      } else if (type === undefined) {\n        if (highWaterMark === undefined) {\n          highWaterMark = 1;\n        }\n\n        this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n      } else {\n        throw new RangeError('Invalid type is specified');\n      }\n    }\n\n    _createClass(ReadableStream, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (IsReadableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('cancel'));\n        }\n\n        if (IsReadableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n        }\n\n        return ReadableStreamCancel(this, reason);\n      }\n    }, {\n      key: 'getReader',\n      value: function getReader() {\n        var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n            mode = _ref2.mode;\n\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('getReader');\n        }\n\n        if (mode === undefined) {\n          return AcquireReadableStreamDefaultReader(this);\n        }\n\n        mode = String(mode);\n\n        if (mode === 'byob') {\n          return AcquireReadableStreamBYOBReader(this);\n        }\n\n        throw new RangeError('Invalid mode is specified');\n      }\n    }, {\n      key: 'pipeThrough',\n      value: function pipeThrough(_ref3, options) {\n        var writable = _ref3.writable,\n            readable = _ref3.readable;\n        var promise = this.pipeTo(writable, options);\n        ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n        return readable;\n      }\n    }, {\n      key: 'pipeTo',\n      value: function pipeTo(dest) {\n        var _this = this;\n\n        var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n            preventClose = _ref4.preventClose,\n            preventAbort = _ref4.preventAbort,\n            preventCancel = _ref4.preventCancel;\n\n        if (IsReadableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('pipeTo'));\n        }\n\n        if (IsWritableStream(dest) === false) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n        }\n\n        preventClose = Boolean(preventClose);\n        preventAbort = Boolean(preventAbort);\n        preventCancel = Boolean(preventCancel);\n\n        if (IsReadableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n        }\n\n        if (IsWritableStreamLocked(dest) === true) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n        }\n\n        var reader = AcquireReadableStreamDefaultReader(this);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        var shuttingDown = false;\n        var currentWrite = Promise.resolve();\n        return new Promise(function (resolve, reject) {\n          function pipeLoop() {\n            currentWrite = Promise.resolve();\n\n            if (shuttingDown === true) {\n              return Promise.resolve();\n            }\n\n            return writer._readyPromise.then(function () {\n              return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n                var value = _ref5.value,\n                    done = _ref5.done;\n\n                if (done === true) {\n                  return;\n                }\n\n                currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n              });\n            }).then(pipeLoop);\n          }\n\n          isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n            if (preventAbort === false) {\n              shutdownWithAction(function () {\n                return WritableStreamAbort(dest, storedError);\n              }, true, storedError);\n            } else {\n              shutdown(true, storedError);\n            }\n          });\n          isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n            if (preventCancel === false) {\n              shutdownWithAction(function () {\n                return ReadableStreamCancel(_this, storedError);\n              }, true, storedError);\n            } else {\n              shutdown(true, storedError);\n            }\n          });\n          isOrBecomesClosed(_this, reader._closedPromise, function () {\n            if (preventClose === false) {\n              shutdownWithAction(function () {\n                return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n              });\n            } else {\n              shutdown();\n            }\n          });\n\n          if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n            var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n            if (preventCancel === false) {\n              shutdownWithAction(function () {\n                return ReadableStreamCancel(_this, destClosed);\n              }, true, destClosed);\n            } else {\n              shutdown(true, destClosed);\n            }\n          }\n\n          pipeLoop().catch(function (err) {\n            currentWrite = Promise.resolve();\n            rethrowAssertionErrorRejection(err);\n          });\n\n          function waitForWritesToFinish() {\n            var oldCurrentWrite = currentWrite;\n            return currentWrite.then(function () {\n              return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n            });\n          }\n\n          function isOrBecomesErrored(stream, promise, action) {\n            if (stream._state === 'errored') {\n              action(stream._storedError);\n            } else {\n              promise.catch(action).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function isOrBecomesClosed(stream, promise, action) {\n            if (stream._state === 'closed') {\n              action();\n            } else {\n              promise.then(action).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function shutdownWithAction(action, originalIsError, originalError) {\n            if (shuttingDown === true) {\n              return;\n            }\n\n            shuttingDown = true;\n\n            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n              waitForWritesToFinish().then(doTheRest);\n            } else {\n              doTheRest();\n            }\n\n            function doTheRest() {\n              action().then(function () {\n                return finalize(originalIsError, originalError);\n              }, function (newError) {\n                return finalize(true, newError);\n              }).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function shutdown(isError, error) {\n            if (shuttingDown === true) {\n              return;\n            }\n\n            shuttingDown = true;\n\n            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n              waitForWritesToFinish().then(function () {\n                return finalize(isError, error);\n              }).catch(rethrowAssertionErrorRejection);\n            } else {\n              finalize(isError, error);\n            }\n          }\n\n          function finalize(isError, error) {\n            WritableStreamDefaultWriterRelease(writer);\n            ReadableStreamReaderGenericRelease(reader);\n\n            if (isError) {\n              reject(error);\n            } else {\n              resolve(undefined);\n            }\n          }\n        });\n      }\n    }, {\n      key: 'tee',\n      value: function tee() {\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('tee');\n        }\n\n        var branches = ReadableStreamTee(this, false);\n        return createArrayFromList(branches);\n      }\n    }, {\n      key: 'locked',\n      get: function get() {\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('locked');\n        }\n\n        return IsReadableStreamLocked(this);\n      }\n    }]);\n\n    return ReadableStream;\n  }();\n\n  module.exports = {\n    ReadableStream: ReadableStream,\n    IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n    ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n    ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n    ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n    ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n  };\n\n  function AcquireReadableStreamBYOBReader(stream) {\n    return new ReadableStreamBYOBReader(stream);\n  }\n\n  function AcquireReadableStreamDefaultReader(stream) {\n    return new ReadableStreamDefaultReader(stream);\n  }\n\n  function IsReadableStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamDisturbed(stream) {\n    assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n    return stream._disturbed;\n  }\n\n  function IsReadableStreamLocked(stream) {\n    assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n    if (stream._reader === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamTee(stream, cloneForBranch2) {\n    assert(IsReadableStream(stream) === true);\n    assert(typeof cloneForBranch2 === 'boolean');\n    var reader = AcquireReadableStreamDefaultReader(stream);\n    var teeState = {\n      closedOrErrored: false,\n      canceled1: false,\n      canceled2: false,\n      reason1: undefined,\n      reason2: undefined\n    };\n    teeState.promise = new Promise(function (resolve) {\n      teeState._resolve = resolve;\n    });\n    var pull = create_ReadableStreamTeePullFunction();\n    pull._reader = reader;\n    pull._teeState = teeState;\n    pull._cloneForBranch2 = cloneForBranch2;\n    var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n    cancel1._stream = stream;\n    cancel1._teeState = teeState;\n    var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n    cancel2._stream = stream;\n    cancel2._teeState = teeState;\n    var underlyingSource1 = Object.create(Object.prototype);\n    createDataProperty(underlyingSource1, 'pull', pull);\n    createDataProperty(underlyingSource1, 'cancel', cancel1);\n    var branch1Stream = new ReadableStream(underlyingSource1);\n    var underlyingSource2 = Object.create(Object.prototype);\n    createDataProperty(underlyingSource2, 'pull', pull);\n    createDataProperty(underlyingSource2, 'cancel', cancel2);\n    var branch2Stream = new ReadableStream(underlyingSource2);\n    pull._branch1 = branch1Stream._readableStreamController;\n    pull._branch2 = branch2Stream._readableStreamController;\n\n    reader._closedPromise.catch(function (r) {\n      if (teeState.closedOrErrored === true) {\n        return;\n      }\n\n      ReadableStreamDefaultControllerError(pull._branch1, r);\n      ReadableStreamDefaultControllerError(pull._branch2, r);\n      teeState.closedOrErrored = true;\n    });\n\n    return [branch1Stream, branch2Stream];\n  }\n\n  function create_ReadableStreamTeePullFunction() {\n    function f() {\n      var reader = f._reader,\n          branch1 = f._branch1,\n          branch2 = f._branch2,\n          teeState = f._teeState;\n      return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n        assert(typeIsObject(result));\n        var value = result.value;\n        var done = result.done;\n        assert(typeof done === 'boolean');\n\n        if (done === true && teeState.closedOrErrored === false) {\n          if (teeState.canceled1 === false) {\n            ReadableStreamDefaultControllerClose(branch1);\n          }\n\n          if (teeState.canceled2 === false) {\n            ReadableStreamDefaultControllerClose(branch2);\n          }\n\n          teeState.closedOrErrored = true;\n        }\n\n        if (teeState.closedOrErrored === true) {\n          return;\n        }\n\n        var value1 = value;\n        var value2 = value;\n\n        if (teeState.canceled1 === false) {\n          ReadableStreamDefaultControllerEnqueue(branch1, value1);\n        }\n\n        if (teeState.canceled2 === false) {\n          ReadableStreamDefaultControllerEnqueue(branch2, value2);\n        }\n      });\n    }\n\n    return f;\n  }\n\n  function create_ReadableStreamTeeBranch1CancelFunction() {\n    function f(reason) {\n      var stream = f._stream,\n          teeState = f._teeState;\n      teeState.canceled1 = true;\n      teeState.reason1 = reason;\n\n      if (teeState.canceled2 === true) {\n        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n        var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n        teeState._resolve(cancelResult);\n      }\n\n      return teeState.promise;\n    }\n\n    return f;\n  }\n\n  function create_ReadableStreamTeeBranch2CancelFunction() {\n    function f(reason) {\n      var stream = f._stream,\n          teeState = f._teeState;\n      teeState.canceled2 = true;\n      teeState.reason2 = reason;\n\n      if (teeState.canceled1 === true) {\n        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n        var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n        teeState._resolve(cancelResult);\n      }\n\n      return teeState.promise;\n    }\n\n    return f;\n  }\n\n  function ReadableStreamAddReadIntoRequest(stream) {\n    assert(IsReadableStreamBYOBReader(stream._reader) === true);\n    assert(stream._state === 'readable' || stream._state === 'closed');\n    var promise = new Promise(function (resolve, reject) {\n      var readIntoRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._reader._readIntoRequests.push(readIntoRequest);\n    });\n    return promise;\n  }\n\n  function ReadableStreamAddReadRequest(stream) {\n    assert(IsReadableStreamDefaultReader(stream._reader) === true);\n    assert(stream._state === 'readable');\n    var promise = new Promise(function (resolve, reject) {\n      var readRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._reader._readRequests.push(readRequest);\n    });\n    return promise;\n  }\n\n  function ReadableStreamCancel(stream, reason) {\n    stream._disturbed = true;\n\n    if (stream._state === 'closed') {\n      return Promise.resolve(undefined);\n    }\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    ReadableStreamClose(stream);\n\n    var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n\n    return sourceCancelPromise.then(function () {\n      return undefined;\n    });\n  }\n\n  function ReadableStreamClose(stream) {\n    assert(stream._state === 'readable');\n    stream._state = 'closed';\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return undefined;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === true) {\n      for (var i = 0; i < reader._readRequests.length; i++) {\n        var _resolve = reader._readRequests[i]._resolve;\n\n        _resolve(CreateIterResultObject(undefined, true));\n      }\n\n      reader._readRequests = [];\n    }\n\n    defaultReaderClosedPromiseResolve(reader);\n    return undefined;\n  }\n\n  function ReadableStreamError(stream, e) {\n    assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n    assert(stream._state === 'readable', 'state must be readable');\n    stream._state = 'errored';\n    stream._storedError = e;\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return undefined;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === true) {\n      for (var i = 0; i < reader._readRequests.length; i++) {\n        var readRequest = reader._readRequests[i];\n\n        readRequest._reject(e);\n      }\n\n      reader._readRequests = [];\n    } else {\n      assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n      for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n        var readIntoRequest = reader._readIntoRequests[_i];\n\n        readIntoRequest._reject(e);\n      }\n\n      reader._readIntoRequests = [];\n    }\n\n    defaultReaderClosedPromiseReject(reader, e);\n\n    reader._closedPromise.catch(function () {});\n  }\n\n  function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n    var reader = stream._reader;\n    assert(reader._readIntoRequests.length > 0);\n\n    var readIntoRequest = reader._readIntoRequests.shift();\n\n    readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n  }\n\n  function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n    var reader = stream._reader;\n    assert(reader._readRequests.length > 0);\n\n    var readRequest = reader._readRequests.shift();\n\n    readRequest._resolve(CreateIterResultObject(chunk, done));\n  }\n\n  function ReadableStreamGetNumReadIntoRequests(stream) {\n    return stream._reader._readIntoRequests.length;\n  }\n\n  function ReadableStreamGetNumReadRequests(stream) {\n    return stream._reader._readRequests.length;\n  }\n\n  function ReadableStreamHasBYOBReader(stream) {\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return false;\n    }\n\n    if (IsReadableStreamBYOBReader(reader) === false) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamHasDefaultReader(stream) {\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return false;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === false) {\n      return false;\n    }\n\n    return true;\n  }\n\n  var ReadableStreamDefaultReader = function () {\n    function ReadableStreamDefaultReader(stream) {\n      _classCallCheck(this, ReadableStreamDefaultReader);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n      }\n\n      if (IsReadableStreamLocked(stream) === true) {\n        throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n      }\n\n      ReadableStreamReaderGenericInitialize(this, stream);\n      this._readRequests = [];\n    }\n\n    _createClass(ReadableStreamDefaultReader, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('cancel'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('cancel'));\n        }\n\n        return ReadableStreamReaderGenericCancel(this, reason);\n      }\n    }, {\n      key: 'read',\n      value: function read() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('read'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('read from'));\n        }\n\n        return ReadableStreamDefaultReaderRead(this);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          throw defaultReaderBrandCheckException('releaseLock');\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return;\n        }\n\n        if (this._readRequests.length > 0) {\n          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n        }\n\n        ReadableStreamReaderGenericRelease(this);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }]);\n\n    return ReadableStreamDefaultReader;\n  }();\n\n  var ReadableStreamBYOBReader = function () {\n    function ReadableStreamBYOBReader(stream) {\n      _classCallCheck(this, ReadableStreamBYOBReader);\n\n      if (!IsReadableStream(stream)) {\n        throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n      }\n\n      if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n        throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n      }\n\n      if (IsReadableStreamLocked(stream)) {\n        throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n      }\n\n      ReadableStreamReaderGenericInitialize(this, stream);\n      this._readIntoRequests = [];\n    }\n\n    _createClass(ReadableStreamBYOBReader, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('cancel'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('cancel'));\n        }\n\n        return ReadableStreamReaderGenericCancel(this, reason);\n      }\n    }, {\n      key: 'read',\n      value: function read(view) {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('read'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('read from'));\n        }\n\n        if (!ArrayBuffer.isView(view)) {\n          return Promise.reject(new TypeError('view must be an array buffer view'));\n        }\n\n        if (view.byteLength === 0) {\n          return Promise.reject(new TypeError('view must have non-zero byteLength'));\n        }\n\n        return ReadableStreamBYOBReaderRead(this, view);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (!IsReadableStreamBYOBReader(this)) {\n          throw byobReaderBrandCheckException('releaseLock');\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return;\n        }\n\n        if (this._readIntoRequests.length > 0) {\n          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n        }\n\n        ReadableStreamReaderGenericRelease(this);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }]);\n\n    return ReadableStreamBYOBReader;\n  }();\n\n  function IsReadableStreamBYOBReader(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamDefaultReader(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamReaderGenericInitialize(reader, stream) {\n    reader._ownerReadableStream = stream;\n    stream._reader = reader;\n\n    if (stream._state === 'readable') {\n      defaultReaderClosedPromiseInitialize(reader);\n    } else if (stream._state === 'closed') {\n      defaultReaderClosedPromiseInitializeAsResolved(reader);\n    } else {\n      assert(stream._state === 'errored', 'state must be errored');\n      defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n\n      reader._closedPromise.catch(function () {});\n    }\n  }\n\n  function ReadableStreamReaderGenericCancel(reader, reason) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    return ReadableStreamCancel(stream, reason);\n  }\n\n  function ReadableStreamReaderGenericRelease(reader) {\n    assert(reader._ownerReadableStream !== undefined);\n    assert(reader._ownerReadableStream._reader === reader);\n\n    if (reader._ownerReadableStream._state === 'readable') {\n      defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n    } else {\n      defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n    }\n\n    reader._closedPromise.catch(function () {});\n\n    reader._ownerReadableStream._reader = undefined;\n    reader._ownerReadableStream = undefined;\n  }\n\n  function ReadableStreamBYOBReaderRead(reader, view) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    stream._disturbed = true;\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n  }\n\n  function ReadableStreamDefaultReaderRead(reader) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    stream._disturbed = true;\n\n    if (stream._state === 'closed') {\n      return Promise.resolve(CreateIterResultObject(undefined, true));\n    }\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(stream._state === 'readable');\n    return stream._readableStreamController.__pullSteps();\n  }\n\n  var ReadableStreamDefaultController = function () {\n    function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n      _classCallCheck(this, ReadableStreamDefaultController);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n      }\n\n      if (stream._readableStreamController !== undefined) {\n        throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n      }\n\n      this._controlledReadableStream = stream;\n      this._underlyingSource = underlyingSource;\n      this._queue = undefined;\n      this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._started = false;\n      this._closeRequested = false;\n      this._pullAgain = false;\n      this._pulling = false;\n      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n      this._strategySize = normalizedStrategy.size;\n      this._strategyHWM = normalizedStrategy.highWaterMark;\n      var controller = this;\n      var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n      Promise.resolve(startResult).then(function () {\n        controller._started = true;\n        assert(controller._pulling === false);\n        assert(controller._pullAgain === false);\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n      }, function (r) {\n        ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n      }).catch(rethrowAssertionErrorRejection);\n    }\n\n    _createClass(ReadableStreamDefaultController, [{\n      key: 'close',\n      value: function close() {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('close');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('The stream has already been closed; do not close it again!');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n        }\n\n        ReadableStreamDefaultControllerClose(this);\n      }\n    }, {\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('enqueue');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('stream is closed or draining');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n        }\n\n        return ReadableStreamDefaultControllerEnqueue(this, chunk);\n      }\n    }, {\n      key: 'error',\n      value: function error(e) {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('error');\n        }\n\n        var stream = this._controlledReadableStream;\n\n        if (stream._state !== 'readable') {\n          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n        }\n\n        ReadableStreamDefaultControllerError(this, e);\n      }\n    }, {\n      key: '__cancelSteps',\n      value: function __cancelSteps(reason) {\n        ResetQueue(this);\n        return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n      }\n    }, {\n      key: '__pullSteps',\n      value: function __pullSteps() {\n        var stream = this._controlledReadableStream;\n\n        if (this._queue.length > 0) {\n          var chunk = DequeueValue(this);\n\n          if (this._closeRequested === true && this._queue.length === 0) {\n            ReadableStreamClose(stream);\n          } else {\n            ReadableStreamDefaultControllerCallPullIfNeeded(this);\n          }\n\n          return Promise.resolve(CreateIterResultObject(chunk, false));\n        }\n\n        var pendingPromise = ReadableStreamAddReadRequest(stream);\n        ReadableStreamDefaultControllerCallPullIfNeeded(this);\n        return pendingPromise;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('desiredSize');\n        }\n\n        return ReadableStreamDefaultControllerGetDesiredSize(this);\n      }\n    }]);\n\n    return ReadableStreamDefaultController;\n  }();\n\n  function IsReadableStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n    var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n\n    if (shouldPull === false) {\n      return undefined;\n    }\n\n    if (controller._pulling === true) {\n      controller._pullAgain = true;\n      return undefined;\n    }\n\n    assert(controller._pullAgain === false);\n    controller._pulling = true;\n    var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n    pullPromise.then(function () {\n      controller._pulling = false;\n\n      if (controller._pullAgain === true) {\n        controller._pullAgain = false;\n        return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n      }\n\n      return undefined;\n    }, function (e) {\n      ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n    }).catch(rethrowAssertionErrorRejection);\n    return undefined;\n  }\n\n  function ReadableStreamDefaultControllerShouldCallPull(controller) {\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state === 'closed' || stream._state === 'errored') {\n      return false;\n    }\n\n    if (controller._closeRequested === true) {\n      return false;\n    }\n\n    if (controller._started === false) {\n      return false;\n    }\n\n    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      return true;\n    }\n\n    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n\n    if (desiredSize > 0) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function ReadableStreamDefaultControllerClose(controller) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n    controller._closeRequested = true;\n\n    if (controller._queue.length === 0) {\n      ReadableStreamClose(stream);\n    }\n  }\n\n  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n\n    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      ReadableStreamFulfillReadRequest(stream, chunk, false);\n    } else {\n      var chunkSize = 1;\n\n      if (controller._strategySize !== undefined) {\n        var strategySize = controller._strategySize;\n\n        try {\n          chunkSize = strategySize(chunk);\n        } catch (chunkSizeE) {\n          ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n          throw chunkSizeE;\n        }\n      }\n\n      try {\n        EnqueueValueWithSize(controller, chunk, chunkSize);\n      } catch (enqueueE) {\n        ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n        throw enqueueE;\n      }\n    }\n\n    ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    return undefined;\n  }\n\n  function ReadableStreamDefaultControllerError(controller, e) {\n    var stream = controller._controlledReadableStream;\n    assert(stream._state === 'readable');\n    ResetQueue(controller);\n    ReadableStreamError(stream, e);\n  }\n\n  function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n    if (controller._controlledReadableStream._state === 'readable') {\n      ReadableStreamDefaultControllerError(controller, e);\n    }\n  }\n\n  function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n    var stream = controller._controlledReadableStream;\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  var ReadableStreamBYOBRequest = function () {\n    function ReadableStreamBYOBRequest(controller, view) {\n      _classCallCheck(this, ReadableStreamBYOBRequest);\n\n      this._associatedReadableByteStreamController = controller;\n      this._view = view;\n    }\n\n    _createClass(ReadableStreamBYOBRequest, [{\n      key: 'respond',\n      value: function respond(bytesWritten) {\n        if (IsReadableStreamBYOBRequest(this) === false) {\n          throw byobRequestBrandCheckException('respond');\n        }\n\n        if (this._associatedReadableByteStreamController === undefined) {\n          throw new TypeError('This BYOB request has been invalidated');\n        }\n\n        ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n      }\n    }, {\n      key: 'respondWithNewView',\n      value: function respondWithNewView(view) {\n        if (IsReadableStreamBYOBRequest(this) === false) {\n          throw byobRequestBrandCheckException('respond');\n        }\n\n        if (this._associatedReadableByteStreamController === undefined) {\n          throw new TypeError('This BYOB request has been invalidated');\n        }\n\n        if (!ArrayBuffer.isView(view)) {\n          throw new TypeError('You can only respond with array buffer views');\n        }\n\n        ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n      }\n    }, {\n      key: 'view',\n      get: function get() {\n        return this._view;\n      }\n    }]);\n\n    return ReadableStreamBYOBRequest;\n  }();\n\n  var ReadableByteStreamController = function () {\n    function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n      _classCallCheck(this, ReadableByteStreamController);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n      }\n\n      if (stream._readableStreamController !== undefined) {\n        throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n      }\n\n      this._controlledReadableStream = stream;\n      this._underlyingByteSource = underlyingByteSource;\n      this._pullAgain = false;\n      this._pulling = false;\n      ReadableByteStreamControllerClearPendingPullIntos(this);\n      this._queue = this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._closeRequested = false;\n      this._started = false;\n      this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n      var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n\n      if (autoAllocateChunkSize !== undefined) {\n        if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n          throw new RangeError('autoAllocateChunkSize must be a positive integer');\n        }\n      }\n\n      this._autoAllocateChunkSize = autoAllocateChunkSize;\n      this._pendingPullIntos = [];\n      var controller = this;\n      var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n      Promise.resolve(startResult).then(function () {\n        controller._started = true;\n        assert(controller._pulling === false);\n        assert(controller._pullAgain === false);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n      }, function (r) {\n        if (stream._state === 'readable') {\n          ReadableByteStreamControllerError(controller, r);\n        }\n      }).catch(rethrowAssertionErrorRejection);\n    }\n\n    _createClass(ReadableByteStreamController, [{\n      key: 'close',\n      value: function close() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('close');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('The stream has already been closed; do not close it again!');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n        }\n\n        ReadableByteStreamControllerClose(this);\n      }\n    }, {\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('enqueue');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('stream is closed or draining');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n        }\n\n        if (!ArrayBuffer.isView(chunk)) {\n          throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n        }\n\n        ReadableByteStreamControllerEnqueue(this, chunk);\n      }\n    }, {\n      key: 'error',\n      value: function error(e) {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('error');\n        }\n\n        var stream = this._controlledReadableStream;\n\n        if (stream._state !== 'readable') {\n          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n        }\n\n        ReadableByteStreamControllerError(this, e);\n      }\n    }, {\n      key: '__cancelSteps',\n      value: function __cancelSteps(reason) {\n        if (this._pendingPullIntos.length > 0) {\n          var firstDescriptor = this._pendingPullIntos[0];\n          firstDescriptor.bytesFilled = 0;\n        }\n\n        ResetQueue(this);\n        return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n      }\n    }, {\n      key: '__pullSteps',\n      value: function __pullSteps() {\n        var stream = this._controlledReadableStream;\n        assert(ReadableStreamHasDefaultReader(stream) === true);\n\n        if (this._queueTotalSize > 0) {\n          assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n          var entry = this._queue.shift();\n\n          this._queueTotalSize -= entry.byteLength;\n          ReadableByteStreamControllerHandleQueueDrain(this);\n          var view = void 0;\n\n          try {\n            view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n          } catch (viewE) {\n            return Promise.reject(viewE);\n          }\n\n          return Promise.resolve(CreateIterResultObject(view, false));\n        }\n\n        var autoAllocateChunkSize = this._autoAllocateChunkSize;\n\n        if (autoAllocateChunkSize !== undefined) {\n          var buffer = void 0;\n\n          try {\n            buffer = new ArrayBuffer(autoAllocateChunkSize);\n          } catch (bufferE) {\n            return Promise.reject(bufferE);\n          }\n\n          var pullIntoDescriptor = {\n            buffer: buffer,\n            byteOffset: 0,\n            byteLength: autoAllocateChunkSize,\n            bytesFilled: 0,\n            elementSize: 1,\n            ctor: Uint8Array,\n            readerType: 'default'\n          };\n\n          this._pendingPullIntos.push(pullIntoDescriptor);\n        }\n\n        var promise = ReadableStreamAddReadRequest(stream);\n        ReadableByteStreamControllerCallPullIfNeeded(this);\n        return promise;\n      }\n    }, {\n      key: 'byobRequest',\n      get: function get() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('byobRequest');\n        }\n\n        if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n          var firstDescriptor = this._pendingPullIntos[0];\n          var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n          this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n        }\n\n        return this._byobRequest;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('desiredSize');\n        }\n\n        return ReadableByteStreamControllerGetDesiredSize(this);\n      }\n    }]);\n\n    return ReadableByteStreamController;\n  }();\n\n  function IsReadableByteStreamController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamBYOBRequest(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n    var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n\n    if (shouldPull === false) {\n      return undefined;\n    }\n\n    if (controller._pulling === true) {\n      controller._pullAgain = true;\n      return undefined;\n    }\n\n    assert(controller._pullAgain === false);\n    controller._pulling = true;\n    var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n    pullPromise.then(function () {\n      controller._pulling = false;\n\n      if (controller._pullAgain === true) {\n        controller._pullAgain = false;\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n      }\n    }, function (e) {\n      if (controller._controlledReadableStream._state === 'readable') {\n        ReadableByteStreamControllerError(controller, e);\n      }\n    }).catch(rethrowAssertionErrorRejection);\n    return undefined;\n  }\n\n  function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    controller._pendingPullIntos = [];\n  }\n\n  function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n    assert(stream._state !== 'errored', 'state must not be errored');\n    var done = false;\n\n    if (stream._state === 'closed') {\n      assert(pullIntoDescriptor.bytesFilled === 0);\n      done = true;\n    }\n\n    var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n    if (pullIntoDescriptor.readerType === 'default') {\n      ReadableStreamFulfillReadRequest(stream, filledView, done);\n    } else {\n      assert(pullIntoDescriptor.readerType === 'byob');\n      ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n    }\n  }\n\n  function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n    var bytesFilled = pullIntoDescriptor.bytesFilled;\n    var elementSize = pullIntoDescriptor.elementSize;\n    assert(bytesFilled <= pullIntoDescriptor.byteLength);\n    assert(bytesFilled % elementSize === 0);\n    return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n  }\n\n  function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n    controller._queue.push({\n      buffer: buffer,\n      byteOffset: byteOffset,\n      byteLength: byteLength\n    });\n\n    controller._queueTotalSize += byteLength;\n  }\n\n  function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n    var elementSize = pullIntoDescriptor.elementSize;\n    var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n    var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n    var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n    var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n    var totalBytesToCopyRemaining = maxBytesToCopy;\n    var ready = false;\n\n    if (maxAlignedBytes > currentAlignedBytes) {\n      totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n      ready = true;\n    }\n\n    var queue = controller._queue;\n\n    while (totalBytesToCopyRemaining > 0) {\n      var headOfQueue = queue[0];\n      var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n      var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n      ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n      if (headOfQueue.byteLength === bytesToCopy) {\n        queue.shift();\n      } else {\n        headOfQueue.byteOffset += bytesToCopy;\n        headOfQueue.byteLength -= bytesToCopy;\n      }\n\n      controller._queueTotalSize -= bytesToCopy;\n      ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n      totalBytesToCopyRemaining -= bytesToCopy;\n    }\n\n    if (ready === false) {\n      assert(controller._queueTotalSize === 0, 'queue must be empty');\n      assert(pullIntoDescriptor.bytesFilled > 0);\n      assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n    }\n\n    return ready;\n  }\n\n  function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n    assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    pullIntoDescriptor.bytesFilled += size;\n  }\n\n  function ReadableByteStreamControllerHandleQueueDrain(controller) {\n    assert(controller._controlledReadableStream._state === 'readable');\n\n    if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n      ReadableStreamClose(controller._controlledReadableStream);\n    } else {\n      ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n  }\n\n  function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n    if (controller._byobRequest === undefined) {\n      return;\n    }\n\n    controller._byobRequest._associatedReadableByteStreamController = undefined;\n    controller._byobRequest._view = undefined;\n    controller._byobRequest = undefined;\n  }\n\n  function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n    assert(controller._closeRequested === false);\n\n    while (controller._pendingPullIntos.length > 0) {\n      if (controller._queueTotalSize === 0) {\n        return;\n      }\n\n      var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n      }\n    }\n  }\n\n  function ReadableByteStreamControllerPullInto(controller, view) {\n    var stream = controller._controlledReadableStream;\n    var elementSize = 1;\n\n    if (view.constructor !== DataView) {\n      elementSize = view.constructor.BYTES_PER_ELEMENT;\n    }\n\n    var ctor = view.constructor;\n    var pullIntoDescriptor = {\n      buffer: view.buffer,\n      byteOffset: view.byteOffset,\n      byteLength: view.byteLength,\n      bytesFilled: 0,\n      elementSize: elementSize,\n      ctor: ctor,\n      readerType: 'byob'\n    };\n\n    if (controller._pendingPullIntos.length > 0) {\n      pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n      controller._pendingPullIntos.push(pullIntoDescriptor);\n\n      return ReadableStreamAddReadIntoRequest(stream);\n    }\n\n    if (stream._state === 'closed') {\n      var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n      return Promise.resolve(CreateIterResultObject(emptyView, true));\n    }\n\n    if (controller._queueTotalSize > 0) {\n      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        ReadableByteStreamControllerHandleQueueDrain(controller);\n        return Promise.resolve(CreateIterResultObject(filledView, false));\n      }\n\n      if (controller._closeRequested === true) {\n        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n        ReadableByteStreamControllerError(controller, e);\n        return Promise.reject(e);\n      }\n    }\n\n    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n    controller._pendingPullIntos.push(pullIntoDescriptor);\n\n    var promise = ReadableStreamAddReadIntoRequest(stream);\n    ReadableByteStreamControllerCallPullIfNeeded(controller);\n    return promise;\n  }\n\n  function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n    firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n    assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n    var stream = controller._controlledReadableStream;\n\n    if (ReadableStreamHasBYOBReader(stream) === true) {\n      while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n        var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n        ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n      }\n    }\n  }\n\n  function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n    if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n      throw new RangeError('bytesWritten out of range');\n    }\n\n    ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n    if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n      return;\n    }\n\n    ReadableByteStreamControllerShiftPendingPullInto(controller);\n    var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n\n    if (remainderSize > 0) {\n      var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n      var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n    }\n\n    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n    pullIntoDescriptor.bytesFilled -= remainderSize;\n    ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n    ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n  }\n\n  function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n    var firstDescriptor = controller._pendingPullIntos[0];\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state === 'closed') {\n      if (bytesWritten !== 0) {\n        throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n      }\n\n      ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n    } else {\n      assert(stream._state === 'readable');\n      ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n    }\n  }\n\n  function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n    var descriptor = controller._pendingPullIntos.shift();\n\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    return descriptor;\n  }\n\n  function ReadableByteStreamControllerShouldCallPull(controller) {\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state !== 'readable') {\n      return false;\n    }\n\n    if (controller._closeRequested === true) {\n      return false;\n    }\n\n    if (controller._started === false) {\n      return false;\n    }\n\n    if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      return true;\n    }\n\n    if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n      return true;\n    }\n\n    if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function ReadableByteStreamControllerClose(controller) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n\n    if (controller._queueTotalSize > 0) {\n      controller._closeRequested = true;\n      return;\n    }\n\n    if (controller._pendingPullIntos.length > 0) {\n      var firstPendingPullInto = controller._pendingPullIntos[0];\n\n      if (firstPendingPullInto.bytesFilled > 0) {\n        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n        ReadableByteStreamControllerError(controller, e);\n        throw e;\n      }\n    }\n\n    ReadableStreamClose(stream);\n  }\n\n  function ReadableByteStreamControllerEnqueue(controller, chunk) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n    var buffer = chunk.buffer;\n    var byteOffset = chunk.byteOffset;\n    var byteLength = chunk.byteLength;\n    var transferredBuffer = TransferArrayBuffer(buffer);\n\n    if (ReadableStreamHasDefaultReader(stream) === true) {\n      if (ReadableStreamGetNumReadRequests(stream) === 0) {\n        ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n      } else {\n        assert(controller._queue.length === 0);\n        var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n        ReadableStreamFulfillReadRequest(stream, transferredView, false);\n      }\n    } else if (ReadableStreamHasBYOBReader(stream) === true) {\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n      ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    } else {\n      assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n    }\n  }\n\n  function ReadableByteStreamControllerError(controller, e) {\n    var stream = controller._controlledReadableStream;\n    assert(stream._state === 'readable');\n    ReadableByteStreamControllerClearPendingPullIntos(controller);\n    ResetQueue(controller);\n    ReadableStreamError(stream, e);\n  }\n\n  function ReadableByteStreamControllerGetDesiredSize(controller) {\n    var stream = controller._controlledReadableStream;\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n    bytesWritten = Number(bytesWritten);\n\n    if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n      throw new RangeError('bytesWritten must be a finite');\n    }\n\n    assert(controller._pendingPullIntos.length > 0);\n    ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n  }\n\n  function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n    assert(controller._pendingPullIntos.length > 0);\n    var firstDescriptor = controller._pendingPullIntos[0];\n\n    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n      throw new RangeError('The region specified by view does not match byobRequest');\n    }\n\n    if (firstDescriptor.byteLength !== view.byteLength) {\n      throw new RangeError('The buffer of view has different capacity than byobRequest');\n    }\n\n    firstDescriptor.buffer = view.buffer;\n    ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n  }\n\n  function readerLockException(name) {\n    return new TypeError('Cannot ' + name + ' a stream using a released reader');\n  }\n\n  function defaultReaderBrandCheckException(name) {\n    return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n  }\n\n  function defaultReaderClosedPromiseInitialize(reader) {\n    reader._closedPromise = new Promise(function (resolve, reject) {\n      reader._closedPromise_resolve = resolve;\n      reader._closedPromise_reject = reject;\n    });\n  }\n\n  function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n    reader._closedPromise = Promise.reject(reason);\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n    reader._closedPromise = Promise.resolve(undefined);\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseReject(reader, reason) {\n    assert(reader._closedPromise_resolve !== undefined);\n    assert(reader._closedPromise_reject !== undefined);\n\n    reader._closedPromise_reject(reason);\n\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n    assert(reader._closedPromise_resolve === undefined);\n    assert(reader._closedPromise_reject === undefined);\n    reader._closedPromise = Promise.reject(reason);\n  }\n\n  function defaultReaderClosedPromiseResolve(reader) {\n    assert(reader._closedPromise_resolve !== undefined);\n    assert(reader._closedPromise_reject !== undefined);\n\n    reader._closedPromise_resolve(undefined);\n\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function byobReaderBrandCheckException(name) {\n    return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n  }\n\n  function defaultControllerBrandCheckException(name) {\n    return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n  }\n\n  function byobRequestBrandCheckException(name) {\n    return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n  }\n\n  function byteStreamControllerBrandCheckException(name) {\n    return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n  }\n\n  function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n    try {\n      Promise.prototype.then.call(promise, undefined, function () {});\n    } catch (e) {}\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var transformStream = __w_pdfjs_require__(6);\n\n  var readableStream = __w_pdfjs_require__(4);\n\n  var writableStream = __w_pdfjs_require__(2);\n\n  exports.TransformStream = transformStream.TransformStream;\n  exports.ReadableStream = readableStream.ReadableStream;\n  exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n  exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n  exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n  exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n  exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n  exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n  exports.IsWritableStream = writableStream.IsWritableStream;\n  exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n  exports.WritableStream = writableStream.WritableStream;\n  exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n  exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n  exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n  exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n  exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(1),\n      assert = _require.assert;\n\n  var _require2 = __w_pdfjs_require__(0),\n      InvokeOrNoop = _require2.InvokeOrNoop,\n      PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n      PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n      typeIsObject = _require2.typeIsObject;\n\n  var _require3 = __w_pdfjs_require__(4),\n      ReadableStream = _require3.ReadableStream,\n      ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n      ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n      ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n      ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\n  var _require4 = __w_pdfjs_require__(2),\n      WritableStream = _require4.WritableStream,\n      WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n  function TransformStreamCloseReadable(transformStream) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    if (transformStream._readableClosed === true) {\n      throw new TypeError('Readable side is already closed');\n    }\n\n    TransformStreamCloseReadableInternal(transformStream);\n  }\n\n  function TransformStreamEnqueueToReadable(transformStream, chunk) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    if (transformStream._readableClosed === true) {\n      throw new TypeError('Readable side is already closed');\n    }\n\n    var controller = transformStream._readableController;\n\n    try {\n      ReadableStreamDefaultControllerEnqueue(controller, chunk);\n    } catch (e) {\n      transformStream._readableClosed = true;\n      TransformStreamErrorIfNeeded(transformStream, e);\n      throw transformStream._storedError;\n    }\n\n    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n    var maybeBackpressure = desiredSize <= 0;\n\n    if (maybeBackpressure === true && transformStream._backpressure === false) {\n      TransformStreamSetBackpressure(transformStream, true);\n    }\n  }\n\n  function TransformStreamError(transformStream, e) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    TransformStreamErrorInternal(transformStream, e);\n  }\n\n  function TransformStreamCloseReadableInternal(transformStream) {\n    assert(transformStream._errored === false);\n    assert(transformStream._readableClosed === false);\n\n    try {\n      ReadableStreamDefaultControllerClose(transformStream._readableController);\n    } catch (e) {\n      assert(false);\n    }\n\n    transformStream._readableClosed = true;\n  }\n\n  function TransformStreamErrorIfNeeded(transformStream, e) {\n    if (transformStream._errored === false) {\n      TransformStreamErrorInternal(transformStream, e);\n    }\n  }\n\n  function TransformStreamErrorInternal(transformStream, e) {\n    assert(transformStream._errored === false);\n    transformStream._errored = true;\n    transformStream._storedError = e;\n\n    if (transformStream._writableDone === false) {\n      WritableStreamDefaultControllerError(transformStream._writableController, e);\n    }\n\n    if (transformStream._readableClosed === false) {\n      ReadableStreamDefaultControllerError(transformStream._readableController, e);\n    }\n  }\n\n  function TransformStreamReadableReadyPromise(transformStream) {\n    assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n    if (transformStream._backpressure === false) {\n      return Promise.resolve();\n    }\n\n    assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n    return transformStream._backpressureChangePromise;\n  }\n\n  function TransformStreamSetBackpressure(transformStream, backpressure) {\n    assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n    if (transformStream._backpressureChangePromise !== undefined) {\n      transformStream._backpressureChangePromise_resolve(backpressure);\n    }\n\n    transformStream._backpressureChangePromise = new Promise(function (resolve) {\n      transformStream._backpressureChangePromise_resolve = resolve;\n    });\n\n    transformStream._backpressureChangePromise.then(function (resolution) {\n      assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n    });\n\n    transformStream._backpressure = backpressure;\n  }\n\n  function TransformStreamDefaultTransform(chunk, transformStreamController) {\n    var transformStream = transformStreamController._controlledTransformStream;\n    TransformStreamEnqueueToReadable(transformStream, chunk);\n    return Promise.resolve();\n  }\n\n  function TransformStreamTransform(transformStream, chunk) {\n    assert(transformStream._errored === false);\n    assert(transformStream._transforming === false);\n    assert(transformStream._backpressure === false);\n    transformStream._transforming = true;\n    var transformer = transformStream._transformer;\n    var controller = transformStream._transformStreamController;\n    var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n    return transformPromise.then(function () {\n      transformStream._transforming = false;\n      return TransformStreamReadableReadyPromise(transformStream);\n    }, function (e) {\n      TransformStreamErrorIfNeeded(transformStream, e);\n      return Promise.reject(e);\n    });\n  }\n\n  function IsTransformStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsTransformStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  var TransformStreamSink = function () {\n    function TransformStreamSink(transformStream, startPromise) {\n      _classCallCheck(this, TransformStreamSink);\n\n      this._transformStream = transformStream;\n      this._startPromise = startPromise;\n    }\n\n    _createClass(TransformStreamSink, [{\n      key: 'start',\n      value: function start(c) {\n        var transformStream = this._transformStream;\n        transformStream._writableController = c;\n        return this._startPromise.then(function () {\n          return TransformStreamReadableReadyPromise(transformStream);\n        });\n      }\n    }, {\n      key: 'write',\n      value: function write(chunk) {\n        var transformStream = this._transformStream;\n        return TransformStreamTransform(transformStream, chunk);\n      }\n    }, {\n      key: 'abort',\n      value: function abort() {\n        var transformStream = this._transformStream;\n        transformStream._writableDone = true;\n        TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        var transformStream = this._transformStream;\n        assert(transformStream._transforming === false);\n        transformStream._writableDone = true;\n        var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n        return flushPromise.then(function () {\n          if (transformStream._errored === true) {\n            return Promise.reject(transformStream._storedError);\n          }\n\n          if (transformStream._readableClosed === false) {\n            TransformStreamCloseReadableInternal(transformStream);\n          }\n\n          return Promise.resolve();\n        }).catch(function (r) {\n          TransformStreamErrorIfNeeded(transformStream, r);\n          return Promise.reject(transformStream._storedError);\n        });\n      }\n    }]);\n\n    return TransformStreamSink;\n  }();\n\n  var TransformStreamSource = function () {\n    function TransformStreamSource(transformStream, startPromise) {\n      _classCallCheck(this, TransformStreamSource);\n\n      this._transformStream = transformStream;\n      this._startPromise = startPromise;\n    }\n\n    _createClass(TransformStreamSource, [{\n      key: 'start',\n      value: function start(c) {\n        var transformStream = this._transformStream;\n        transformStream._readableController = c;\n        return this._startPromise.then(function () {\n          assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n          if (transformStream._backpressure === true) {\n            return Promise.resolve();\n          }\n\n          assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n          return transformStream._backpressureChangePromise;\n        });\n      }\n    }, {\n      key: 'pull',\n      value: function pull() {\n        var transformStream = this._transformStream;\n        assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n        assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n        TransformStreamSetBackpressure(transformStream, false);\n        return transformStream._backpressureChangePromise;\n      }\n    }, {\n      key: 'cancel',\n      value: function cancel() {\n        var transformStream = this._transformStream;\n        transformStream._readableClosed = true;\n        TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n      }\n    }]);\n\n    return TransformStreamSource;\n  }();\n\n  var TransformStreamDefaultController = function () {\n    function TransformStreamDefaultController(transformStream) {\n      _classCallCheck(this, TransformStreamDefaultController);\n\n      if (IsTransformStream(transformStream) === false) {\n        throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n      }\n\n      if (transformStream._transformStreamController !== undefined) {\n        throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n      }\n\n      this._controlledTransformStream = transformStream;\n    }\n\n    _createClass(TransformStreamDefaultController, [{\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('enqueue');\n        }\n\n        TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('close');\n        }\n\n        TransformStreamCloseReadable(this._controlledTransformStream);\n      }\n    }, {\n      key: 'error',\n      value: function error(reason) {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('error');\n        }\n\n        TransformStreamError(this._controlledTransformStream, reason);\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('desiredSize');\n        }\n\n        var transformStream = this._controlledTransformStream;\n        var readableController = transformStream._readableController;\n        return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n      }\n    }]);\n\n    return TransformStreamDefaultController;\n  }();\n\n  var TransformStream = function () {\n    function TransformStream() {\n      var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      _classCallCheck(this, TransformStream);\n\n      this._transformer = transformer;\n      var readableStrategy = transformer.readableStrategy,\n          writableStrategy = transformer.writableStrategy;\n      this._transforming = false;\n      this._errored = false;\n      this._storedError = undefined;\n      this._writableController = undefined;\n      this._readableController = undefined;\n      this._transformStreamController = undefined;\n      this._writableDone = false;\n      this._readableClosed = false;\n      this._backpressure = undefined;\n      this._backpressureChangePromise = undefined;\n      this._backpressureChangePromise_resolve = undefined;\n      this._transformStreamController = new TransformStreamDefaultController(this);\n      var startPromise_resolve = void 0;\n      var startPromise = new Promise(function (resolve) {\n        startPromise_resolve = resolve;\n      });\n      var source = new TransformStreamSource(this, startPromise);\n      this._readable = new ReadableStream(source, readableStrategy);\n      var sink = new TransformStreamSink(this, startPromise);\n      this._writable = new WritableStream(sink, writableStrategy);\n      assert(this._writableController !== undefined);\n      assert(this._readableController !== undefined);\n      var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n      TransformStreamSetBackpressure(this, desiredSize <= 0);\n      var transformStream = this;\n      var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n      startPromise_resolve(startResult);\n      startPromise.catch(function (e) {\n        if (transformStream._errored === false) {\n          transformStream._errored = true;\n          transformStream._storedError = e;\n        }\n      });\n    }\n\n    _createClass(TransformStream, [{\n      key: 'readable',\n      get: function get() {\n        if (IsTransformStream(this) === false) {\n          throw streamBrandCheckException('readable');\n        }\n\n        return this._readable;\n      }\n    }, {\n      key: 'writable',\n      get: function get() {\n        if (IsTransformStream(this) === false) {\n          throw streamBrandCheckException('writable');\n        }\n\n        return this._writable;\n      }\n    }]);\n\n    return TransformStream;\n  }();\n\n  module.exports = {\n    TransformStream: TransformStream\n  };\n\n  function defaultControllerBrandCheckException(name) {\n    return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  module.exports = __w_pdfjs_require__(5);\n}]));\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n{\n  var isURLSupported = false;\n\n  try {\n    if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n      var u = new URL('b', 'http://a');\n      u.pathname = 'c%20d';\n      isURLSupported = u.href === 'http://a/c%20d';\n    }\n  } catch (ex) {}\n\n  if (isURLSupported) {\n    exports.URL = URL;\n  } else {\n    var PolyfillURL = __w_pdfjs_require__(150).URL;\n\n    var OriginalURL = __w_pdfjs_require__(8).URL;\n\n    if (OriginalURL) {\n      PolyfillURL.createObjectURL = function (blob) {\n        return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n      };\n\n      PolyfillURL.revokeObjectURL = function (url) {\n        OriginalURL.revokeObjectURL(url);\n      };\n    }\n\n    exports.URL = PolyfillURL;\n  }\n}\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n(function URLConstructorClosure() {\n  'use strict';\n\n  var relative = Object.create(null);\n  relative['ftp'] = 21;\n  relative['file'] = 0;\n  relative['gopher'] = 70;\n  relative['http'] = 80;\n  relative['https'] = 443;\n  relative['ws'] = 80;\n  relative['wss'] = 443;\n  var relativePathDotMapping = Object.create(null);\n  relativePathDotMapping['%2e'] = '.';\n  relativePathDotMapping['.%2e'] = '..';\n  relativePathDotMapping['%2e.'] = '..';\n  relativePathDotMapping['%2e%2e'] = '..';\n\n  function isRelativeScheme(scheme) {\n    return relative[scheme] !== undefined;\n  }\n\n  function invalid() {\n    clear.call(this);\n    this._isInvalid = true;\n  }\n\n  function IDNAToASCII(h) {\n    if (h === '') {\n      invalid.call(this);\n    }\n\n    return h.toLowerCase();\n  }\n\n  function percentEscape(c) {\n    var unicode = c.charCodeAt(0);\n\n    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n      return c;\n    }\n\n    return encodeURIComponent(c);\n  }\n\n  function percentEscapeQuery(c) {\n    var unicode = c.charCodeAt(0);\n\n    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n      return c;\n    }\n\n    return encodeURIComponent(c);\n  }\n\n  var EOF,\n      ALPHA = /[a-zA-Z]/,\n      ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n  function parse(input, stateOverride, base) {\n    function err(message) {\n      errors.push(message);\n    }\n\n    var state = stateOverride || 'scheme start',\n        cursor = 0,\n        buffer = '',\n        seenAt = false,\n        seenBracket = false,\n        errors = [];\n\n    loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n      var c = input[cursor];\n\n      switch (state) {\n        case 'scheme start':\n          if (c && ALPHA.test(c)) {\n            buffer += c.toLowerCase();\n            state = 'scheme';\n          } else if (!stateOverride) {\n            buffer = '';\n            state = 'no scheme';\n            continue;\n          } else {\n            err('Invalid scheme.');\n            break loop;\n          }\n\n          break;\n\n        case 'scheme':\n          if (c && ALPHANUMERIC.test(c)) {\n            buffer += c.toLowerCase();\n          } else if (c === ':') {\n            this._scheme = buffer;\n            buffer = '';\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            if (isRelativeScheme(this._scheme)) {\n              this._isRelative = true;\n            }\n\n            if (this._scheme === 'file') {\n              state = 'relative';\n            } else if (this._isRelative && base && base._scheme === this._scheme) {\n              state = 'relative or authority';\n            } else if (this._isRelative) {\n              state = 'authority first slash';\n            } else {\n              state = 'scheme data';\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            cursor = 0;\n            state = 'no scheme';\n            continue;\n          } else if (c === EOF) {\n            break loop;\n          } else {\n            err('Code point not allowed in scheme: ' + c);\n            break loop;\n          }\n\n          break;\n\n        case 'scheme data':\n          if (c === '?') {\n            this._query = '?';\n            state = 'query';\n          } else if (c === '#') {\n            this._fragment = '#';\n            state = 'fragment';\n          } else {\n            if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n              this._schemeData += percentEscape(c);\n            }\n          }\n\n          break;\n\n        case 'no scheme':\n          if (!base || !isRelativeScheme(base._scheme)) {\n            err('Missing scheme.');\n            invalid.call(this);\n          } else {\n            state = 'relative';\n            continue;\n          }\n\n          break;\n\n        case 'relative or authority':\n          if (c === '/' && input[cursor + 1] === '/') {\n            state = 'authority ignore slashes';\n          } else {\n            err('Expected /, got: ' + c);\n            state = 'relative';\n            continue;\n          }\n\n          break;\n\n        case 'relative':\n          this._isRelative = true;\n\n          if (this._scheme !== 'file') {\n            this._scheme = base._scheme;\n          }\n\n          if (c === EOF) {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._username = base._username;\n            this._password = base._password;\n            break loop;\n          } else if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n\n            state = 'relative slash';\n          } else if (c === '?') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = '?';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'query';\n          } else if (c === '#') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._fragment = '#';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'fragment';\n          } else {\n            var nextC = input[cursor + 1];\n            var nextNextC = input[cursor + 2];\n\n            if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n              this._path = base._path.slice();\n\n              this._path.pop();\n            }\n\n            state = 'relative path';\n            continue;\n          }\n\n          break;\n\n        case 'relative slash':\n          if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n\n            if (this._scheme === 'file') {\n              state = 'file host';\n            } else {\n              state = 'authority ignore slashes';\n            }\n          } else {\n            if (this._scheme !== 'file') {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n            }\n\n            state = 'relative path';\n            continue;\n          }\n\n          break;\n\n        case 'authority first slash':\n          if (c === '/') {\n            state = 'authority second slash';\n          } else {\n            err('Expected \\'/\\', got: ' + c);\n            state = 'authority ignore slashes';\n            continue;\n          }\n\n          break;\n\n        case 'authority second slash':\n          state = 'authority ignore slashes';\n\n          if (c !== '/') {\n            err('Expected \\'/\\', got: ' + c);\n            continue;\n          }\n\n          break;\n\n        case 'authority ignore slashes':\n          if (c !== '/' && c !== '\\\\') {\n            state = 'authority';\n            continue;\n          } else {\n            err('Expected authority, got: ' + c);\n          }\n\n          break;\n\n        case 'authority':\n          if (c === '@') {\n            if (seenAt) {\n              err('@ already seen.');\n              buffer += '%40';\n            }\n\n            seenAt = true;\n\n            for (var i = 0; i < buffer.length; i++) {\n              var cp = buffer[i];\n\n              if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n                err('Invalid whitespace in authority.');\n                continue;\n              }\n\n              if (cp === ':' && this._password === null) {\n                this._password = '';\n                continue;\n              }\n\n              var tempC = percentEscape(cp);\n\n              if (this._password !== null) {\n                this._password += tempC;\n              } else {\n                this._username += tempC;\n              }\n            }\n\n            buffer = '';\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            cursor -= buffer.length;\n            buffer = '';\n            state = 'host';\n            continue;\n          } else {\n            buffer += c;\n          }\n\n          break;\n\n        case 'file host':\n          if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n              state = 'relative path';\n            } else if (buffer.length === 0) {\n              state = 'relative path start';\n            } else {\n              this._host = IDNAToASCII.call(this, buffer);\n              buffer = '';\n              state = 'relative path start';\n            }\n\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid whitespace in file host.');\n          } else {\n            buffer += c;\n          }\n\n          break;\n\n        case 'host':\n        case 'hostname':\n          if (c === ':' && !seenBracket) {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'port';\n\n            if (stateOverride === 'hostname') {\n              break loop;\n            }\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            continue;\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            if (c === '[') {\n              seenBracket = true;\n            } else if (c === ']') {\n              seenBracket = false;\n            }\n\n            buffer += c;\n          } else {\n            err('Invalid code point in host/hostname: ' + c);\n          }\n\n          break;\n\n        case 'port':\n          if (/[0-9]/.test(c)) {\n            buffer += c;\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n            if (buffer !== '') {\n              var temp = parseInt(buffer, 10);\n\n              if (temp !== relative[this._scheme]) {\n                this._port = temp + '';\n              }\n\n              buffer = '';\n            }\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            state = 'relative path start';\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid code point in port: ' + c);\n          } else {\n            invalid.call(this);\n          }\n\n          break;\n\n        case 'relative path start':\n          if (c === '\\\\') {\n            err('\\'\\\\\\' not allowed in path.');\n          }\n\n          state = 'relative path';\n\n          if (c !== '/' && c !== '\\\\') {\n            continue;\n          }\n\n          break;\n\n        case 'relative path':\n          if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n            if (c === '\\\\') {\n              err('\\\\ not allowed in relative path.');\n            }\n\n            var tmp;\n\n            if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n              buffer = tmp;\n            }\n\n            if (buffer === '..') {\n              this._path.pop();\n\n              if (c !== '/' && c !== '\\\\') {\n                this._path.push('');\n              }\n            } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n              this._path.push('');\n            } else if (buffer !== '.') {\n              if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n                buffer = buffer[0] + ':';\n              }\n\n              this._path.push(buffer);\n            }\n\n            buffer = '';\n\n            if (c === '?') {\n              this._query = '?';\n              state = 'query';\n            } else if (c === '#') {\n              this._fragment = '#';\n              state = 'fragment';\n            }\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            buffer += percentEscape(c);\n          }\n\n          break;\n\n        case 'query':\n          if (!stateOverride && c === '#') {\n            this._fragment = '#';\n            state = 'fragment';\n          } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._query += percentEscapeQuery(c);\n          }\n\n          break;\n\n        case 'fragment':\n          if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._fragment += c;\n          }\n\n          break;\n      }\n\n      cursor++;\n    }\n  }\n\n  function clear() {\n    this._scheme = '';\n    this._schemeData = '';\n    this._username = '';\n    this._password = null;\n    this._host = '';\n    this._port = '';\n    this._path = [];\n    this._query = '';\n    this._fragment = '';\n    this._isInvalid = false;\n    this._isRelative = false;\n  }\n\n  function JURL(url, base) {\n    if (base !== undefined && !(base instanceof JURL)) {\n      base = new JURL(String(base));\n    }\n\n    this._url = url;\n    clear.call(this);\n    var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n    parse.call(this, input, null, base);\n  }\n\n  JURL.prototype = {\n    toString: function toString() {\n      return this.href;\n    },\n\n    get href() {\n      if (this._isInvalid) {\n        return this._url;\n      }\n\n      var authority = '';\n\n      if (this._username !== '' || this._password !== null) {\n        authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n      }\n\n      return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n    },\n\n    set href(value) {\n      clear.call(this);\n      parse.call(this, value);\n    },\n\n    get protocol() {\n      return this._scheme + ':';\n    },\n\n    set protocol(value) {\n      if (this._isInvalid) {\n        return;\n      }\n\n      parse.call(this, value + ':', 'scheme start');\n    },\n\n    get host() {\n      return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n    },\n\n    set host(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'host');\n    },\n\n    get hostname() {\n      return this._host;\n    },\n\n    set hostname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'hostname');\n    },\n\n    get port() {\n      return this._port;\n    },\n\n    set port(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'port');\n    },\n\n    get pathname() {\n      return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n    },\n\n    set pathname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      this._path = [];\n      parse.call(this, value, 'relative path start');\n    },\n\n    get search() {\n      return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n    },\n\n    set search(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      this._query = '?';\n\n      if (value[0] === '?') {\n        value = value.slice(1);\n      }\n\n      parse.call(this, value, 'query');\n    },\n\n    get hash() {\n      return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n    },\n\n    set hash(value) {\n      if (this._isInvalid) {\n        return;\n      }\n\n      this._fragment = '#';\n\n      if (value[0] === '#') {\n        value = value.slice(1);\n      }\n\n      parse.call(this, value, 'fragment');\n    },\n\n    get origin() {\n      var host;\n\n      if (this._isInvalid || !this._scheme) {\n        return '';\n      }\n\n      switch (this._scheme) {\n        case 'data':\n        case 'file':\n        case 'javascript':\n        case 'mailto':\n          return 'null';\n\n        case 'blob':\n          try {\n            return new JURL(this._schemeData).origin || 'null';\n          } catch (_) {}\n\n          return 'null';\n      }\n\n      host = this.host;\n\n      if (!host) {\n        return '';\n      }\n\n      return this._scheme + '://' + host;\n    }\n\n  };\n  exports.URL = JURL;\n})();\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _chunked_stream = __w_pdfjs_require__(152);\n\nvar _document = __w_pdfjs_require__(153);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BasePdfManager =\n/*#__PURE__*/\nfunction () {\n  function BasePdfManager() {\n    _classCallCheck(this, BasePdfManager);\n\n    if (this.constructor === BasePdfManager) {\n      (0, _util.unreachable)('Cannot initialize BasePdfManager.');\n    }\n  }\n\n  _createClass(BasePdfManager, [{\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      (0, _util.unreachable)('Abstract method `onLoadedStream` called');\n    }\n  }, {\n    key: \"ensureDoc\",\n    value: function ensureDoc(prop, args) {\n      return this.ensure(this.pdfDocument, prop, args);\n    }\n  }, {\n    key: \"ensureXRef\",\n    value: function ensureXRef(prop, args) {\n      return this.ensure(this.pdfDocument.xref, prop, args);\n    }\n  }, {\n    key: \"ensureCatalog\",\n    value: function ensureCatalog(prop, args) {\n      return this.ensure(this.pdfDocument.catalog, prop, args);\n    }\n  }, {\n    key: \"getPage\",\n    value: function getPage(pageIndex) {\n      return this.pdfDocument.getPage(pageIndex);\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      return this.pdfDocument.fontFallback(id, handler);\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      return this.pdfDocument.cleanup();\n    }\n  }, {\n    key: \"ensure\",\n    value: function () {\n      var _ensure = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(obj, prop, args) {\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                (0, _util.unreachable)('Abstract method `ensure` called');\n\n              case 1:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function ensure(_x, _x2, _x3) {\n        return _ensure.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      (0, _util.unreachable)('Abstract method `requestRange` called');\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {\n      (0, _util.unreachable)('Abstract method `requestLoadedStream` called');\n    }\n  }, {\n    key: \"sendProgressiveData\",\n    value: function sendProgressiveData(chunk) {\n      (0, _util.unreachable)('Abstract method `sendProgressiveData` called');\n    }\n  }, {\n    key: \"updatePassword\",\n    value: function updatePassword(password) {\n      this._password = password;\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {\n      (0, _util.unreachable)('Abstract method `terminate` called');\n    }\n  }, {\n    key: \"docId\",\n    get: function get() {\n      return this._docId;\n    }\n  }, {\n    key: \"password\",\n    get: function get() {\n      return this._password;\n    }\n  }, {\n    key: \"docBaseUrl\",\n    get: function get() {\n      var docBaseUrl = null;\n\n      if (this._docBaseUrl) {\n        var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n\n        if (absoluteUrl) {\n          docBaseUrl = absoluteUrl.href;\n        } else {\n          (0, _util.warn)(\"Invalid absolute docBaseUrl: \\\"\".concat(this._docBaseUrl, \"\\\".\"));\n        }\n      }\n\n      return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl);\n    }\n  }]);\n\n  return BasePdfManager;\n}();\n\nvar LocalPdfManager =\n/*#__PURE__*/\nfunction (_BasePdfManager) {\n  _inherits(LocalPdfManager, _BasePdfManager);\n\n  function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) {\n    var _this;\n\n    _classCallCheck(this, LocalPdfManager);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(LocalPdfManager).call(this));\n    _this._docId = docId;\n    _this._password = password;\n    _this._docBaseUrl = docBaseUrl;\n    _this.evaluatorOptions = evaluatorOptions;\n    var stream = new _stream.Stream(data);\n    _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this)), stream);\n    _this._loadedStreamPromise = Promise.resolve(stream);\n    return _this;\n  }\n\n  _createClass(LocalPdfManager, [{\n    key: \"ensure\",\n    value: function () {\n      var _ensure2 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee2(obj, prop, args) {\n        var value;\n        return _regenerator.default.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                value = obj[prop];\n\n                if (!(typeof value === 'function')) {\n                  _context2.next = 3;\n                  break;\n                }\n\n                return _context2.abrupt(\"return\", value.apply(obj, args));\n\n              case 3:\n                return _context2.abrupt(\"return\", value);\n\n              case 4:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this);\n      }));\n\n      function ensure(_x4, _x5, _x6) {\n        return _ensure2.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      return Promise.resolve();\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {}\n  }, {\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this._loadedStreamPromise;\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {}\n  }]);\n\n  return LocalPdfManager;\n}(BasePdfManager);\n\nexports.LocalPdfManager = LocalPdfManager;\n\nvar NetworkPdfManager =\n/*#__PURE__*/\nfunction (_BasePdfManager2) {\n  _inherits(NetworkPdfManager, _BasePdfManager2);\n\n  function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n    var _this2;\n\n    _classCallCheck(this, NetworkPdfManager);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(NetworkPdfManager).call(this));\n    _this2._docId = docId;\n    _this2._password = args.password;\n    _this2._docBaseUrl = docBaseUrl;\n    _this2.msgHandler = args.msgHandler;\n    _this2.evaluatorOptions = evaluatorOptions;\n    _this2.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n      msgHandler: args.msgHandler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize\n    });\n    _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this2)), _this2.streamManager.getStream());\n    return _this2;\n  }\n\n  _createClass(NetworkPdfManager, [{\n    key: \"ensure\",\n    value: function () {\n      var _ensure3 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee3(obj, prop, args) {\n        var value;\n        return _regenerator.default.wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                _context3.prev = 0;\n                value = obj[prop];\n\n                if (!(typeof value === 'function')) {\n                  _context3.next = 4;\n                  break;\n                }\n\n                return _context3.abrupt(\"return\", value.apply(obj, args));\n\n              case 4:\n                return _context3.abrupt(\"return\", value);\n\n              case 7:\n                _context3.prev = 7;\n                _context3.t0 = _context3[\"catch\"](0);\n\n                if (_context3.t0 instanceof _util.MissingDataException) {\n                  _context3.next = 11;\n                  break;\n                }\n\n                throw _context3.t0;\n\n              case 11:\n                _context3.next = 13;\n                return this.requestRange(_context3.t0.begin, _context3.t0.end);\n\n              case 13:\n                return _context3.abrupt(\"return\", this.ensure(obj, prop, args));\n\n              case 14:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3, this, [[0, 7]]);\n      }));\n\n      function ensure(_x7, _x8, _x9) {\n        return _ensure3.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      return this.streamManager.requestRange(begin, end);\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {\n      this.streamManager.requestAllChunks();\n    }\n  }, {\n    key: \"sendProgressiveData\",\n    value: function sendProgressiveData(chunk) {\n      this.streamManager.onReceiveData({\n        chunk: chunk\n      });\n    }\n  }, {\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this.streamManager.onLoadedStream();\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {\n      this.streamManager.abort();\n    }\n  }]);\n\n  return NetworkPdfManager;\n}(BasePdfManager);\n\nexports.NetworkPdfManager = NetworkPdfManager;\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.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ChunkedStream =\n/*#__PURE__*/\nfunction () {\n  function ChunkedStream(length, chunkSize, manager) {\n    _classCallCheck(this, ChunkedStream);\n\n    this.bytes = new Uint8Array(length);\n    this.start = 0;\n    this.pos = 0;\n    this.end = length;\n    this.chunkSize = chunkSize;\n    this.loadedChunks = [];\n    this.numChunksLoaded = 0;\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1;\n  }\n\n  _createClass(ChunkedStream, [{\n    key: \"getMissingChunks\",\n    value: function getMissingChunks() {\n      var chunks = [];\n\n      for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n        if (!this.loadedChunks[chunk]) {\n          chunks.push(chunk);\n        }\n      }\n\n      return chunks;\n    }\n  }, {\n    key: \"getBaseStreams\",\n    value: function getBaseStreams() {\n      return [this];\n    }\n  }, {\n    key: \"allChunksLoaded\",\n    value: function allChunksLoaded() {\n      return this.numChunksLoaded === this.numChunks;\n    }\n  }, {\n    key: \"onReceiveData\",\n    value: function onReceiveData(begin, chunk) {\n      var chunkSize = this.chunkSize;\n\n      if (begin % chunkSize !== 0) {\n        throw new Error(\"Bad begin offset: \".concat(begin));\n      }\n\n      var end = begin + chunk.byteLength;\n\n      if (end % chunkSize !== 0 && end !== this.bytes.length) {\n        throw new Error(\"Bad end offset: \".concat(end));\n      }\n\n      this.bytes.set(new Uint8Array(chunk), begin);\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n      for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n        if (!this.loadedChunks[curChunk]) {\n          this.loadedChunks[curChunk] = true;\n          ++this.numChunksLoaded;\n        }\n      }\n    }\n  }, {\n    key: \"onReceiveProgressiveData\",\n    value: function onReceiveProgressiveData(data) {\n      var position = this.progressiveDataLength;\n      var beginChunk = Math.floor(position / this.chunkSize);\n      this.bytes.set(new Uint8Array(data), position);\n      position += data.byteLength;\n      this.progressiveDataLength = position;\n      var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n      for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n        if (!this.loadedChunks[curChunk]) {\n          this.loadedChunks[curChunk] = true;\n          ++this.numChunksLoaded;\n        }\n      }\n    }\n  }, {\n    key: \"ensureByte\",\n    value: function ensureByte(pos) {\n      var chunk = Math.floor(pos / this.chunkSize);\n\n      if (chunk === this.lastSuccessfulEnsureByteChunk) {\n        return;\n      }\n\n      if (!this.loadedChunks[chunk]) {\n        throw new _util.MissingDataException(pos, pos + 1);\n      }\n\n      this.lastSuccessfulEnsureByteChunk = chunk;\n    }\n  }, {\n    key: \"ensureRange\",\n    value: function ensureRange(begin, end) {\n      if (begin >= end) {\n        return;\n      }\n\n      if (end <= this.progressiveDataLength) {\n        return;\n      }\n\n      var chunkSize = this.chunkSize;\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this.loadedChunks[chunk]) {\n          throw new _util.MissingDataException(begin, end);\n        }\n      }\n    }\n  }, {\n    key: \"nextEmptyChunk\",\n    value: function nextEmptyChunk(beginChunk) {\n      var numChunks = this.numChunks;\n\n      for (var i = 0; i < numChunks; ++i) {\n        var chunk = (beginChunk + i) % numChunks;\n\n        if (!this.loadedChunks[chunk]) {\n          return chunk;\n        }\n      }\n\n      return null;\n    }\n  }, {\n    key: \"hasChunk\",\n    value: function hasChunk(chunk) {\n      return !!this.loadedChunks[chunk];\n    }\n  }, {\n    key: \"getByte\",\n    value: function getByte() {\n      var pos = this.pos;\n\n      if (pos >= this.end) {\n        return -1;\n      }\n\n      this.ensureByte(pos);\n      return this.bytes[this.pos++];\n    }\n  }, {\n    key: \"getUint16\",\n    value: function getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    }\n  }, {\n    key: \"getInt32\",\n    value: function getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    }\n  }, {\n    key: \"getBytes\",\n    value: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        this.ensureRange(pos, strEnd);\n\n        var _subarray = bytes.subarray(pos, strEnd);\n\n        return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n      }\n\n      var end = pos + length;\n\n      if (end > strEnd) {\n        end = strEnd;\n      }\n\n      this.ensureRange(pos, end);\n      this.pos = end;\n      var subarray = bytes.subarray(pos, end);\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    }\n  }, {\n    key: \"peekByte\",\n    value: function peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    }\n  }, {\n    key: \"peekBytes\",\n    value: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    }\n  }, {\n    key: \"getByteRange\",\n    value: function getByteRange(begin, end) {\n      this.ensureRange(begin, end);\n      return this.bytes.subarray(begin, end);\n    }\n  }, {\n    key: \"skip\",\n    value: function skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.pos = this.start;\n    }\n  }, {\n    key: \"moveStart\",\n    value: function moveStart() {\n      this.start = this.pos;\n    }\n  }, {\n    key: \"makeSubStream\",\n    value: function makeSubStream(start, length, dict) {\n      this.ensureRange(start, start + length);\n\n      function ChunkedStreamSubstream() {}\n\n      ChunkedStreamSubstream.prototype = Object.create(this);\n\n      ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n        var chunkSize = this.chunkSize;\n        var beginChunk = Math.floor(this.start / chunkSize);\n        var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n        var missingChunks = [];\n\n        for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n          if (!this.loadedChunks[chunk]) {\n            missingChunks.push(chunk);\n          }\n        }\n\n        return missingChunks;\n      };\n\n      var subStream = new ChunkedStreamSubstream();\n      subStream.pos = subStream.start = start;\n      subStream.end = start + length || this.end;\n      subStream.dict = dict;\n      return subStream;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this.end - this.start;\n    }\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this.length === 0;\n    }\n  }]);\n\n  return ChunkedStream;\n}();\n\nexports.ChunkedStream = ChunkedStream;\n\nvar ChunkedStreamManager =\n/*#__PURE__*/\nfunction () {\n  function ChunkedStreamManager(pdfNetworkStream, args) {\n    _classCallCheck(this, ChunkedStreamManager);\n\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n    this.currRequestId = 0;\n    this.chunksNeededByRequest = Object.create(null);\n    this.requestsByChunk = Object.create(null);\n    this.promisesByRequest = Object.create(null);\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n    this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n  }\n\n  _createClass(ChunkedStreamManager, [{\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this._loadedStreamCapability.promise;\n    }\n  }, {\n    key: \"sendRequest\",\n    value: function sendRequest(begin, end) {\n      var _this = this;\n\n      var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n      if (!rangeReader.isStreamingSupported) {\n        rangeReader.onProgress = this.onProgress.bind(this);\n      }\n\n      var chunks = [],\n          loaded = 0;\n      var promise = new Promise(function (resolve, reject) {\n        var readChunk = function readChunk(chunk) {\n          try {\n            if (!chunk.done) {\n              var data = chunk.value;\n              chunks.push(data);\n              loaded += (0, _util.arrayByteLength)(data);\n\n              if (rangeReader.isStreamingSupported) {\n                _this.onProgress({\n                  loaded: loaded\n                });\n              }\n\n              rangeReader.read().then(readChunk, reject);\n              return;\n            }\n\n            var chunkData = (0, _util.arraysToBytes)(chunks);\n            chunks = null;\n            resolve(chunkData);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        rangeReader.read().then(readChunk, reject);\n      });\n      promise.then(function (data) {\n        if (_this.aborted) {\n          return;\n        }\n\n        _this.onReceiveData({\n          chunk: data,\n          begin: begin\n        });\n      });\n    }\n  }, {\n    key: \"requestAllChunks\",\n    value: function requestAllChunks() {\n      var missingChunks = this.stream.getMissingChunks();\n\n      this._requestChunks(missingChunks);\n\n      return this._loadedStreamCapability.promise;\n    }\n  }, {\n    key: \"_requestChunks\",\n    value: function _requestChunks(chunks) {\n      var requestId = this.currRequestId++;\n      var chunksNeeded = Object.create(null);\n      this.chunksNeededByRequest[requestId] = chunksNeeded;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var _chunk = _step.value;\n\n          if (!this.stream.hasChunk(_chunk)) {\n            chunksNeeded[_chunk] = true;\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      if ((0, _util.isEmptyObj)(chunksNeeded)) {\n        return Promise.resolve();\n      }\n\n      var capability = (0, _util.createPromiseCapability)();\n      this.promisesByRequest[requestId] = capability;\n      var chunksToRequest = [];\n\n      for (var chunk in chunksNeeded) {\n        chunk = chunk | 0;\n\n        if (!(chunk in this.requestsByChunk)) {\n          this.requestsByChunk[chunk] = [];\n          chunksToRequest.push(chunk);\n        }\n\n        this.requestsByChunk[chunk].push(requestId);\n      }\n\n      if (!chunksToRequest.length) {\n        return capability.promise;\n      }\n\n      var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = groupedChunksToRequest[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var groupedChunk = _step2.value;\n          var begin = groupedChunk.beginChunk * this.chunkSize;\n          var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n          this.sendRequest(begin, end);\n        }\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      return capability.promise;\n    }\n  }, {\n    key: \"getStream\",\n    value: function getStream() {\n      return this.stream;\n    }\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      end = Math.min(end, this.length);\n      var beginChunk = this.getBeginChunk(begin);\n      var endChunk = this.getEndChunk(end);\n      var chunks = [];\n\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        chunks.push(chunk);\n      }\n\n      return this._requestChunks(chunks);\n    }\n  }, {\n    key: \"requestRanges\",\n    value: function requestRanges() {\n      var ranges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var chunksToRequest = [];\n      var _iteratorNormalCompletion3 = true;\n      var _didIteratorError3 = false;\n      var _iteratorError3 = undefined;\n\n      try {\n        for (var _iterator3 = ranges[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n          var range = _step3.value;\n          var beginChunk = this.getBeginChunk(range.begin);\n          var endChunk = this.getEndChunk(range.end);\n\n          for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n            if (!chunksToRequest.includes(chunk)) {\n              chunksToRequest.push(chunk);\n            }\n          }\n        }\n      } catch (err) {\n        _didIteratorError3 = true;\n        _iteratorError3 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n            _iterator3.return();\n          }\n        } finally {\n          if (_didIteratorError3) {\n            throw _iteratorError3;\n          }\n        }\n      }\n\n      chunksToRequest.sort(function (a, b) {\n        return a - b;\n      });\n      return this._requestChunks(chunksToRequest);\n    }\n  }, {\n    key: \"groupChunks\",\n    value: function groupChunks(chunks) {\n      var groupedChunks = [];\n      var beginChunk = -1;\n      var prevChunk = -1;\n\n      for (var i = 0, ii = chunks.length; i < ii; ++i) {\n        var chunk = chunks[i];\n\n        if (beginChunk < 0) {\n          beginChunk = chunk;\n        }\n\n        if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n          groupedChunks.push({\n            beginChunk: beginChunk,\n            endChunk: prevChunk + 1\n          });\n          beginChunk = chunk;\n        }\n\n        if (i + 1 === chunks.length) {\n          groupedChunks.push({\n            beginChunk: beginChunk,\n            endChunk: chunk + 1\n          });\n        }\n\n        prevChunk = chunk;\n      }\n\n      return groupedChunks;\n    }\n  }, {\n    key: \"onProgress\",\n    value: function onProgress(args) {\n      this.msgHandler.send('DocProgress', {\n        loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n        total: this.length\n      });\n    }\n  }, {\n    key: \"onReceiveData\",\n    value: function onReceiveData(args) {\n      var chunk = args.chunk;\n      var isProgressive = args.begin === undefined;\n      var begin = isProgressive ? this.progressiveDataLength : args.begin;\n      var end = begin + chunk.byteLength;\n      var beginChunk = Math.floor(begin / this.chunkSize);\n      var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n      if (isProgressive) {\n        this.stream.onReceiveProgressiveData(chunk);\n        this.progressiveDataLength = end;\n      } else {\n        this.stream.onReceiveData(begin, chunk);\n      }\n\n      if (this.stream.allChunksLoaded()) {\n        this._loadedStreamCapability.resolve(this.stream);\n      }\n\n      var loadedRequests = [];\n\n      for (var _chunk2 = beginChunk; _chunk2 < endChunk; ++_chunk2) {\n        var requestIds = this.requestsByChunk[_chunk2] || [];\n        delete this.requestsByChunk[_chunk2];\n        var _iteratorNormalCompletion4 = true;\n        var _didIteratorError4 = false;\n        var _iteratorError4 = undefined;\n\n        try {\n          for (var _iterator4 = requestIds[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var requestId = _step4.value;\n            var chunksNeeded = this.chunksNeededByRequest[requestId];\n\n            if (_chunk2 in chunksNeeded) {\n              delete chunksNeeded[_chunk2];\n            }\n\n            if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n              continue;\n            }\n\n            loadedRequests.push(requestId);\n          }\n        } catch (err) {\n          _didIteratorError4 = true;\n          _iteratorError4 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n              _iterator4.return();\n            }\n          } finally {\n            if (_didIteratorError4) {\n              throw _iteratorError4;\n            }\n          }\n        }\n      }\n\n      if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n        var nextEmptyChunk;\n\n        if (this.stream.numChunksLoaded === 1) {\n          var lastChunk = this.stream.numChunks - 1;\n\n          if (!this.stream.hasChunk(lastChunk)) {\n            nextEmptyChunk = lastChunk;\n          }\n        } else {\n          nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n        }\n\n        if (Number.isInteger(nextEmptyChunk)) {\n          this._requestChunks([nextEmptyChunk]);\n        }\n      }\n\n      for (var _i = 0; _i < loadedRequests.length; _i++) {\n        var _requestId = loadedRequests[_i];\n        var capability = this.promisesByRequest[_requestId];\n        delete this.promisesByRequest[_requestId];\n        capability.resolve();\n      }\n\n      this.msgHandler.send('DocProgress', {\n        loaded: this.stream.numChunksLoaded * this.chunkSize,\n        total: this.length\n      });\n    }\n  }, {\n    key: \"onError\",\n    value: function onError(err) {\n      this._loadedStreamCapability.reject(err);\n    }\n  }, {\n    key: \"getBeginChunk\",\n    value: function getBeginChunk(begin) {\n      return Math.floor(begin / this.chunkSize);\n    }\n  }, {\n    key: \"getEndChunk\",\n    value: function getEndChunk(end) {\n      return Math.floor((end - 1) / this.chunkSize) + 1;\n    }\n  }, {\n    key: \"abort\",\n    value: function abort() {\n      this.aborted = true;\n\n      if (this.pdfNetworkStream) {\n        this.pdfNetworkStream.cancelAllRequests('abort');\n      }\n\n      for (var requestId in this.promisesByRequest) {\n        this.promisesByRequest[requestId].reject(new Error('Request was aborted'));\n      }\n    }\n  }]);\n\n  return ChunkedStreamManager;\n}();\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PDFDocument = exports.Page = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _obj = __w_pdfjs_require__(154);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream2 = __w_pdfjs_require__(157);\n\nvar _annotation = __w_pdfjs_require__(169);\n\nvar _crypto = __w_pdfjs_require__(167);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _evaluator = __w_pdfjs_require__(171);\n\nvar _function = __w_pdfjs_require__(185);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_USER_UNIT = 1.0;\nvar LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n  return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable;\n}\n\nvar Page =\n/*#__PURE__*/\nfunction () {\n  function Page(_ref) {\n    var pdfManager = _ref.pdfManager,\n        xref = _ref.xref,\n        pageIndex = _ref.pageIndex,\n        pageDict = _ref.pageDict,\n        ref = _ref.ref,\n        fontCache = _ref.fontCache,\n        builtInCMapCache = _ref.builtInCMapCache,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n\n    _classCallCheck(this, Page);\n\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n    var uniquePrefix = \"p\".concat(this.pageIndex, \"_\");\n    var idCounters = {\n      obj: 0\n    };\n    this.idFactory = {\n      createObjId: function createObjId() {\n        return uniquePrefix + ++idCounters.obj;\n      }\n    };\n  }\n\n  _createClass(Page, [{\n    key: \"_getInheritableProperty\",\n    value: function _getInheritableProperty(key) {\n      var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var value = (0, _util.getInheritableProperty)({\n        dict: this.pageDict,\n        key: key,\n        getArray: getArray,\n        stopWhenFound: false\n      });\n\n      if (!Array.isArray(value)) {\n        return value;\n      }\n\n      if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n        return value[0];\n      }\n\n      return _primitives.Dict.merge(this.xref, value);\n    }\n  }, {\n    key: \"getContentStream\",\n    value: function getContentStream() {\n      var content = this.content;\n      var stream;\n\n      if (Array.isArray(content)) {\n        var xref = this.xref;\n        var streams = [];\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = content[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var _stream = _step.value;\n            streams.push(xref.fetchIfRef(_stream));\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        stream = new _stream2.StreamsSequenceStream(streams);\n      } else if ((0, _primitives.isStream)(content)) {\n        stream = content;\n      } else {\n        stream = new _stream2.NullStream();\n      }\n\n      return stream;\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(keys) {\n      var _this = this;\n\n      if (!this.resourcesPromise) {\n        this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n      }\n\n      return this.resourcesPromise.then(function () {\n        var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref);\n        return objectLoader.load();\n      });\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(_ref2) {\n      var _this2 = this;\n\n      var handler = _ref2.handler,\n          task = _ref2.task,\n          intent = _ref2.intent,\n          renderInteractiveForms = _ref2.renderInteractiveForms;\n      var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n      var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n      var partialEvaluator = new _evaluator.PartialEvaluator({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        handler: handler,\n        pageIndex: this.pageIndex,\n        idFactory: this.idFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        options: this.evaluatorOptions,\n        pdfFunctionFactory: this.pdfFunctionFactory\n      });\n      var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n      var pageListPromise = dataPromises.then(function (_ref3) {\n        var _ref4 = _slicedToArray(_ref3, 1),\n            contentStream = _ref4[0];\n\n        var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex);\n        handler.send('StartRenderPage', {\n          transparency: partialEvaluator.hasBlendModes(_this2.resources),\n          pageIndex: _this2.pageIndex,\n          intent: intent\n        });\n        return partialEvaluator.getOperatorList({\n          stream: contentStream,\n          task: task,\n          resources: _this2.resources,\n          operatorList: opList\n        }).then(function () {\n          return opList;\n        });\n      });\n      return Promise.all([pageListPromise, this._parsedAnnotations]).then(function (_ref5) {\n        var _ref6 = _slicedToArray(_ref5, 2),\n            pageOpList = _ref6[0],\n            annotations = _ref6[1];\n\n        if (annotations.length === 0) {\n          pageOpList.flush(true);\n          return pageOpList;\n        }\n\n        var opListPromises = [];\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = annotations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var annotation = _step2.value;\n\n            if (isAnnotationRenderable(annotation, intent)) {\n              opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms));\n            }\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n\n        return Promise.all(opListPromises).then(function (opLists) {\n          pageOpList.addOp(_util.OPS.beginAnnotations, []);\n          var _iteratorNormalCompletion3 = true;\n          var _didIteratorError3 = false;\n          var _iteratorError3 = undefined;\n\n          try {\n            for (var _iterator3 = opLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n              var opList = _step3.value;\n              pageOpList.addOpList(opList);\n            }\n          } catch (err) {\n            _didIteratorError3 = true;\n            _iteratorError3 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n                _iterator3.return();\n              }\n            } finally {\n              if (_didIteratorError3) {\n                throw _iteratorError3;\n              }\n            }\n          }\n\n          pageOpList.addOp(_util.OPS.endAnnotations, []);\n          pageOpList.flush(true);\n          return pageOpList;\n        });\n      });\n    }\n  }, {\n    key: \"extractTextContent\",\n    value: function extractTextContent(_ref7) {\n      var _this3 = this;\n\n      var handler = _ref7.handler,\n          task = _ref7.task,\n          normalizeWhitespace = _ref7.normalizeWhitespace,\n          sink = _ref7.sink,\n          combineTextItems = _ref7.combineTextItems;\n      var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n      var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']);\n      var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n      return dataPromises.then(function (_ref8) {\n        var _ref9 = _slicedToArray(_ref8, 1),\n            contentStream = _ref9[0];\n\n        var partialEvaluator = new _evaluator.PartialEvaluator({\n          pdfManager: _this3.pdfManager,\n          xref: _this3.xref,\n          handler: handler,\n          pageIndex: _this3.pageIndex,\n          idFactory: _this3.idFactory,\n          fontCache: _this3.fontCache,\n          builtInCMapCache: _this3.builtInCMapCache,\n          options: _this3.evaluatorOptions,\n          pdfFunctionFactory: _this3.pdfFunctionFactory\n        });\n        return partialEvaluator.getTextContent({\n          stream: contentStream,\n          task: task,\n          resources: _this3.resources,\n          normalizeWhitespace: normalizeWhitespace,\n          combineTextItems: combineTextItems,\n          sink: sink\n        });\n      });\n    }\n  }, {\n    key: \"getAnnotationsData\",\n    value: function getAnnotationsData(intent) {\n      return this._parsedAnnotations.then(function (annotations) {\n        var annotationsData = [];\n\n        for (var i = 0, ii = annotations.length; i < ii; i++) {\n          if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n            annotationsData.push(annotations[i].data);\n          }\n        }\n\n        return annotationsData;\n      });\n    }\n  }, {\n    key: \"content\",\n    get: function get() {\n      return this.pageDict.get('Contents');\n    }\n  }, {\n    key: \"resources\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'resources', this._getInheritableProperty('Resources') || _primitives.Dict.empty);\n    }\n  }, {\n    key: \"mediaBox\",\n    get: function get() {\n      var mediaBox = this._getInheritableProperty('MediaBox', true);\n\n      if (!Array.isArray(mediaBox) || mediaBox.length !== 4) {\n        return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);\n      }\n\n      return (0, _util.shadow)(this, 'mediaBox', mediaBox);\n    }\n  }, {\n    key: \"cropBox\",\n    get: function get() {\n      var cropBox = this._getInheritableProperty('CropBox', true);\n\n      if (!Array.isArray(cropBox) || cropBox.length !== 4) {\n        return (0, _util.shadow)(this, 'cropBox', this.mediaBox);\n      }\n\n      return (0, _util.shadow)(this, 'cropBox', cropBox);\n    }\n  }, {\n    key: \"userUnit\",\n    get: function get() {\n      var obj = this.pageDict.get('UserUnit');\n\n      if (!(0, _util.isNum)(obj) || obj <= 0) {\n        obj = DEFAULT_USER_UNIT;\n      }\n\n      return (0, _util.shadow)(this, 'userUnit', obj);\n    }\n  }, {\n    key: \"view\",\n    get: function get() {\n      var mediaBox = this.mediaBox,\n          cropBox = this.cropBox;\n\n      if (mediaBox === cropBox) {\n        return (0, _util.shadow)(this, 'view', mediaBox);\n      }\n\n      var intersection = _util.Util.intersect(cropBox, mediaBox);\n\n      return (0, _util.shadow)(this, 'view', intersection || mediaBox);\n    }\n  }, {\n    key: \"rotate\",\n    get: function get() {\n      var rotate = this._getInheritableProperty('Rotate') || 0;\n\n      if (rotate % 90 !== 0) {\n        rotate = 0;\n      } else if (rotate >= 360) {\n        rotate = rotate % 360;\n      } else if (rotate < 0) {\n        rotate = (rotate % 360 + 360) % 360;\n      }\n\n      return (0, _util.shadow)(this, 'rotate', rotate);\n    }\n  }, {\n    key: \"annotations\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'annotations', this._getInheritableProperty('Annots') || []);\n    }\n  }, {\n    key: \"_parsedAnnotations\",\n    get: function get() {\n      var _this4 = this;\n\n      var parsedAnnotations = this.pdfManager.ensure(this, 'annotations').then(function () {\n        var annotationRefs = _this4.annotations;\n        var annotationPromises = [];\n\n        for (var i = 0, ii = annotationRefs.length; i < ii; i++) {\n          annotationPromises.push(_annotation.AnnotationFactory.create(_this4.xref, annotationRefs[i], _this4.pdfManager, _this4.idFactory));\n        }\n\n        return Promise.all(annotationPromises).then(function (annotations) {\n          return annotations.filter(function isDefined(annotation) {\n            return !!annotation;\n          });\n        }, function (reason) {\n          (0, _util.warn)(\"_parsedAnnotations: \\\"\".concat(reason, \"\\\".\"));\n          return [];\n        });\n      });\n      return (0, _util.shadow)(this, '_parsedAnnotations', parsedAnnotations);\n    }\n  }]);\n\n  return Page;\n}();\n\nexports.Page = Page;\nvar FINGERPRINT_FIRST_BYTES = 1024;\nvar EMPTY_FINGERPRINT = '\\x00\\x00\\x00\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00';\n\nfunction find(stream, needle, limit, backwards) {\n  var pos = stream.pos;\n  var end = stream.end;\n\n  if (pos + limit > end) {\n    limit = end - pos;\n  }\n\n  var strBuf = [];\n\n  for (var i = 0; i < limit; ++i) {\n    strBuf.push(String.fromCharCode(stream.getByte()));\n  }\n\n  var str = strBuf.join('');\n  stream.pos = pos;\n  var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n\n  if (index === -1) {\n    return false;\n  }\n\n  stream.pos += index;\n  return true;\n}\n\nvar PDFDocument =\n/*#__PURE__*/\nfunction () {\n  function PDFDocument(pdfManager, arg) {\n    _classCallCheck(this, PDFDocument);\n\n    var stream;\n\n    if ((0, _primitives.isStream)(arg)) {\n      stream = arg;\n    } else if ((0, _util.isArrayBuffer)(arg)) {\n      stream = new _stream2.Stream(arg);\n    } else {\n      throw new Error('PDFDocument: Unknown argument type');\n    }\n\n    if (stream.length <= 0) {\n      throw new Error('PDFDocument: Stream must have data');\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new _obj.XRef(stream, pdfManager);\n    this.pdfFunctionFactory = new _function.PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported\n    });\n    this._pagePromises = [];\n  }\n\n  _createClass(PDFDocument, [{\n    key: \"parse\",\n    value: function parse(recoveryMode) {\n      this.setup(recoveryMode);\n      var version = this.catalog.catDict.get('Version');\n\n      if ((0, _primitives.isName)(version)) {\n        this.pdfFormatVersion = version.name;\n      }\n\n      try {\n        this.acroForm = this.catalog.catDict.get('AcroForm');\n\n        if (this.acroForm) {\n          this.xfa = this.acroForm.get('XFA');\n          var fields = this.acroForm.get('Fields');\n\n          if ((!fields || !Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n            this.acroForm = null;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.info)('Cannot fetch AcroForm entry; assuming no AcroForms are present');\n        this.acroForm = null;\n      }\n    }\n  }, {\n    key: \"checkHeader\",\n    value: function checkHeader() {\n      var stream = this.stream;\n      stream.reset();\n\n      if (!find(stream, '%PDF-', 1024)) {\n        return;\n      }\n\n      stream.moveStart();\n      var MAX_PDF_VERSION_LENGTH = 12;\n      var version = '',\n          ch;\n\n      while ((ch = stream.getByte()) > 0x20) {\n        if (version.length >= MAX_PDF_VERSION_LENGTH) {\n          break;\n        }\n\n        version += String.fromCharCode(ch);\n      }\n\n      if (!this.pdfFormatVersion) {\n        this.pdfFormatVersion = version.substring(5);\n      }\n    }\n  }, {\n    key: \"parseStartXRef\",\n    value: function parseStartXRef() {\n      this.xref.setStartXRef(this.startXRef);\n    }\n  }, {\n    key: \"setup\",\n    value: function setup(recoveryMode) {\n      this.xref.parse(recoveryMode);\n      this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n    }\n  }, {\n    key: \"_getLinearizationPage\",\n    value: function _getLinearizationPage(pageIndex) {\n      var catalog = this.catalog,\n          linearization = this.linearization;\n      (0, _util.assert)(linearization && linearization.pageFirst === pageIndex);\n      var ref = new _primitives.Ref(linearization.objectNumberFirst, 0);\n      return this.xref.fetchAsync(ref).then(function (obj) {\n        if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Type') && obj.has('Contents')) {\n          if (ref && !catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1);\n          }\n\n          return [obj, ref];\n        }\n\n        throw new _util.FormatError('The Linearization dictionary doesn\\'t point ' + 'to a valid Page dictionary.');\n      }).catch(function (reason) {\n        (0, _util.info)(reason);\n        return catalog.getPageDict(pageIndex);\n      });\n    }\n  }, {\n    key: \"getPage\",\n    value: function getPage(pageIndex) {\n      var _this5 = this;\n\n      if (this._pagePromises[pageIndex] !== undefined) {\n        return this._pagePromises[pageIndex];\n      }\n\n      var catalog = this.catalog,\n          linearization = this.linearization;\n      var promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\n      return this._pagePromises[pageIndex] = promise.then(function (_ref10) {\n        var _ref11 = _slicedToArray(_ref10, 2),\n            pageDict = _ref11[0],\n            ref = _ref11[1];\n\n        return new Page({\n          pdfManager: _this5.pdfManager,\n          xref: _this5.xref,\n          pageIndex: pageIndex,\n          pageDict: pageDict,\n          ref: ref,\n          fontCache: catalog.fontCache,\n          builtInCMapCache: catalog.builtInCMapCache,\n          pdfFunctionFactory: _this5.pdfFunctionFactory\n        });\n      });\n    }\n  }, {\n    key: \"checkFirstPage\",\n    value: function checkFirstPage() {\n      var _this6 = this;\n\n      return this.getPage(0).catch(function (reason) {\n        if (reason instanceof _util.XRefEntryException) {\n          _this6._pagePromises.length = 0;\n\n          _this6.cleanup();\n\n          throw new _util.XRefParseException();\n        }\n      });\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      return this.catalog.fontFallback(id, handler);\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      return this.catalog.cleanup();\n    }\n  }, {\n    key: \"linearization\",\n    get: function get() {\n      var linearization = null;\n\n      try {\n        linearization = _parser.Linearization.create(this.stream);\n      } catch (err) {\n        if (err instanceof _util.MissingDataException) {\n          throw err;\n        }\n\n        (0, _util.info)(err);\n      }\n\n      return (0, _util.shadow)(this, 'linearization', linearization);\n    }\n  }, {\n    key: \"startXRef\",\n    get: function get() {\n      var stream = this.stream;\n      var startXRef = 0;\n\n      if (this.linearization) {\n        stream.reset();\n\n        if (find(stream, 'endobj', 1024)) {\n          startXRef = stream.pos + 6;\n        }\n      } else {\n        var step = 1024;\n        var startXRefLength = 'startxref'.length;\n        var found = false,\n            pos = stream.end;\n\n        while (!found && pos > 0) {\n          pos -= step - startXRefLength;\n\n          if (pos < 0) {\n            pos = 0;\n          }\n\n          stream.pos = pos;\n          found = find(stream, 'startxref', step, true);\n        }\n\n        if (found) {\n          stream.skip(9);\n          var ch;\n\n          do {\n            ch = stream.getByte();\n          } while ((0, _util.isSpace)(ch));\n\n          var str = '';\n\n          while (ch >= 0x20 && ch <= 0x39) {\n            str += String.fromCharCode(ch);\n            ch = stream.getByte();\n          }\n\n          startXRef = parseInt(str, 10);\n\n          if (isNaN(startXRef)) {\n            startXRef = 0;\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'startXRef', startXRef);\n    }\n  }, {\n    key: \"numPages\",\n    get: function get() {\n      var linearization = this.linearization;\n      var num = linearization ? linearization.numPages : this.catalog.numPages;\n      return (0, _util.shadow)(this, 'numPages', num);\n    }\n  }, {\n    key: \"documentInfo\",\n    get: function get() {\n      var DocumentInfoValidators = {\n        Title: _util.isString,\n        Author: _util.isString,\n        Subject: _util.isString,\n        Keywords: _util.isString,\n        Creator: _util.isString,\n        Producer: _util.isString,\n        CreationDate: _util.isString,\n        ModDate: _util.isString,\n        Trapped: _primitives.isName\n      };\n      var docInfo = {\n        PDFFormatVersion: this.pdfFormatVersion,\n        IsLinearized: !!this.linearization,\n        IsAcroFormPresent: !!this.acroForm,\n        IsXFAPresent: !!this.xfa\n      };\n      var infoDict;\n\n      try {\n        infoDict = this.xref.trailer.get('Info');\n      } catch (err) {\n        if (err instanceof _util.MissingDataException) {\n          throw err;\n        }\n\n        (0, _util.info)('The document information dictionary is invalid.');\n      }\n\n      if ((0, _primitives.isDict)(infoDict)) {\n        var _iteratorNormalCompletion4 = true;\n        var _didIteratorError4 = false;\n        var _iteratorError4 = undefined;\n\n        try {\n          for (var _iterator4 = infoDict.getKeys()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var key = _step4.value;\n            var value = infoDict.get(key);\n\n            if (DocumentInfoValidators[key]) {\n              if (DocumentInfoValidators[key](value)) {\n                docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value);\n              } else {\n                (0, _util.info)(\"Bad value in document info for \\\"\".concat(key, \"\\\".\"));\n              }\n            } else if (typeof key === 'string') {\n              var customValue = void 0;\n\n              if ((0, _util.isString)(value)) {\n                customValue = (0, _util.stringToPDFString)(value);\n              } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) {\n                customValue = value;\n              } else {\n                (0, _util.info)(\"Unsupported value in document info for (custom) \\\"\".concat(key, \"\\\".\"));\n                continue;\n              }\n\n              if (!docInfo['Custom']) {\n                docInfo['Custom'] = Object.create(null);\n              }\n\n              docInfo['Custom'][key] = customValue;\n            }\n          }\n        } catch (err) {\n          _didIteratorError4 = true;\n          _iteratorError4 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n              _iterator4.return();\n            }\n          } finally {\n            if (_didIteratorError4) {\n              throw _iteratorError4;\n            }\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'documentInfo', docInfo);\n    }\n  }, {\n    key: \"fingerprint\",\n    get: function get() {\n      var hash;\n      var idArray = this.xref.trailer.get('ID');\n\n      if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n        hash = (0, _util.stringToBytes)(idArray[0]);\n      } else {\n        if (this.stream.ensureRange) {\n          this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));\n        }\n\n        hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n      }\n\n      var fingerprint = '';\n\n      for (var i = 0, ii = hash.length; i < ii; i++) {\n        var hex = hash[i].toString(16);\n        fingerprint += hex.length === 1 ? '0' + hex : hex;\n      }\n\n      return (0, _util.shadow)(this, 'fingerprint', fingerprint);\n    }\n  }]);\n\n  return PDFDocument;\n}();\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _chunked_stream = __w_pdfjs_require__(152);\n\nvar _crypto = __w_pdfjs_require__(167);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction fetchDestination(dest) {\n  return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n}\n\nvar Catalog =\n/*#__PURE__*/\nfunction () {\n  function Catalog(pdfManager, xref) {\n    _classCallCheck(this, Catalog);\n\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.catDict = xref.getCatalogObj();\n\n    if (!(0, _primitives.isDict)(this.catDict)) {\n      throw new _util.FormatError('Catalog object is not a dictionary.');\n    }\n\n    this.fontCache = new _primitives.RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.pageKidsCountCache = new _primitives.RefSetCache();\n  }\n\n  _createClass(Catalog, [{\n    key: \"_readDocumentOutline\",\n    value: function _readDocumentOutline() {\n      var obj = this.catDict.get('Outlines');\n\n      if (!(0, _primitives.isDict)(obj)) {\n        return null;\n      }\n\n      obj = obj.getRaw('First');\n\n      if (!(0, _primitives.isRef)(obj)) {\n        return null;\n      }\n\n      var root = {\n        items: []\n      };\n      var queue = [{\n        obj: obj,\n        parent: root\n      }];\n      var processed = new _primitives.RefSet();\n      processed.put(obj);\n      var xref = this.xref,\n          blackColor = new Uint8ClampedArray(3);\n\n      while (queue.length > 0) {\n        var i = queue.shift();\n        var outlineDict = xref.fetchIfRef(i.obj);\n\n        if (outlineDict === null) {\n          continue;\n        }\n\n        if (!outlineDict.has('Title')) {\n          throw new _util.FormatError('Invalid outline item encountered.');\n        }\n\n        var data = {\n          url: null,\n          dest: null\n        };\n        Catalog.parseDestDictionary({\n          destDict: outlineDict,\n          resultObj: data,\n          docBaseUrl: this.pdfManager.docBaseUrl\n        });\n        var title = outlineDict.get('Title');\n        var flags = outlineDict.get('F') || 0;\n        var color = outlineDict.getArray('C');\n        var rgbColor = blackColor;\n\n        if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n          rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n        }\n\n        var outlineItem = {\n          dest: data.dest,\n          url: data.url,\n          unsafeUrl: data.unsafeUrl,\n          newWindow: data.newWindow,\n          title: (0, _util.stringToPDFString)(title),\n          color: rgbColor,\n          count: outlineDict.get('Count'),\n          bold: !!(flags & 2),\n          italic: !!(flags & 1),\n          items: []\n        };\n        i.parent.items.push(outlineItem);\n        obj = outlineDict.getRaw('First');\n\n        if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n          queue.push({\n            obj: obj,\n            parent: outlineItem\n          });\n          processed.put(obj);\n        }\n\n        obj = outlineDict.getRaw('Next');\n\n        if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n          queue.push({\n            obj: obj,\n            parent: i.parent\n          });\n          processed.put(obj);\n        }\n      }\n\n      return root.items.length > 0 ? root.items : null;\n    }\n  }, {\n    key: \"_readPermissions\",\n    value: function _readPermissions() {\n      var encrypt = this.xref.trailer.get('Encrypt');\n\n      if (!(0, _primitives.isDict)(encrypt)) {\n        return null;\n      }\n\n      var flags = encrypt.get('P');\n\n      if (!(0, _util.isNum)(flags)) {\n        return null;\n      }\n\n      flags += Math.pow(2, 32);\n      var permissions = [];\n\n      for (var key in _util.PermissionFlag) {\n        var value = _util.PermissionFlag[key];\n\n        if (flags & value) {\n          permissions.push(value);\n        }\n      }\n\n      return permissions;\n    }\n  }, {\n    key: \"getDestination\",\n    value: function getDestination(destinationId) {\n      var obj = this._readDests();\n\n      if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n        return fetchDestination(obj.get(destinationId) || null);\n      }\n\n      return null;\n    }\n  }, {\n    key: \"_readDests\",\n    value: function _readDests() {\n      var obj = this.catDict.get('Names');\n\n      if (obj && obj.has('Dests')) {\n        return new NameTree(obj.getRaw('Dests'), this.xref);\n      } else if (this.catDict.has('Dests')) {\n        return this.catDict.get('Dests');\n      }\n    }\n  }, {\n    key: \"_readPageLabels\",\n    value: function _readPageLabels() {\n      var obj = this.catDict.getRaw('PageLabels');\n\n      if (!obj) {\n        return null;\n      }\n\n      var pageLabels = new Array(this.numPages);\n      var style = null,\n          prefix = '';\n      var numberTree = new NumberTree(obj, this.xref);\n      var nums = numberTree.getAll();\n      var currentLabel = '',\n          currentIndex = 1;\n\n      for (var i = 0, ii = this.numPages; i < ii; i++) {\n        if (i in nums) {\n          var labelDict = nums[i];\n\n          if (!(0, _primitives.isDict)(labelDict)) {\n            throw new _util.FormatError('PageLabel is not a dictionary.');\n          }\n\n          if (labelDict.has('Type') && !(0, _primitives.isName)(labelDict.get('Type'), 'PageLabel')) {\n            throw new _util.FormatError('Invalid type in PageLabel dictionary.');\n          }\n\n          if (labelDict.has('S')) {\n            var s = labelDict.get('S');\n\n            if (!(0, _primitives.isName)(s)) {\n              throw new _util.FormatError('Invalid style in PageLabel dictionary.');\n            }\n\n            style = s.name;\n          } else {\n            style = null;\n          }\n\n          if (labelDict.has('P')) {\n            var p = labelDict.get('P');\n\n            if (!(0, _util.isString)(p)) {\n              throw new _util.FormatError('Invalid prefix in PageLabel dictionary.');\n            }\n\n            prefix = (0, _util.stringToPDFString)(p);\n          } else {\n            prefix = '';\n          }\n\n          if (labelDict.has('St')) {\n            var st = labelDict.get('St');\n\n            if (!(Number.isInteger(st) && st >= 1)) {\n              throw new _util.FormatError('Invalid start in PageLabel dictionary.');\n            }\n\n            currentIndex = st;\n          } else {\n            currentIndex = 1;\n          }\n        }\n\n        switch (style) {\n          case 'D':\n            currentLabel = currentIndex;\n            break;\n\n          case 'R':\n          case 'r':\n            currentLabel = (0, _util.toRomanNumerals)(currentIndex, style === 'r');\n            break;\n\n          case 'A':\n          case 'a':\n            var LIMIT = 26;\n            var A_UPPER_CASE = 0x41,\n                A_LOWER_CASE = 0x61;\n            var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE;\n            var letterIndex = currentIndex - 1;\n            var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n            var charBuf = [];\n\n            for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n              charBuf.push(character);\n            }\n\n            currentLabel = charBuf.join('');\n            break;\n\n          default:\n            if (style) {\n              throw new _util.FormatError(\"Invalid style \\\"\".concat(style, \"\\\" in PageLabel dictionary.\"));\n            }\n\n            currentLabel = '';\n        }\n\n        pageLabels[i] = prefix + currentLabel;\n        currentIndex++;\n      }\n\n      return pageLabels;\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      var promises = [];\n      this.fontCache.forEach(function (promise) {\n        promises.push(promise);\n      });\n      return Promise.all(promises).then(function (translatedFonts) {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = translatedFonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var translatedFont = _step.value;\n\n            if (translatedFont.loadedName === id) {\n              translatedFont.fallback(handler);\n              return;\n            }\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      var _this = this;\n\n      this.pageKidsCountCache.clear();\n      var promises = [];\n      this.fontCache.forEach(function (promise) {\n        promises.push(promise);\n      });\n      return Promise.all(promises).then(function (translatedFonts) {\n        for (var i = 0, ii = translatedFonts.length; i < ii; i++) {\n          var font = translatedFonts[i].dict;\n          delete font.translated;\n        }\n\n        _this.fontCache.clear();\n\n        _this.builtInCMapCache.clear();\n      });\n    }\n  }, {\n    key: \"getPageDict\",\n    value: function getPageDict(pageIndex) {\n      var capability = (0, _util.createPromiseCapability)();\n      var nodesToVisit = [this.catDict.getRaw('Pages')];\n      var xref = this.xref,\n          pageKidsCountCache = this.pageKidsCountCache;\n      var count,\n          currentPageIndex = 0;\n\n      function next() {\n        var _loop = function _loop() {\n          var currentNode = nodesToVisit.pop();\n\n          if ((0, _primitives.isRef)(currentNode)) {\n            count = pageKidsCountCache.get(currentNode);\n\n            if (count > 0 && currentPageIndex + count < pageIndex) {\n              currentPageIndex += count;\n              return \"continue\";\n            }\n\n            xref.fetchAsync(currentNode).then(function (obj) {\n              if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) {\n                if (pageIndex === currentPageIndex) {\n                  if (currentNode && !pageKidsCountCache.has(currentNode)) {\n                    pageKidsCountCache.put(currentNode, 1);\n                  }\n\n                  capability.resolve([obj, currentNode]);\n                } else {\n                  currentPageIndex++;\n                  next();\n                }\n\n                return;\n              }\n\n              nodesToVisit.push(obj);\n              next();\n            }, capability.reject);\n            return {\n              v: void 0\n            };\n          }\n\n          if (!(0, _primitives.isDict)(currentNode)) {\n            capability.reject(new _util.FormatError('Page dictionary kid reference points to wrong type of object.'));\n            return {\n              v: void 0\n            };\n          }\n\n          count = currentNode.get('Count');\n\n          if (Number.isInteger(count) && count >= 0) {\n            var objId = currentNode.objId;\n\n            if (objId && !pageKidsCountCache.has(objId)) {\n              pageKidsCountCache.put(objId, count);\n            }\n\n            if (currentPageIndex + count <= pageIndex) {\n              currentPageIndex += count;\n              return \"continue\";\n            }\n          }\n\n          var kids = currentNode.get('Kids');\n\n          if (!Array.isArray(kids)) {\n            if ((0, _primitives.isName)(currentNode.get('Type'), 'Page') || !currentNode.has('Type') && currentNode.has('Contents')) {\n              if (currentPageIndex === pageIndex) {\n                capability.resolve([currentNode, null]);\n                return {\n                  v: void 0\n                };\n              }\n\n              currentPageIndex++;\n              return \"continue\";\n            }\n\n            capability.reject(new _util.FormatError('Page dictionary kids object is not an array.'));\n            return {\n              v: void 0\n            };\n          }\n\n          for (var last = kids.length - 1; last >= 0; last--) {\n            nodesToVisit.push(kids[last]);\n          }\n        };\n\n        while (nodesToVisit.length) {\n          var _ret = _loop();\n\n          switch (_ret) {\n            case \"continue\":\n              continue;\n\n            default:\n              if (_typeof(_ret) === \"object\") return _ret.v;\n          }\n        }\n\n        capability.reject(new Error(\"Page index \".concat(pageIndex, \" not found.\")));\n      }\n\n      next();\n      return capability.promise;\n    }\n  }, {\n    key: \"getPageIndex\",\n    value: function getPageIndex(pageRef) {\n      var xref = this.xref;\n\n      function pagesBeforeRef(kidRef) {\n        var total = 0,\n            parentRef;\n        return xref.fetchAsync(kidRef).then(function (node) {\n          if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) {\n            throw new _util.FormatError('The reference does not point to a /Page dictionary.');\n          }\n\n          if (!node) {\n            return null;\n          }\n\n          if (!(0, _primitives.isDict)(node)) {\n            throw new _util.FormatError('Node must be a dictionary.');\n          }\n\n          parentRef = node.getRaw('Parent');\n          return node.getAsync('Parent');\n        }).then(function (parent) {\n          if (!parent) {\n            return null;\n          }\n\n          if (!(0, _primitives.isDict)(parent)) {\n            throw new _util.FormatError('Parent must be a dictionary.');\n          }\n\n          return parent.getAsync('Kids');\n        }).then(function (kids) {\n          if (!kids) {\n            return null;\n          }\n\n          var kidPromises = [];\n          var found = false;\n\n          for (var i = 0, ii = kids.length; i < ii; i++) {\n            var kid = kids[i];\n\n            if (!(0, _primitives.isRef)(kid)) {\n              throw new _util.FormatError('Kid must be a reference.');\n            }\n\n            if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n              found = true;\n              break;\n            }\n\n            kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n              if (!(0, _primitives.isDict)(kid)) {\n                throw new _util.FormatError('Kid node must be a dictionary.');\n              }\n\n              if (kid.has('Count')) {\n                total += kid.get('Count');\n              } else {\n                total++;\n              }\n            }));\n          }\n\n          if (!found) {\n            throw new _util.FormatError('Kid reference not found in parent\\'s kids.');\n          }\n\n          return Promise.all(kidPromises).then(function () {\n            return [total, parentRef];\n          });\n        });\n      }\n\n      var total = 0;\n\n      function next(ref) {\n        return pagesBeforeRef(ref).then(function (args) {\n          if (!args) {\n            return total;\n          }\n\n          var _args = _slicedToArray(args, 2),\n              count = _args[0],\n              parentRef = _args[1];\n\n          total += count;\n          return next(parentRef);\n        });\n      }\n\n      return next(pageRef);\n    }\n  }, {\n    key: \"metadata\",\n    get: function get() {\n      var streamRef = this.catDict.getRaw('Metadata');\n\n      if (!(0, _primitives.isRef)(streamRef)) {\n        return (0, _util.shadow)(this, 'metadata', null);\n      }\n\n      var suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n      var stream = this.xref.fetch(streamRef, suppressEncryption);\n      var metadata;\n\n      if (stream && (0, _primitives.isDict)(stream.dict)) {\n        var type = stream.dict.get('Type');\n        var subtype = stream.dict.get('Subtype');\n\n        if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) {\n          try {\n            metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n          } catch (e) {\n            if (e instanceof _util.MissingDataException) {\n              throw e;\n            }\n\n            (0, _util.info)('Skipping invalid metadata.');\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'metadata', metadata);\n    }\n  }, {\n    key: \"toplevelPagesDict\",\n    get: function get() {\n      var pagesObj = this.catDict.get('Pages');\n\n      if (!(0, _primitives.isDict)(pagesObj)) {\n        throw new _util.FormatError('Invalid top-level pages dictionary.');\n      }\n\n      return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj);\n    }\n  }, {\n    key: \"documentOutline\",\n    get: function get() {\n      var obj = null;\n\n      try {\n        obj = this._readDocumentOutline();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read document outline.');\n      }\n\n      return (0, _util.shadow)(this, 'documentOutline', obj);\n    }\n  }, {\n    key: \"permissions\",\n    get: function get() {\n      var permissions = null;\n\n      try {\n        permissions = this._readPermissions();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read permissions.');\n      }\n\n      return (0, _util.shadow)(this, 'permissions', permissions);\n    }\n  }, {\n    key: \"numPages\",\n    get: function get() {\n      var obj = this.toplevelPagesDict.get('Count');\n\n      if (!Number.isInteger(obj)) {\n        throw new _util.FormatError('Page count in top-level pages dictionary is not an integer.');\n      }\n\n      return (0, _util.shadow)(this, 'numPages', obj);\n    }\n  }, {\n    key: \"destinations\",\n    get: function get() {\n      var obj = this._readDests(),\n          dests = Object.create(null);\n\n      if (obj instanceof NameTree) {\n        var names = obj.getAll();\n\n        for (var name in names) {\n          dests[name] = fetchDestination(names[name]);\n        }\n      } else if (obj instanceof _primitives.Dict) {\n        obj.forEach(function (key, value) {\n          if (value) {\n            dests[key] = fetchDestination(value);\n          }\n        });\n      }\n\n      return (0, _util.shadow)(this, 'destinations', dests);\n    }\n  }, {\n    key: \"pageLabels\",\n    get: function get() {\n      var obj = null;\n\n      try {\n        obj = this._readPageLabels();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read page labels.');\n      }\n\n      return (0, _util.shadow)(this, 'pageLabels', obj);\n    }\n  }, {\n    key: \"pageMode\",\n    get: function get() {\n      var obj = this.catDict.get('PageMode');\n      var pageMode = 'UseNone';\n\n      if ((0, _primitives.isName)(obj)) {\n        switch (obj.name) {\n          case 'UseNone':\n          case 'UseOutlines':\n          case 'UseThumbs':\n          case 'FullScreen':\n          case 'UseOC':\n          case 'UseAttachments':\n            pageMode = obj.name;\n        }\n      }\n\n      return (0, _util.shadow)(this, 'pageMode', pageMode);\n    }\n  }, {\n    key: \"openActionDestination\",\n    get: function get() {\n      var obj = this.catDict.get('OpenAction');\n      var openActionDest = null;\n\n      if ((0, _primitives.isDict)(obj)) {\n        var destDict = new _primitives.Dict(this.xref);\n        destDict.set('A', obj);\n        var resultObj = {\n          url: null,\n          dest: null\n        };\n        Catalog.parseDestDictionary({\n          destDict: destDict,\n          resultObj: resultObj\n        });\n\n        if (Array.isArray(resultObj.dest)) {\n          openActionDest = resultObj.dest;\n        }\n      } else if (Array.isArray(obj)) {\n        openActionDest = obj;\n      }\n\n      return (0, _util.shadow)(this, 'openActionDestination', openActionDest);\n    }\n  }, {\n    key: \"attachments\",\n    get: function get() {\n      var obj = this.catDict.get('Names');\n      var attachments = null;\n\n      if (obj && obj.has('EmbeddedFiles')) {\n        var nameTree = new NameTree(obj.getRaw('EmbeddedFiles'), this.xref);\n        var names = nameTree.getAll();\n\n        for (var name in names) {\n          var fs = new FileSpec(names[name], this.xref);\n\n          if (!attachments) {\n            attachments = Object.create(null);\n          }\n\n          attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n        }\n      }\n\n      return (0, _util.shadow)(this, 'attachments', attachments);\n    }\n  }, {\n    key: \"javaScript\",\n    get: function get() {\n      var obj = this.catDict.get('Names');\n      var javaScript = null;\n\n      function appendIfJavaScriptDict(jsDict) {\n        var type = jsDict.get('S');\n\n        if (!(0, _primitives.isName)(type, 'JavaScript')) {\n          return;\n        }\n\n        var js = jsDict.get('JS');\n\n        if ((0, _primitives.isStream)(js)) {\n          js = (0, _util.bytesToString)(js.getBytes());\n        } else if (!(0, _util.isString)(js)) {\n          return;\n        }\n\n        if (!javaScript) {\n          javaScript = [];\n        }\n\n        javaScript.push((0, _util.stringToPDFString)(js));\n      }\n\n      if (obj && obj.has('JavaScript')) {\n        var nameTree = new NameTree(obj.getRaw('JavaScript'), this.xref);\n        var names = nameTree.getAll();\n\n        for (var name in names) {\n          var jsDict = names[name];\n\n          if ((0, _primitives.isDict)(jsDict)) {\n            appendIfJavaScriptDict(jsDict);\n          }\n        }\n      }\n\n      var openActionDict = this.catDict.get('OpenAction');\n\n      if ((0, _primitives.isDict)(openActionDict, 'Action')) {\n        var actionType = openActionDict.get('S');\n\n        if ((0, _primitives.isName)(actionType, 'Named')) {\n          var action = openActionDict.get('N');\n\n          if ((0, _primitives.isName)(action, 'Print')) {\n            if (!javaScript) {\n              javaScript = [];\n            }\n\n            javaScript.push('print({});');\n          }\n        } else {\n          appendIfJavaScriptDict(openActionDict);\n        }\n      }\n\n      return (0, _util.shadow)(this, 'javaScript', javaScript);\n    }\n  }], [{\n    key: \"parseDestDictionary\",\n    value: function parseDestDictionary(params) {\n      function addDefaultProtocolToUrl(url) {\n        return url.startsWith('www.') ? \"http://\".concat(url) : url;\n      }\n\n      function tryConvertUrlEncoding(url) {\n        try {\n          return (0, _util.stringToUTF8String)(url);\n        } catch (e) {\n          return url;\n        }\n      }\n\n      var destDict = params.destDict;\n\n      if (!(0, _primitives.isDict)(destDict)) {\n        (0, _util.warn)('parseDestDictionary: `destDict` must be a dictionary.');\n        return;\n      }\n\n      var resultObj = params.resultObj;\n\n      if (_typeof(resultObj) !== 'object') {\n        (0, _util.warn)('parseDestDictionary: `resultObj` must be an object.');\n        return;\n      }\n\n      var docBaseUrl = params.docBaseUrl || null;\n      var action = destDict.get('A'),\n          url,\n          dest;\n\n      if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) {\n        action = destDict.get('Dest');\n      }\n\n      if ((0, _primitives.isDict)(action)) {\n        var actionType = action.get('S');\n\n        if (!(0, _primitives.isName)(actionType)) {\n          (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.');\n          return;\n        }\n\n        var actionName = actionType.name;\n\n        switch (actionName) {\n          case 'URI':\n            url = action.get('URI');\n\n            if ((0, _primitives.isName)(url)) {\n              url = '/' + url.name;\n            } else if ((0, _util.isString)(url)) {\n              url = addDefaultProtocolToUrl(url);\n            }\n\n            break;\n\n          case 'GoTo':\n            dest = action.get('D');\n            break;\n\n          case 'Launch':\n          case 'GoToR':\n            var urlDict = action.get('F');\n\n            if ((0, _primitives.isDict)(urlDict)) {\n              url = urlDict.get('F') || null;\n            } else if ((0, _util.isString)(urlDict)) {\n              url = urlDict;\n            }\n\n            var remoteDest = action.get('D');\n\n            if (remoteDest) {\n              if ((0, _primitives.isName)(remoteDest)) {\n                remoteDest = remoteDest.name;\n              }\n\n              if ((0, _util.isString)(url)) {\n                var baseUrl = url.split('#')[0];\n\n                if ((0, _util.isString)(remoteDest)) {\n                  url = baseUrl + '#' + remoteDest;\n                } else if (Array.isArray(remoteDest)) {\n                  url = baseUrl + '#' + JSON.stringify(remoteDest);\n                }\n              }\n            }\n\n            var newWindow = action.get('NewWindow');\n\n            if ((0, _util.isBool)(newWindow)) {\n              resultObj.newWindow = newWindow;\n            }\n\n            break;\n\n          case 'Named':\n            var namedAction = action.get('N');\n\n            if ((0, _primitives.isName)(namedAction)) {\n              resultObj.action = namedAction.name;\n            }\n\n            break;\n\n          case 'JavaScript':\n            var jsAction = action.get('JS');\n            var js;\n\n            if ((0, _primitives.isStream)(jsAction)) {\n              js = (0, _util.bytesToString)(jsAction.getBytes());\n            } else if ((0, _util.isString)(jsAction)) {\n              js = jsAction;\n            }\n\n            if (js) {\n              var URL_OPEN_METHODS = ['app.launchURL', 'window.open'];\n              var regex = new RegExp('^\\\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\\\.') + ')\\\\((?:\\'|\\\")([^\\'\\\"]*)(?:\\'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))', 'i');\n              var jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n\n              if (jsUrl && jsUrl[2]) {\n                url = jsUrl[2];\n\n                if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') {\n                  resultObj.newWindow = true;\n                }\n\n                break;\n              }\n            }\n\n          default:\n            (0, _util.warn)(\"parseDestDictionary: unsupported action type \\\"\".concat(actionName, \"\\\".\"));\n            break;\n        }\n      } else if (destDict.has('Dest')) {\n        dest = destDict.get('Dest');\n      }\n\n      if ((0, _util.isString)(url)) {\n        url = tryConvertUrlEncoding(url);\n        var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n\n        if (absoluteUrl) {\n          resultObj.url = absoluteUrl.href;\n        }\n\n        resultObj.unsafeUrl = url;\n      }\n\n      if (dest) {\n        if ((0, _primitives.isName)(dest)) {\n          dest = dest.name;\n        }\n\n        if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n          resultObj.dest = dest;\n        }\n      }\n    }\n  }]);\n\n  return Catalog;\n}();\n\nexports.Catalog = Catalog;\n\nvar XRef = function XRefClosure() {\n  function XRef(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this.xrefstms = Object.create(null);\n    this.cache = [];\n    this.stats = {\n      streamTypes: [],\n      fontTypes: []\n    };\n  }\n\n  XRef.prototype = {\n    setStartXRef: function XRef_setStartXRef(startXRef) {\n      this.startXRefQueue = [startXRef];\n    },\n    parse: function XRef_parse(recoveryMode) {\n      var trailerDict;\n\n      if (!recoveryMode) {\n        trailerDict = this.readXRef();\n      } else {\n        (0, _util.warn)('Indexing all PDF objects');\n        trailerDict = this.indexObjects();\n      }\n\n      trailerDict.assignXref(this);\n      this.trailer = trailerDict;\n      var encrypt;\n\n      try {\n        encrypt = trailerDict.get('Encrypt');\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"XRef.parse - Invalid \\\"Encrypt\\\" reference: \\\"\".concat(ex, \"\\\".\"));\n      }\n\n      if ((0, _primitives.isDict)(encrypt)) {\n        var ids = trailerDict.get('ID');\n        var fileId = ids && ids.length ? ids[0] : '';\n        encrypt.suppressEncryption = true;\n        this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n      }\n\n      var root;\n\n      try {\n        root = trailerDict.get('Root');\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"XRef.parse - Invalid \\\"Root\\\" reference: \\\"\".concat(ex, \"\\\".\"));\n      }\n\n      if ((0, _primitives.isDict)(root) && root.has('Pages')) {\n        this.root = root;\n      } else {\n        if (!recoveryMode) {\n          throw new _util.XRefParseException();\n        }\n\n        throw new _util.FormatError('Invalid root reference');\n      }\n    },\n    processXRefTable: function XRef_processXRefTable(parser) {\n      if (!('tableState' in this)) {\n        this.tableState = {\n          entryNum: 0,\n          streamPos: parser.lexer.stream.pos,\n          parserBuf1: parser.buf1,\n          parserBuf2: parser.buf2\n        };\n      }\n\n      var obj = this.readXRefTable(parser);\n\n      if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n        throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary');\n      }\n\n      var dict = parser.getObj();\n\n      if (!(0, _primitives.isDict)(dict) && dict.dict) {\n        dict = dict.dict;\n      }\n\n      if (!(0, _primitives.isDict)(dict)) {\n        throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary');\n      }\n\n      delete this.tableState;\n      return dict;\n    },\n    readXRefTable: function XRef_readXRefTable(parser) {\n      var stream = parser.lexer.stream;\n      var tableState = this.tableState;\n      stream.pos = tableState.streamPos;\n      parser.buf1 = tableState.parserBuf1;\n      parser.buf2 = tableState.parserBuf2;\n      var obj;\n\n      while (true) {\n        if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n          if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) {\n            break;\n          }\n\n          tableState.firstEntryNum = obj;\n          tableState.entryCount = parser.getObj();\n        }\n\n        var first = tableState.firstEntryNum;\n        var count = tableState.entryCount;\n\n        if (!Number.isInteger(first) || !Number.isInteger(count)) {\n          throw new _util.FormatError('Invalid XRef table: wrong types in subsection header');\n        }\n\n        for (var i = tableState.entryNum; i < count; i++) {\n          tableState.streamPos = stream.pos;\n          tableState.entryNum = i;\n          tableState.parserBuf1 = parser.buf1;\n          tableState.parserBuf2 = parser.buf2;\n          var entry = {};\n          entry.offset = parser.getObj();\n          entry.gen = parser.getObj();\n          var type = parser.getObj();\n\n          if ((0, _primitives.isCmd)(type, 'f')) {\n            entry.free = true;\n          } else if ((0, _primitives.isCmd)(type, 'n')) {\n            entry.uncompressed = true;\n          }\n\n          if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n            throw new _util.FormatError(\"Invalid entry in XRef subsection: \".concat(first, \", \").concat(count));\n          }\n\n          if (i === 0 && entry.free && first === 1) {\n            first = 0;\n          }\n\n          if (!this.entries[i + first]) {\n            this.entries[i + first] = entry;\n          }\n        }\n\n        tableState.entryNum = 0;\n        tableState.streamPos = stream.pos;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        delete tableState.firstEntryNum;\n        delete tableState.entryCount;\n      }\n\n      if (this.entries[0] && !this.entries[0].free) {\n        throw new _util.FormatError('Invalid XRef table: unexpected first object');\n      }\n\n      return obj;\n    },\n    processXRefStream: function XRef_processXRefStream(stream) {\n      if (!('streamState' in this)) {\n        var streamParameters = stream.dict;\n        var byteWidths = streamParameters.get('W');\n        var range = streamParameters.get('Index');\n\n        if (!range) {\n          range = [0, streamParameters.get('Size')];\n        }\n\n        this.streamState = {\n          entryRanges: range,\n          byteWidths: byteWidths,\n          entryNum: 0,\n          streamPos: stream.pos\n        };\n      }\n\n      this.readXRefStream(stream);\n      delete this.streamState;\n      return stream.dict;\n    },\n    readXRefStream: function XRef_readXRefStream(stream) {\n      var i, j;\n      var streamState = this.streamState;\n      stream.pos = streamState.streamPos;\n      var byteWidths = streamState.byteWidths;\n      var typeFieldWidth = byteWidths[0];\n      var offsetFieldWidth = byteWidths[1];\n      var generationFieldWidth = byteWidths[2];\n      var entryRanges = streamState.entryRanges;\n\n      while (entryRanges.length > 0) {\n        var first = entryRanges[0];\n        var n = entryRanges[1];\n\n        if (!Number.isInteger(first) || !Number.isInteger(n)) {\n          throw new _util.FormatError(\"Invalid XRef range fields: \".concat(first, \", \").concat(n));\n        }\n\n        if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n          throw new _util.FormatError(\"Invalid XRef entry fields length: \".concat(first, \", \").concat(n));\n        }\n\n        for (i = streamState.entryNum; i < n; ++i) {\n          streamState.entryNum = i;\n          streamState.streamPos = stream.pos;\n          var type = 0,\n              offset = 0,\n              generation = 0;\n\n          for (j = 0; j < typeFieldWidth; ++j) {\n            type = type << 8 | stream.getByte();\n          }\n\n          if (typeFieldWidth === 0) {\n            type = 1;\n          }\n\n          for (j = 0; j < offsetFieldWidth; ++j) {\n            offset = offset << 8 | stream.getByte();\n          }\n\n          for (j = 0; j < generationFieldWidth; ++j) {\n            generation = generation << 8 | stream.getByte();\n          }\n\n          var entry = {};\n          entry.offset = offset;\n          entry.gen = generation;\n\n          switch (type) {\n            case 0:\n              entry.free = true;\n              break;\n\n            case 1:\n              entry.uncompressed = true;\n              break;\n\n            case 2:\n              break;\n\n            default:\n              throw new _util.FormatError(\"Invalid XRef entry type: \".concat(type));\n          }\n\n          if (!this.entries[first + i]) {\n            this.entries[first + i] = entry;\n          }\n        }\n\n        streamState.entryNum = 0;\n        streamState.streamPos = stream.pos;\n        entryRanges.splice(0, 2);\n      }\n    },\n    indexObjects: function XRef_indexObjects() {\n      var TAB = 0x9,\n          LF = 0xA,\n          CR = 0xD,\n          SPACE = 0x20;\n      var PERCENT = 0x25,\n          LT = 0x3C;\n\n      function readToken(data, offset) {\n        var token = '',\n            ch = data[offset];\n\n        while (ch !== LF && ch !== CR && ch !== LT) {\n          if (++offset >= data.length) {\n            break;\n          }\n\n          token += String.fromCharCode(ch);\n          ch = data[offset];\n        }\n\n        return token;\n      }\n\n      function skipUntil(data, offset, what) {\n        var length = what.length,\n            dataLength = data.length;\n        var skipped = 0;\n\n        while (offset < dataLength) {\n          var i = 0;\n\n          while (i < length && data[offset + i] === what[i]) {\n            ++i;\n          }\n\n          if (i >= length) {\n            break;\n          }\n\n          offset++;\n          skipped++;\n        }\n\n        return skipped;\n      }\n\n      var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n      var endobjRegExp = /\\bendobj[\\b\\s]$/;\n      var nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n      var CHECK_CONTENT_LENGTH = 25;\n      var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n      var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n      var objBytes = new Uint8Array([111, 98, 106]);\n      var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n      this.entries.length = 0;\n      var stream = this.stream;\n      stream.pos = 0;\n      var buffer = stream.getBytes();\n      var position = stream.start,\n          length = buffer.length;\n      var trailers = [],\n          xrefStms = [];\n\n      while (position < length) {\n        var ch = buffer[position];\n\n        if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n          ++position;\n          continue;\n        }\n\n        if (ch === PERCENT) {\n          do {\n            ++position;\n\n            if (position >= length) {\n              break;\n            }\n\n            ch = buffer[position];\n          } while (ch !== LF && ch !== CR);\n\n          continue;\n        }\n\n        var token = readToken(buffer, position);\n        var m;\n\n        if (token.startsWith('xref') && (token.length === 4 || /\\s/.test(token[4]))) {\n          position += skipUntil(buffer, position, trailerBytes);\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else if (m = objRegExp.exec(token)) {\n          var num = m[1] | 0,\n              gen = m[2] | 0;\n\n          if (typeof this.entries[num] === 'undefined') {\n            this.entries[num] = {\n              offset: position - stream.start,\n              gen: gen,\n              uncompressed: true\n            };\n          }\n\n          var contentLength = void 0,\n              startPos = position + token.length;\n\n          while (startPos < buffer.length) {\n            var endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n            contentLength = endPos - position;\n            var checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n            var tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n            if (endobjRegExp.test(tokenStr)) {\n              break;\n            } else {\n              var objToken = nestedObjRegExp.exec(tokenStr);\n\n              if (objToken && objToken[1]) {\n                (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n                contentLength -= objToken[1].length;\n                break;\n              }\n            }\n\n            startPos = endPos;\n          }\n\n          var content = buffer.subarray(position, position + contentLength);\n          var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n          if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n            xrefStms.push(position - stream.start);\n            this.xrefstms[position - stream.start] = 1;\n          }\n\n          position += contentLength;\n        } else if (token.startsWith('trailer') && (token.length === 7 || /\\s/.test(token[7]))) {\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else {\n          position += token.length + 1;\n        }\n      }\n\n      var i, ii;\n\n      for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n        this.startXRefQueue.push(xrefStms[i]);\n        this.readXRef(true);\n      }\n\n      var trailerDict;\n\n      for (i = 0, ii = trailers.length; i < ii; ++i) {\n        stream.pos = trailers[i];\n        var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);\n        var obj = parser.getObj();\n\n        if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n          continue;\n        }\n\n        var dict = parser.getObj();\n\n        if (!(0, _primitives.isDict)(dict)) {\n          continue;\n        }\n\n        var rootDict = void 0;\n\n        try {\n          rootDict = dict.get('Root');\n        } catch (ex) {\n          if (ex instanceof _util.MissingDataException) {\n            throw ex;\n          }\n\n          continue;\n        }\n\n        if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) {\n          continue;\n        }\n\n        if (dict.has('ID')) {\n          return dict;\n        }\n\n        trailerDict = dict;\n      }\n\n      if (trailerDict) {\n        return trailerDict;\n      }\n\n      throw new _util.InvalidPDFException('Invalid PDF structure');\n    },\n    readXRef: function XRef_readXRef(recoveryMode) {\n      var stream = this.stream;\n      var startXRefParsedCache = Object.create(null);\n\n      try {\n        while (this.startXRefQueue.length) {\n          var startXRef = this.startXRefQueue[0];\n\n          if (startXRefParsedCache[startXRef]) {\n            (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.');\n            this.startXRefQueue.shift();\n            continue;\n          }\n\n          startXRefParsedCache[startXRef] = true;\n          stream.pos = startXRef + stream.start;\n          var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n          var obj = parser.getObj();\n          var dict;\n\n          if ((0, _primitives.isCmd)(obj, 'xref')) {\n            dict = this.processXRefTable(parser);\n\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            obj = dict.get('XRefStm');\n\n            if (Number.isInteger(obj)) {\n              var pos = obj;\n\n              if (!(pos in this.xrefstms)) {\n                this.xrefstms[pos] = 1;\n                this.startXRefQueue.push(pos);\n              }\n            }\n          } else if (Number.isInteger(obj)) {\n            if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) {\n              throw new _util.FormatError('Invalid XRef stream');\n            }\n\n            dict = this.processXRefStream(obj);\n\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            if (!dict) {\n              throw new _util.FormatError('Failed to read XRef stream');\n            }\n          } else {\n            throw new _util.FormatError('Invalid XRef stream header');\n          }\n\n          obj = dict.get('Prev');\n\n          if (Number.isInteger(obj)) {\n            this.startXRefQueue.push(obj);\n          } else if ((0, _primitives.isRef)(obj)) {\n            this.startXRefQueue.push(obj.num);\n          }\n\n          this.startXRefQueue.shift();\n        }\n\n        return this.topDict;\n      } catch (e) {\n        if (e instanceof _util.MissingDataException) {\n          throw e;\n        }\n\n        (0, _util.info)('(while reading XRef): ' + e);\n      }\n\n      if (recoveryMode) {\n        return;\n      }\n\n      throw new _util.XRefParseException();\n    },\n    getEntry: function XRef_getEntry(i) {\n      var xrefEntry = this.entries[i];\n\n      if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n        return xrefEntry;\n      }\n\n      return null;\n    },\n    fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n      if (!(0, _primitives.isRef)(obj)) {\n        return obj;\n      }\n\n      return this.fetch(obj, suppressEncryption);\n    },\n    fetch: function XRef_fetch(ref, suppressEncryption) {\n      if (!(0, _primitives.isRef)(ref)) {\n        throw new Error('ref object is not a reference');\n      }\n\n      var num = ref.num;\n\n      if (num in this.cache) {\n        var cacheEntry = this.cache[num];\n\n        if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n          cacheEntry.objId = ref.toString();\n        }\n\n        return cacheEntry;\n      }\n\n      var xrefEntry = this.getEntry(num);\n\n      if (xrefEntry === null) {\n        return this.cache[num] = null;\n      }\n\n      if (xrefEntry.uncompressed) {\n        xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n      } else {\n        xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      }\n\n      if ((0, _primitives.isDict)(xrefEntry)) {\n        xrefEntry.objId = ref.toString();\n      } else if ((0, _primitives.isStream)(xrefEntry)) {\n        xrefEntry.dict.objId = ref.toString();\n      }\n\n      return xrefEntry;\n    },\n    fetchUncompressed: function fetchUncompressed(ref, xrefEntry) {\n      var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var gen = ref.gen;\n      var num = ref.num;\n\n      if (xrefEntry.gen !== gen) {\n        throw new _util.XRefEntryException(\"Inconsistent generation in XRef: \".concat(ref));\n      }\n\n      var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n      var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n      var obj1 = parser.getObj();\n      var obj2 = parser.getObj();\n      var obj3 = parser.getObj();\n\n      if (!Number.isInteger(obj1)) {\n        obj1 = parseInt(obj1, 10);\n      }\n\n      if (!Number.isInteger(obj2)) {\n        obj2 = parseInt(obj2, 10);\n      }\n\n      if (obj1 !== num || obj2 !== gen || !(0, _primitives.isCmd)(obj3)) {\n        throw new _util.XRefEntryException(\"Bad (uncompressed) XRef entry: \".concat(ref));\n      }\n\n      if (obj3.cmd !== 'obj') {\n        if (obj3.cmd.startsWith('obj')) {\n          num = parseInt(obj3.cmd.substring(3), 10);\n\n          if (!Number.isNaN(num)) {\n            return num;\n          }\n        }\n\n        throw new _util.XRefEntryException(\"Bad (uncompressed) XRef entry: \".concat(ref));\n      }\n\n      if (this.encrypt && !suppressEncryption) {\n        xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n      } else {\n        xrefEntry = parser.getObj();\n      }\n\n      if (!(0, _primitives.isStream)(xrefEntry)) {\n        this.cache[num] = xrefEntry;\n      }\n\n      return xrefEntry;\n    },\n    fetchCompressed: function fetchCompressed(ref, xrefEntry) {\n      var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var tableOffset = xrefEntry.offset;\n      var stream = this.fetch(new _primitives.Ref(tableOffset, 0));\n\n      if (!(0, _primitives.isStream)(stream)) {\n        throw new _util.FormatError('bad ObjStm stream');\n      }\n\n      var first = stream.dict.get('First');\n      var n = stream.dict.get('N');\n\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new _util.FormatError('invalid first and n parameters for ObjStm stream');\n      }\n\n      var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);\n      parser.allowStreams = true;\n      var i,\n          entries = [],\n          num,\n          nums = [];\n\n      for (i = 0; i < n; ++i) {\n        num = parser.getObj();\n\n        if (!Number.isInteger(num)) {\n          throw new _util.FormatError(\"invalid object number in the ObjStm stream: \".concat(num));\n        }\n\n        nums.push(num);\n        var offset = parser.getObj();\n\n        if (!Number.isInteger(offset)) {\n          throw new _util.FormatError(\"invalid object offset in the ObjStm stream: \".concat(offset));\n        }\n      }\n\n      for (i = 0; i < n; ++i) {\n        entries.push(parser.getObj());\n\n        if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) {\n          parser.shift();\n        }\n\n        num = nums[i];\n        var entry = this.entries[num];\n\n        if (entry && entry.offset === tableOffset && entry.gen === i) {\n          this.cache[num] = entries[i];\n        }\n      }\n\n      xrefEntry = entries[xrefEntry.gen];\n\n      if (xrefEntry === undefined) {\n        throw new _util.XRefEntryException(\"Bad (compressed) XRef entry: \".concat(ref));\n      }\n\n      return xrefEntry;\n    },\n    fetchIfRefAsync: function () {\n      var _fetchIfRefAsync = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(obj, suppressEncryption) {\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if ((0, _primitives.isRef)(obj)) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\", obj);\n\n              case 2:\n                return _context.abrupt(\"return\", this.fetchAsync(obj, suppressEncryption));\n\n              case 3:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function fetchIfRefAsync(_x, _x2) {\n        return _fetchIfRefAsync.apply(this, arguments);\n      }\n\n      return fetchIfRefAsync;\n    }(),\n    fetchAsync: function () {\n      var _fetchAsync = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee2(ref, suppressEncryption) {\n        return _regenerator.default.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _context2.prev = 0;\n                return _context2.abrupt(\"return\", this.fetch(ref, suppressEncryption));\n\n              case 4:\n                _context2.prev = 4;\n                _context2.t0 = _context2[\"catch\"](0);\n\n                if (_context2.t0 instanceof _util.MissingDataException) {\n                  _context2.next = 8;\n                  break;\n                }\n\n                throw _context2.t0;\n\n              case 8:\n                _context2.next = 10;\n                return this.pdfManager.requestRange(_context2.t0.begin, _context2.t0.end);\n\n              case 10:\n                return _context2.abrupt(\"return\", this.fetchAsync(ref, suppressEncryption));\n\n              case 11:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this, [[0, 4]]);\n      }));\n\n      function fetchAsync(_x3, _x4) {\n        return _fetchAsync.apply(this, arguments);\n      }\n\n      return fetchAsync;\n    }(),\n    getCatalogObj: function XRef_getCatalogObj() {\n      return this.root;\n    }\n  };\n  return XRef;\n}();\n\nexports.XRef = XRef;\n\nvar NameOrNumberTree =\n/*#__PURE__*/\nfunction () {\n  function NameOrNumberTree(root, xref, type) {\n    _classCallCheck(this, NameOrNumberTree);\n\n    if (this.constructor === NameOrNumberTree) {\n      (0, _util.unreachable)('Cannot initialize NameOrNumberTree.');\n    }\n\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  _createClass(NameOrNumberTree, [{\n    key: \"getAll\",\n    value: function getAll() {\n      var dict = Object.create(null);\n\n      if (!this.root) {\n        return dict;\n      }\n\n      var xref = this.xref;\n      var processed = new _primitives.RefSet();\n      processed.put(this.root);\n      var queue = [this.root];\n\n      while (queue.length > 0) {\n        var obj = xref.fetchIfRef(queue.shift());\n\n        if (!(0, _primitives.isDict)(obj)) {\n          continue;\n        }\n\n        if (obj.has('Kids')) {\n          var kids = obj.get('Kids');\n\n          for (var i = 0, ii = kids.length; i < ii; i++) {\n            var kid = kids[i];\n\n            if (processed.has(kid)) {\n              throw new _util.FormatError(\"Duplicate entry in \\\"\".concat(this._type, \"\\\" tree.\"));\n            }\n\n            queue.push(kid);\n            processed.put(kid);\n          }\n\n          continue;\n        }\n\n        var entries = obj.get(this._type);\n\n        if (Array.isArray(entries)) {\n          for (var _i2 = 0, _ii = entries.length; _i2 < _ii; _i2 += 2) {\n            dict[xref.fetchIfRef(entries[_i2])] = xref.fetchIfRef(entries[_i2 + 1]);\n          }\n        }\n      }\n\n      return dict;\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      if (!this.root) {\n        return null;\n      }\n\n      var xref = this.xref;\n      var kidsOrEntries = xref.fetchIfRef(this.root);\n      var loopCount = 0;\n      var MAX_LEVELS = 10;\n\n      while (kidsOrEntries.has('Kids')) {\n        if (++loopCount > MAX_LEVELS) {\n          (0, _util.warn)(\"Search depth limit reached for \\\"\".concat(this._type, \"\\\" tree.\"));\n          return null;\n        }\n\n        var kids = kidsOrEntries.get('Kids');\n\n        if (!Array.isArray(kids)) {\n          return null;\n        }\n\n        var l = 0,\n            r = kids.length - 1;\n\n        while (l <= r) {\n          var m = l + r >> 1;\n          var kid = xref.fetchIfRef(kids[m]);\n          var limits = kid.get('Limits');\n\n          if (key < xref.fetchIfRef(limits[0])) {\n            r = m - 1;\n          } else if (key > xref.fetchIfRef(limits[1])) {\n            l = m + 1;\n          } else {\n            kidsOrEntries = xref.fetchIfRef(kids[m]);\n            break;\n          }\n        }\n\n        if (l > r) {\n          return null;\n        }\n      }\n\n      var entries = kidsOrEntries.get(this._type);\n\n      if (Array.isArray(entries)) {\n        var _l = 0,\n            _r = entries.length - 2;\n\n        while (_l <= _r) {\n          var tmp = _l + _r >> 1,\n              _m = tmp + (tmp & 1);\n\n          var currentKey = xref.fetchIfRef(entries[_m]);\n\n          if (key < currentKey) {\n            _r = _m - 2;\n          } else if (key > currentKey) {\n            _l = _m + 2;\n          } else {\n            return xref.fetchIfRef(entries[_m + 1]);\n          }\n        }\n\n        (0, _util.info)(\"Falling back to an exhaustive search, for key \\\"\".concat(key, \"\\\", \") + \"in \\\"\".concat(this._type, \"\\\" tree.\"));\n\n        for (var _m2 = 0, mm = entries.length; _m2 < mm; _m2 += 2) {\n          var _currentKey = xref.fetchIfRef(entries[_m2]);\n\n          if (_currentKey === key) {\n            (0, _util.warn)(\"The \\\"\".concat(key, \"\\\" key was found at an incorrect, \") + \"i.e. out-of-order, position in \\\"\".concat(this._type, \"\\\" tree.\"));\n            return xref.fetchIfRef(entries[_m2 + 1]);\n          }\n        }\n      }\n\n      return null;\n    }\n  }]);\n\n  return NameOrNumberTree;\n}();\n\nvar NameTree =\n/*#__PURE__*/\nfunction (_NameOrNumberTree) {\n  _inherits(NameTree, _NameOrNumberTree);\n\n  function NameTree(root, xref) {\n    _classCallCheck(this, NameTree);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(NameTree).call(this, root, xref, 'Names'));\n  }\n\n  return NameTree;\n}(NameOrNumberTree);\n\nvar NumberTree =\n/*#__PURE__*/\nfunction (_NameOrNumberTree2) {\n  _inherits(NumberTree, _NameOrNumberTree2);\n\n  function NumberTree(root, xref) {\n    _classCallCheck(this, NumberTree);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(NumberTree).call(this, root, xref, 'Nums'));\n  }\n\n  return NumberTree;\n}(NameOrNumberTree);\n\nvar FileSpec = function FileSpecClosure() {\n  function FileSpec(root, xref) {\n    if (!root || !(0, _primitives.isDict)(root)) {\n      return;\n    }\n\n    this.xref = xref;\n    this.root = root;\n\n    if (root.has('FS')) {\n      this.fs = root.get('FS');\n    }\n\n    this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : '';\n\n    if (root.has('RF')) {\n      (0, _util.warn)('Related file specifications are not supported');\n    }\n\n    this.contentAvailable = true;\n\n    if (!root.has('EF')) {\n      this.contentAvailable = false;\n      (0, _util.warn)('Non-embedded file specifications are not supported');\n    }\n  }\n\n  function pickPlatformItem(dict) {\n    if (dict.has('UF')) {\n      return dict.get('UF');\n    } else if (dict.has('F')) {\n      return dict.get('F');\n    } else if (dict.has('Unix')) {\n      return dict.get('Unix');\n    } else if (dict.has('Mac')) {\n      return dict.get('Mac');\n    } else if (dict.has('DOS')) {\n      return dict.get('DOS');\n    }\n\n    return null;\n  }\n\n  FileSpec.prototype = {\n    get filename() {\n      if (!this._filename && this.root) {\n        var filename = pickPlatformItem(this.root) || 'unnamed';\n        this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, '\\\\').replace(/\\\\\\//g, '/').replace(/\\\\/g, '/');\n      }\n\n      return this._filename;\n    },\n\n    get content() {\n      if (!this.contentAvailable) {\n        return null;\n      }\n\n      if (!this.contentRef && this.root) {\n        this.contentRef = pickPlatformItem(this.root.get('EF'));\n      }\n\n      var content = null;\n\n      if (this.contentRef) {\n        var xref = this.xref;\n        var fileObj = xref.fetchIfRef(this.contentRef);\n\n        if (fileObj && (0, _primitives.isStream)(fileObj)) {\n          content = fileObj.getBytes();\n        } else {\n          (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content');\n        }\n      } else {\n        (0, _util.warn)('Embedded file specification does not have a content');\n      }\n\n      return content;\n    },\n\n    get serializable() {\n      return {\n        filename: this.filename,\n        content: this.content\n      };\n    }\n\n  };\n  return FileSpec;\n}();\n\nexports.FileSpec = FileSpec;\n\nvar ObjectLoader = function () {\n  function mayHaveChildren(value) {\n    return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || Array.isArray(value) || (0, _primitives.isStream)(value);\n  }\n\n  function addChildren(node, nodesToVisit) {\n    if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) {\n      var dict = (0, _primitives.isDict)(node) ? node : node.dict;\n      var dictKeys = dict.getKeys();\n\n      for (var i = 0, ii = dictKeys.length; i < ii; i++) {\n        var rawValue = dict.getRaw(dictKeys[i]);\n\n        if (mayHaveChildren(rawValue)) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n    } else if (Array.isArray(node)) {\n      for (var _i3 = 0, _ii2 = node.length; _i3 < _ii2; _i3++) {\n        var value = node[_i3];\n\n        if (mayHaveChildren(value)) {\n          nodesToVisit.push(value);\n        }\n      }\n    }\n  }\n\n  function ObjectLoader(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n    this.capability = null;\n  }\n\n  ObjectLoader.prototype = {\n    load: function load() {\n      this.capability = (0, _util.createPromiseCapability)();\n\n      if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) {\n        this.capability.resolve();\n        return this.capability.promise;\n      }\n\n      var keys = this.keys,\n          dict = this.dict;\n      this.refSet = new _primitives.RefSet();\n      var nodesToVisit = [];\n\n      for (var i = 0, ii = keys.length; i < ii; i++) {\n        var rawValue = dict.getRaw(keys[i]);\n\n        if (rawValue !== undefined) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n\n      this._walk(nodesToVisit);\n\n      return this.capability.promise;\n    },\n    _walk: function _walk(nodesToVisit) {\n      var _this2 = this;\n\n      var nodesToRevisit = [];\n      var pendingRequests = [];\n\n      while (nodesToVisit.length) {\n        var currentNode = nodesToVisit.pop();\n\n        if ((0, _primitives.isRef)(currentNode)) {\n          if (this.refSet.has(currentNode)) {\n            continue;\n          }\n\n          try {\n            this.refSet.put(currentNode);\n            currentNode = this.xref.fetch(currentNode);\n          } catch (ex) {\n            if (!(ex instanceof _util.MissingDataException)) {\n              throw ex;\n            }\n\n            nodesToRevisit.push(currentNode);\n            pendingRequests.push({\n              begin: ex.begin,\n              end: ex.end\n            });\n          }\n        }\n\n        if (currentNode && currentNode.getBaseStreams) {\n          var baseStreams = currentNode.getBaseStreams();\n          var foundMissingData = false;\n\n          for (var i = 0, ii = baseStreams.length; i < ii; i++) {\n            var stream = baseStreams[i];\n\n            if (stream.getMissingChunks && stream.getMissingChunks().length) {\n              foundMissingData = true;\n              pendingRequests.push({\n                begin: stream.start,\n                end: stream.end\n              });\n            }\n          }\n\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n\n        addChildren(currentNode, nodesToVisit);\n      }\n\n      if (pendingRequests.length) {\n        this.xref.stream.manager.requestRanges(pendingRequests).then(function () {\n          for (var _i4 = 0, _ii3 = nodesToRevisit.length; _i4 < _ii3; _i4++) {\n            var node = nodesToRevisit[_i4];\n\n            if ((0, _primitives.isRef)(node)) {\n              _this2.refSet.remove(node);\n            }\n          }\n\n          _this2._walk(nodesToRevisit);\n        }, this.capability.reject);\n        return;\n      }\n\n      this.refSet = null;\n      this.capability.resolve();\n    }\n  };\n  return ObjectLoader;\n}();\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar EOF = {};\nexports.EOF = EOF;\n\nvar Name = function NameClosure() {\n  function Name(name) {\n    this.name = name;\n  }\n\n  Name.prototype = {};\n  var nameCache = Object.create(null);\n\n  Name.get = function Name_get(name) {\n    var nameValue = nameCache[name];\n    return nameValue ? nameValue : nameCache[name] = new Name(name);\n  };\n\n  return Name;\n}();\n\nexports.Name = Name;\n\nvar Cmd = function CmdClosure() {\n  function Cmd(cmd) {\n    this.cmd = cmd;\n  }\n\n  Cmd.prototype = {};\n  var cmdCache = Object.create(null);\n\n  Cmd.get = function Cmd_get(cmd) {\n    var cmdValue = cmdCache[cmd];\n    return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n  };\n\n  return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nvar Dict = function DictClosure() {\n  var nonSerializable = function nonSerializableClosure() {\n    return nonSerializable;\n  };\n\n  function Dict(xref) {\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable;\n  }\n\n  Dict.prototype = {\n    assignXref: function Dict_assignXref(newXref) {\n      this.xref = newXref;\n    },\n    get: function Dict_get(key1, key2, key3) {\n      var value;\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n        return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n      }\n\n      if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n        return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n      }\n\n      value = this._map[key3] || null;\n      return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n    },\n    getAsync: function Dict_getAsync(key1, key2, key3) {\n      var value;\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n        if (xref) {\n          return xref.fetchIfRefAsync(value, suppressEncryption);\n        }\n\n        return Promise.resolve(value);\n      }\n\n      if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n        if (xref) {\n          return xref.fetchIfRefAsync(value, suppressEncryption);\n        }\n\n        return Promise.resolve(value);\n      }\n\n      value = this._map[key3] || null;\n\n      if (xref) {\n        return xref.fetchIfRefAsync(value, suppressEncryption);\n      }\n\n      return Promise.resolve(value);\n    },\n    getArray: function Dict_getArray(key1, key2, key3) {\n      var value = this.get(key1, key2, key3);\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (!Array.isArray(value) || !xref) {\n        return value;\n      }\n\n      value = value.slice();\n\n      for (var i = 0, ii = value.length; i < ii; i++) {\n        if (!isRef(value[i])) {\n          continue;\n        }\n\n        value[i] = xref.fetch(value[i], suppressEncryption);\n      }\n\n      return value;\n    },\n    getRaw: function Dict_getRaw(key) {\n      return this._map[key];\n    },\n    getKeys: function Dict_getKeys() {\n      return Object.keys(this._map);\n    },\n    set: function Dict_set(key, value) {\n      this._map[key] = value;\n    },\n    has: function Dict_has(key) {\n      return key in this._map;\n    },\n    forEach: function Dict_forEach(callback) {\n      for (var key in this._map) {\n        callback(key, this.get(key));\n      }\n    }\n  };\n  Dict.empty = new Dict(null);\n\n  Dict.merge = function (xref, dictArray) {\n    var mergedDict = new Dict(xref);\n\n    for (var i = 0, ii = dictArray.length; i < ii; i++) {\n      var dict = dictArray[i];\n\n      if (!isDict(dict)) {\n        continue;\n      }\n\n      for (var keyName in dict._map) {\n        if (mergedDict._map[keyName] !== undefined) {\n          continue;\n        }\n\n        mergedDict._map[keyName] = dict._map[keyName];\n      }\n    }\n\n    return mergedDict;\n  };\n\n  return Dict;\n}();\n\nexports.Dict = Dict;\n\nvar Ref = function RefClosure() {\n  function Ref(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  Ref.prototype = {\n    toString: function Ref_toString() {\n      if (this.gen !== 0) {\n        return \"\".concat(this.num, \"R\").concat(this.gen);\n      }\n\n      return \"\".concat(this.num, \"R\");\n    }\n  };\n  return Ref;\n}();\n\nexports.Ref = Ref;\n\nvar RefSet = function RefSetClosure() {\n  function RefSet() {\n    this.dict = Object.create(null);\n  }\n\n  RefSet.prototype = {\n    has: function RefSet_has(ref) {\n      return ref.toString() in this.dict;\n    },\n    put: function RefSet_put(ref) {\n      this.dict[ref.toString()] = true;\n    },\n    remove: function RefSet_remove(ref) {\n      delete this.dict[ref.toString()];\n    }\n  };\n  return RefSet;\n}();\n\nexports.RefSet = RefSet;\n\nvar RefSetCache = function RefSetCacheClosure() {\n  function RefSetCache() {\n    this.dict = Object.create(null);\n  }\n\n  RefSetCache.prototype = {\n    get: function RefSetCache_get(ref) {\n      return this.dict[ref.toString()];\n    },\n    has: function RefSetCache_has(ref) {\n      return ref.toString() in this.dict;\n    },\n    put: function RefSetCache_put(ref, obj) {\n      this.dict[ref.toString()] = obj;\n    },\n    putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n      this.dict[ref.toString()] = this.get(aliasRef);\n    },\n    forEach: function RefSetCache_forEach(fn, thisArg) {\n      for (var i in this.dict) {\n        fn.call(thisArg, this.dict[i]);\n      }\n    },\n    clear: function RefSetCache_clear() {\n      this.dict = Object.create(null);\n    }\n  };\n  return RefSetCache;\n}();\n\nexports.RefSetCache = RefSetCache;\n\nfunction isEOF(v) {\n  return v === EOF;\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));\n}\n\nfunction isRef(v) {\n  return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction isStream(v) {\n  return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;\n}\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ccitt_stream = __w_pdfjs_require__(158);\n\nvar _jbig2_stream = __w_pdfjs_require__(160);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _jpx_stream = __w_pdfjs_require__(165);\n\nvar MAX_LENGTH_TO_CACHE = 1000;\nvar MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n  var bytesLength = bytes.length;\n  var a = 1,\n      b = 0;\n\n  for (var i = 0; i < bytesLength; ++i) {\n    a += bytes[i] & 0xFF;\n    b += a;\n  }\n\n  return b % 65521 << 16 | a % 65521;\n}\n\nvar Parser = function ParserClosure() {\n  function Parser(lexer, allowStreams, xref, recoveryMode) {\n    this.lexer = lexer;\n    this.allowStreams = allowStreams;\n    this.xref = xref;\n    this.recoveryMode = recoveryMode || false;\n    this.imageCache = Object.create(null);\n    this.refill();\n  }\n\n  Parser.prototype = {\n    refill: function Parser_refill() {\n      this.buf1 = this.lexer.getObj();\n      this.buf2 = this.lexer.getObj();\n    },\n    shift: function Parser_shift() {\n      if ((0, _primitives.isCmd)(this.buf2, 'ID')) {\n        this.buf1 = this.buf2;\n        this.buf2 = null;\n      } else {\n        this.buf1 = this.buf2;\n        this.buf2 = this.lexer.getObj();\n      }\n    },\n    tryShift: function Parser_tryShift() {\n      try {\n        this.shift();\n        return true;\n      } catch (e) {\n        if (e instanceof _util.MissingDataException) {\n          throw e;\n        }\n\n        return false;\n      }\n    },\n    getObj: function Parser_getObj(cipherTransform) {\n      var buf1 = this.buf1;\n      this.shift();\n\n      if (buf1 instanceof _primitives.Cmd) {\n        switch (buf1.cmd) {\n          case 'BI':\n            return this.makeInlineImage(cipherTransform);\n\n          case '[':\n            var array = [];\n\n            while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) {\n              array.push(this.getObj(cipherTransform));\n            }\n\n            if ((0, _primitives.isEOF)(this.buf1)) {\n              if (!this.recoveryMode) {\n                throw new _util.FormatError('End of file inside array');\n              }\n\n              return array;\n            }\n\n            this.shift();\n            return array;\n\n          case '<<':\n            var dict = new _primitives.Dict(this.xref);\n\n            while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) {\n              if (!(0, _primitives.isName)(this.buf1)) {\n                (0, _util.info)('Malformed dictionary: key must be a name object');\n                this.shift();\n                continue;\n              }\n\n              var key = this.buf1.name;\n              this.shift();\n\n              if ((0, _primitives.isEOF)(this.buf1)) {\n                break;\n              }\n\n              dict.set(key, this.getObj(cipherTransform));\n            }\n\n            if ((0, _primitives.isEOF)(this.buf1)) {\n              if (!this.recoveryMode) {\n                throw new _util.FormatError('End of file inside dictionary');\n              }\n\n              return dict;\n            }\n\n            if ((0, _primitives.isCmd)(this.buf2, 'stream')) {\n              return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n            }\n\n            this.shift();\n            return dict;\n\n          default:\n            return buf1;\n        }\n      }\n\n      if (Number.isInteger(buf1)) {\n        var num = buf1;\n\n        if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {\n          var ref = new _primitives.Ref(num, this.buf1);\n          this.shift();\n          this.shift();\n          return ref;\n        }\n\n        return num;\n      }\n\n      if ((0, _util.isString)(buf1)) {\n        var str = buf1;\n\n        if (cipherTransform) {\n          str = cipherTransform.decryptString(str);\n        }\n\n        return str;\n      }\n\n      return buf1;\n    },\n    findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {\n      var E = 0x45,\n          I = 0x49,\n          SPACE = 0x20,\n          LF = 0xA,\n          CR = 0xD;\n      var n = 10,\n          NUL = 0x0;\n      var startPos = stream.pos,\n          state = 0,\n          ch,\n          maybeEIPos;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (state === 0) {\n          state = ch === E ? 1 : 0;\n        } else if (state === 1) {\n          state = ch === I ? 2 : 0;\n        } else {\n          (0, _util.assert)(state === 2);\n\n          if (ch === SPACE || ch === LF || ch === CR) {\n            maybeEIPos = stream.pos;\n            var followingBytes = stream.peekBytes(n);\n\n            for (var i = 0, ii = followingBytes.length; i < ii; i++) {\n              ch = followingBytes[i];\n\n              if (ch === NUL && followingBytes[i + 1] !== NUL) {\n                continue;\n              }\n\n              if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) {\n                state = 0;\n                break;\n              }\n            }\n\n            if (state === 2) {\n              break;\n            }\n          } else {\n            state = 0;\n          }\n        }\n      }\n\n      if (ch === -1) {\n        (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker');\n\n        if (maybeEIPos) {\n          (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n          stream.skip(-(stream.pos - maybeEIPos));\n        }\n      }\n\n      var endOffset = 4;\n      stream.skip(-endOffset);\n      ch = stream.peekByte();\n      stream.skip(endOffset);\n\n      if (!(0, _util.isSpace)(ch)) {\n        endOffset--;\n      }\n\n      return stream.pos - endOffset - startPos;\n    },\n    findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {\n      var startPos = stream.pos,\n          foundEOI = false,\n          b,\n          markerLength,\n          length;\n\n      while ((b = stream.getByte()) !== -1) {\n        if (b !== 0xFF) {\n          continue;\n        }\n\n        switch (stream.getByte()) {\n          case 0x00:\n            break;\n\n          case 0xFF:\n            stream.skip(-1);\n            break;\n\n          case 0xD9:\n            foundEOI = true;\n            break;\n\n          case 0xC0:\n          case 0xC1:\n          case 0xC2:\n          case 0xC3:\n          case 0xC5:\n          case 0xC6:\n          case 0xC7:\n          case 0xC9:\n          case 0xCA:\n          case 0xCB:\n          case 0xCD:\n          case 0xCE:\n          case 0xCF:\n          case 0xC4:\n          case 0xCC:\n          case 0xDA:\n          case 0xDB:\n          case 0xDC:\n          case 0xDD:\n          case 0xDE:\n          case 0xDF:\n          case 0xE0:\n          case 0xE1:\n          case 0xE2:\n          case 0xE3:\n          case 0xE4:\n          case 0xE5:\n          case 0xE6:\n          case 0xE7:\n          case 0xE8:\n          case 0xE9:\n          case 0xEA:\n          case 0xEB:\n          case 0xEC:\n          case 0xED:\n          case 0xEE:\n          case 0xEF:\n          case 0xFE:\n            markerLength = stream.getUint16();\n\n            if (markerLength > 2) {\n              stream.skip(markerLength - 2);\n            } else {\n              stream.skip(-2);\n            }\n\n            break;\n        }\n\n        if (foundEOI) {\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (b === -1) {\n        (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {\n      var TILDE = 0x7E,\n          GT = 0x3E;\n      var startPos = stream.pos,\n          ch,\n          length;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (ch === TILDE && stream.peekByte() === GT) {\n          stream.skip();\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (ch === -1) {\n        (0, _util.warn)('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {\n      var GT = 0x3E;\n      var startPos = stream.pos,\n          ch,\n          length;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (ch === GT) {\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (ch === -1) {\n        (0, _util.warn)('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {\n      var E = 0x45,\n          I = 0x49;\n      var state = 0,\n          ch;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (state === 0) {\n          state = ch === E ? 1 : 0;\n        } else if (state === 1) {\n          state = ch === I ? 2 : 0;\n        } else if (state === 2) {\n          break;\n        }\n      }\n    },\n    makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n      var dict = new _primitives.Dict(this.xref),\n          dictLength;\n\n      while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) {\n        if (!(0, _primitives.isName)(this.buf1)) {\n          throw new _util.FormatError('Dictionary key must be a name object');\n        }\n\n        var key = this.buf1.name;\n        this.shift();\n\n        if ((0, _primitives.isEOF)(this.buf1)) {\n          break;\n        }\n\n        dict.set(key, this.getObj(cipherTransform));\n      }\n\n      if (lexer.beginInlineImagePos !== -1) {\n        dictLength = stream.pos - lexer.beginInlineImagePos;\n      }\n\n      var filter = dict.get('Filter', 'F'),\n          filterName;\n\n      if ((0, _primitives.isName)(filter)) {\n        filterName = filter.name;\n      } else if (Array.isArray(filter)) {\n        var filterZero = this.xref.fetchIfRef(filter[0]);\n\n        if ((0, _primitives.isName)(filterZero)) {\n          filterName = filterZero.name;\n        }\n      }\n\n      var startPos = stream.pos,\n          length;\n\n      if (filterName === 'DCTDecode' || filterName === 'DCT') {\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n      } else if (filterName === 'ASCII85Decode' || filterName === 'A85') {\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n      } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') {\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n      } else {\n        length = this.findDefaultInlineStreamEnd(stream);\n      }\n\n      var imageStream = stream.makeSubStream(startPos, length, dict);\n      var cacheKey;\n\n      if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n        var imageBytes = imageStream.getBytes();\n        imageStream.reset();\n        var initialStreamPos = stream.pos;\n        stream.pos = lexer.beginInlineImagePos;\n        var dictBytes = stream.getBytes(dictLength);\n        stream.pos = initialStreamPos;\n        cacheKey = computeAdler32(imageBytes) + '_' + computeAdler32(dictBytes);\n        var cacheEntry = this.imageCache[cacheKey];\n\n        if (cacheEntry !== undefined) {\n          this.buf2 = _primitives.Cmd.get('EI');\n          this.shift();\n          cacheEntry.reset();\n          return cacheEntry;\n        }\n      }\n\n      if (cipherTransform) {\n        imageStream = cipherTransform.createStream(imageStream, length);\n      }\n\n      imageStream = this.filter(imageStream, dict, length);\n      imageStream.dict = dict;\n\n      if (cacheKey !== undefined) {\n        imageStream.cacheKey = 'inline_' + length + '_' + cacheKey;\n        this.imageCache[cacheKey] = imageStream;\n      }\n\n      this.buf2 = _primitives.Cmd.get('EI');\n      this.shift();\n      return imageStream;\n    },\n    _findStreamLength: function _findStreamLength(startPos, signature) {\n      var stream = this.lexer.stream;\n      stream.pos = startPos;\n      var SCAN_BLOCK_LENGTH = 2048;\n      var signatureLength = signature.length;\n\n      while (stream.pos < stream.end) {\n        var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n        var scanLength = scanBytes.length - signatureLength;\n\n        if (scanLength <= 0) {\n          break;\n        }\n\n        var pos = 0;\n\n        while (pos < scanLength) {\n          var j = 0;\n\n          while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n            j++;\n          }\n\n          if (j >= signatureLength) {\n            stream.pos += pos;\n            return stream.pos - startPos;\n          }\n\n          pos++;\n        }\n\n        stream.pos += scanLength;\n      }\n\n      return -1;\n    },\n    makeStream: function Parser_makeStream(dict, cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n      lexer.skipToNextLine();\n      var startPos = stream.pos - 1;\n      var length = dict.get('Length');\n\n      if (!Number.isInteger(length)) {\n        (0, _util.info)('Bad ' + length + ' attribute in stream');\n        length = 0;\n      }\n\n      stream.pos = startPos + length;\n      lexer.nextChar();\n\n      if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) {\n        this.shift();\n      } else {\n        var ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n\n        var actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n        if (actualLength < 0) {\n          var MAX_TRUNCATION = 1;\n\n          for (var i = 1; i <= MAX_TRUNCATION; i++) {\n            var end = ENDSTREAM_SIGNATURE.length - i;\n            var TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n            var maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n            if (maybeLength >= 0) {\n              var lastByte = stream.peekBytes(end + 1)[end];\n\n              if (!(0, _util.isSpace)(lastByte)) {\n                break;\n              }\n\n              (0, _util.info)(\"Found \\\"\".concat((0, _util.bytesToString)(TRUNCATED_SIGNATURE), \"\\\" when \") + 'searching for endstream command.');\n              actualLength = maybeLength;\n              break;\n            }\n          }\n\n          if (actualLength < 0) {\n            throw new _util.FormatError('Missing endstream command.');\n          }\n        }\n\n        length = actualLength;\n        lexer.nextChar();\n        this.shift();\n        this.shift();\n      }\n\n      this.shift();\n      stream = stream.makeSubStream(startPos, length, dict);\n\n      if (cipherTransform) {\n        stream = cipherTransform.createStream(stream, length);\n      }\n\n      stream = this.filter(stream, dict, length);\n      stream.dict = dict;\n      return stream;\n    },\n    filter: function Parser_filter(stream, dict, length) {\n      var filter = dict.get('Filter', 'F');\n      var params = dict.get('DecodeParms', 'DP');\n\n      if ((0, _primitives.isName)(filter)) {\n        if (Array.isArray(params)) {\n          (0, _util.warn)('/DecodeParms should not contain an Array, ' + 'when /Filter contains a Name.');\n        }\n\n        return this.makeFilter(stream, filter.name, length, params);\n      }\n\n      var maybeLength = length;\n\n      if (Array.isArray(filter)) {\n        var filterArray = filter;\n        var paramsArray = params;\n\n        for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n          filter = this.xref.fetchIfRef(filterArray[i]);\n\n          if (!(0, _primitives.isName)(filter)) {\n            throw new _util.FormatError('Bad filter name: ' + filter);\n          }\n\n          params = null;\n\n          if (Array.isArray(paramsArray) && i in paramsArray) {\n            params = this.xref.fetchIfRef(paramsArray[i]);\n          }\n\n          stream = this.makeFilter(stream, filter.name, maybeLength, params);\n          maybeLength = null;\n        }\n      }\n\n      return stream;\n    },\n    makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {\n      if (maybeLength === 0) {\n        (0, _util.warn)('Empty \"' + name + '\" stream.');\n        return new _stream.NullStream();\n      }\n\n      try {\n        var xrefStreamStats = this.xref.stats.streamTypes;\n\n        if (name === 'FlateDecode' || name === 'Fl') {\n          xrefStreamStats[_util.StreamType.FLATE] = true;\n\n          if (params) {\n            return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n          }\n\n          return new _stream.FlateStream(stream, maybeLength);\n        }\n\n        if (name === 'LZWDecode' || name === 'LZW') {\n          xrefStreamStats[_util.StreamType.LZW] = true;\n          var earlyChange = 1;\n\n          if (params) {\n            if (params.has('EarlyChange')) {\n              earlyChange = params.get('EarlyChange');\n            }\n\n            return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n          }\n\n          return new _stream.LZWStream(stream, maybeLength, earlyChange);\n        }\n\n        if (name === 'DCTDecode' || name === 'DCT') {\n          xrefStreamStats[_util.StreamType.DCT] = true;\n          return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params);\n        }\n\n        if (name === 'JPXDecode' || name === 'JPX') {\n          xrefStreamStats[_util.StreamType.JPX] = true;\n          return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n        }\n\n        if (name === 'ASCII85Decode' || name === 'A85') {\n          xrefStreamStats[_util.StreamType.A85] = true;\n          return new _stream.Ascii85Stream(stream, maybeLength);\n        }\n\n        if (name === 'ASCIIHexDecode' || name === 'AHx') {\n          xrefStreamStats[_util.StreamType.AHX] = true;\n          return new _stream.AsciiHexStream(stream, maybeLength);\n        }\n\n        if (name === 'CCITTFaxDecode' || name === 'CCF') {\n          xrefStreamStats[_util.StreamType.CCF] = true;\n          return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n        }\n\n        if (name === 'RunLengthDecode' || name === 'RL') {\n          xrefStreamStats[_util.StreamType.RL] = true;\n          return new _stream.RunLengthStream(stream, maybeLength);\n        }\n\n        if (name === 'JBIG2Decode') {\n          xrefStreamStats[_util.StreamType.JBIG] = true;\n          return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n        }\n\n        (0, _util.warn)('filter \"' + name + '\" not supported yet');\n        return stream;\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Invalid stream: \\\"' + ex + '\\\"');\n        return new _stream.NullStream();\n      }\n    }\n  };\n  return Parser;\n}();\n\nexports.Parser = Parser;\n\nvar Lexer = function LexerClosure() {\n  function Lexer(stream, knownCommands) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n    this.knownCommands = knownCommands;\n    this.beginInlineImagePos = -1;\n  }\n\n  var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 2, 0, 2, 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, 2, 0, 2, 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, 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];\n\n  function toHexDigit(ch) {\n    if (ch >= 0x30 && ch <= 0x39) {\n      return ch & 0x0F;\n    }\n\n    if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n      return (ch & 0x0F) + 9;\n    }\n\n    return -1;\n  }\n\n  Lexer.prototype = {\n    nextChar: function Lexer_nextChar() {\n      return this.currentChar = this.stream.getByte();\n    },\n    peekChar: function Lexer_peekChar() {\n      return this.stream.peekByte();\n    },\n    getNumber: function Lexer_getNumber() {\n      var ch = this.currentChar;\n      var eNotation = false;\n      var divideBy = 0;\n      var sign = 0;\n\n      if (ch === 0x2D) {\n        sign = -1;\n        ch = this.nextChar();\n\n        if (ch === 0x2D) {\n          ch = this.nextChar();\n        }\n      } else if (ch === 0x2B) {\n        sign = 1;\n        ch = this.nextChar();\n      }\n\n      if (ch === 0x0A || ch === 0x0D) {\n        do {\n          ch = this.nextChar();\n        } while (ch === 0x0A || ch === 0x0D);\n      }\n\n      if (ch === 0x2E) {\n        divideBy = 10;\n        ch = this.nextChar();\n      }\n\n      if (ch < 0x30 || ch > 0x39) {\n        if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) {\n          (0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.');\n          return 0;\n        }\n\n        throw new _util.FormatError(\"Invalid number: \".concat(String.fromCharCode(ch), \" (charCode \").concat(ch, \")\"));\n      }\n\n      sign = sign || 1;\n      var baseValue = ch - 0x30;\n      var powerValue = 0;\n      var powerValueSign = 1;\n\n      while ((ch = this.nextChar()) >= 0) {\n        if (0x30 <= ch && ch <= 0x39) {\n          var currentDigit = ch - 0x30;\n\n          if (eNotation) {\n            powerValue = powerValue * 10 + currentDigit;\n          } else {\n            if (divideBy !== 0) {\n              divideBy *= 10;\n            }\n\n            baseValue = baseValue * 10 + currentDigit;\n          }\n        } else if (ch === 0x2E) {\n          if (divideBy === 0) {\n            divideBy = 1;\n          } else {\n            break;\n          }\n        } else if (ch === 0x2D) {\n          (0, _util.warn)('Badly formatted number');\n        } else if (ch === 0x45 || ch === 0x65) {\n          ch = this.peekChar();\n\n          if (ch === 0x2B || ch === 0x2D) {\n            powerValueSign = ch === 0x2D ? -1 : 1;\n            this.nextChar();\n          } else if (ch < 0x30 || ch > 0x39) {\n            break;\n          }\n\n          eNotation = true;\n        } else {\n          break;\n        }\n      }\n\n      if (divideBy !== 0) {\n        baseValue /= divideBy;\n      }\n\n      if (eNotation) {\n        baseValue *= Math.pow(10, powerValueSign * powerValue);\n      }\n\n      return sign * baseValue;\n    },\n    getString: function Lexer_getString() {\n      var numParen = 1;\n      var done = false;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      var ch = this.nextChar();\n\n      while (true) {\n        var charBuffered = false;\n\n        switch (ch | 0) {\n          case -1:\n            (0, _util.warn)('Unterminated string');\n            done = true;\n            break;\n\n          case 0x28:\n            ++numParen;\n            strBuf.push('(');\n            break;\n\n          case 0x29:\n            if (--numParen === 0) {\n              this.nextChar();\n              done = true;\n            } else {\n              strBuf.push(')');\n            }\n\n            break;\n\n          case 0x5C:\n            ch = this.nextChar();\n\n            switch (ch) {\n              case -1:\n                (0, _util.warn)('Unterminated string');\n                done = true;\n                break;\n\n              case 0x6E:\n                strBuf.push('\\n');\n                break;\n\n              case 0x72:\n                strBuf.push('\\r');\n                break;\n\n              case 0x74:\n                strBuf.push('\\t');\n                break;\n\n              case 0x62:\n                strBuf.push('\\b');\n                break;\n\n              case 0x66:\n                strBuf.push('\\f');\n                break;\n\n              case 0x5C:\n              case 0x28:\n              case 0x29:\n                strBuf.push(String.fromCharCode(ch));\n                break;\n\n              case 0x30:\n              case 0x31:\n              case 0x32:\n              case 0x33:\n              case 0x34:\n              case 0x35:\n              case 0x36:\n              case 0x37:\n                var x = ch & 0x0F;\n                ch = this.nextChar();\n                charBuffered = true;\n\n                if (ch >= 0x30 && ch <= 0x37) {\n                  x = (x << 3) + (ch & 0x0F);\n                  ch = this.nextChar();\n\n                  if (ch >= 0x30 && ch <= 0x37) {\n                    charBuffered = false;\n                    x = (x << 3) + (ch & 0x0F);\n                  }\n                }\n\n                strBuf.push(String.fromCharCode(x));\n                break;\n\n              case 0x0D:\n                if (this.peekChar() === 0x0A) {\n                  this.nextChar();\n                }\n\n                break;\n\n              case 0x0A:\n                break;\n\n              default:\n                strBuf.push(String.fromCharCode(ch));\n                break;\n            }\n\n            break;\n\n          default:\n            strBuf.push(String.fromCharCode(ch));\n            break;\n        }\n\n        if (done) {\n          break;\n        }\n\n        if (!charBuffered) {\n          ch = this.nextChar();\n        }\n      }\n\n      return strBuf.join('');\n    },\n    getName: function Lexer_getName() {\n      var ch, previousCh;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        if (ch === 0x23) {\n          ch = this.nextChar();\n\n          if (specialChars[ch]) {\n            (0, _util.warn)('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.');\n            strBuf.push('#');\n            break;\n          }\n\n          var x = toHexDigit(ch);\n\n          if (x !== -1) {\n            previousCh = ch;\n            ch = this.nextChar();\n            var x2 = toHexDigit(ch);\n\n            if (x2 === -1) {\n              (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.');\n              strBuf.push('#', String.fromCharCode(previousCh));\n\n              if (specialChars[ch]) {\n                break;\n              }\n\n              strBuf.push(String.fromCharCode(ch));\n              continue;\n            }\n\n            strBuf.push(String.fromCharCode(x << 4 | x2));\n          } else {\n            strBuf.push('#', String.fromCharCode(ch));\n          }\n        } else {\n          strBuf.push(String.fromCharCode(ch));\n        }\n      }\n\n      if (strBuf.length > 127) {\n        (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);\n      }\n\n      return _primitives.Name.get(strBuf.join(''));\n    },\n    getHexString: function Lexer_getHexString() {\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      var ch = this.currentChar;\n      var isFirstHex = true;\n      var firstDigit;\n      var secondDigit;\n\n      while (true) {\n        if (ch < 0) {\n          (0, _util.warn)('Unterminated hex string');\n          break;\n        } else if (ch === 0x3E) {\n          this.nextChar();\n          break;\n        } else if (specialChars[ch] === 1) {\n          ch = this.nextChar();\n          continue;\n        } else {\n          if (isFirstHex) {\n            firstDigit = toHexDigit(ch);\n\n            if (firstDigit === -1) {\n              (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n          } else {\n            secondDigit = toHexDigit(ch);\n\n            if (secondDigit === -1) {\n              (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n\n            strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n          }\n\n          isFirstHex = !isFirstHex;\n          ch = this.nextChar();\n        }\n      }\n\n      return strBuf.join('');\n    },\n    getObj: function Lexer_getObj() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch < 0) {\n          return _primitives.EOF;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (specialChars[ch] !== 1) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      switch (ch | 0) {\n        case 0x30:\n        case 0x31:\n        case 0x32:\n        case 0x33:\n        case 0x34:\n        case 0x35:\n        case 0x36:\n        case 0x37:\n        case 0x38:\n        case 0x39:\n        case 0x2B:\n        case 0x2D:\n        case 0x2E:\n          return this.getNumber();\n\n        case 0x28:\n          return this.getString();\n\n        case 0x2F:\n          return this.getName();\n\n        case 0x5B:\n          this.nextChar();\n          return _primitives.Cmd.get('[');\n\n        case 0x5D:\n          this.nextChar();\n          return _primitives.Cmd.get(']');\n\n        case 0x3C:\n          ch = this.nextChar();\n\n          if (ch === 0x3C) {\n            this.nextChar();\n            return _primitives.Cmd.get('<<');\n          }\n\n          return this.getHexString();\n\n        case 0x3E:\n          ch = this.nextChar();\n\n          if (ch === 0x3E) {\n            this.nextChar();\n            return _primitives.Cmd.get('>>');\n          }\n\n          return _primitives.Cmd.get('>');\n\n        case 0x7B:\n          this.nextChar();\n          return _primitives.Cmd.get('{');\n\n        case 0x7D:\n          this.nextChar();\n          return _primitives.Cmd.get('}');\n\n        case 0x29:\n          this.nextChar();\n          throw new _util.FormatError(\"Illegal character: \".concat(ch));\n      }\n\n      var str = String.fromCharCode(ch);\n      var knownCommands = this.knownCommands;\n      var knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        var possibleCommand = str + String.fromCharCode(ch);\n\n        if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n          break;\n        }\n\n        if (str.length === 128) {\n          throw new _util.FormatError(\"Command token too long: \".concat(str.length));\n        }\n\n        str = possibleCommand;\n        knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n      }\n\n      if (str === 'true') {\n        return true;\n      }\n\n      if (str === 'false') {\n        return false;\n      }\n\n      if (str === 'null') {\n        return null;\n      }\n\n      if (str === 'BI') {\n        this.beginInlineImagePos = this.stream.pos;\n      }\n\n      return _primitives.Cmd.get(str);\n    },\n    skipToNextLine: function Lexer_skipToNextLine() {\n      var ch = this.currentChar;\n\n      while (ch >= 0) {\n        if (ch === 0x0D) {\n          ch = this.nextChar();\n\n          if (ch === 0x0A) {\n            this.nextChar();\n          }\n\n          break;\n        } else if (ch === 0x0A) {\n          this.nextChar();\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n    }\n  };\n  return Lexer;\n}();\n\nexports.Lexer = Lexer;\nvar Linearization = {\n  create: function LinearizationCreate(stream) {\n    function getInt(name, allowZeroValue) {\n      var obj = linDict.get(name);\n\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n\n      throw new Error('The \"' + name + '\" parameter in the linearization ' + 'dictionary is invalid.');\n    }\n\n    function getHints() {\n      var hints = linDict.get('H'),\n          hintsLength,\n          item;\n\n      if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n        for (var index = 0; index < hintsLength; index++) {\n          if (!(Number.isInteger(item = hints[index]) && item > 0)) {\n            throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');\n          }\n        }\n\n        return hints;\n      }\n\n      throw new Error('Hint array in the linearization dictionary is invalid.');\n    }\n\n    var parser = new Parser(new Lexer(stream), false, null);\n    var obj1 = parser.getObj();\n    var obj2 = parser.getObj();\n    var obj3 = parser.getObj();\n    var linDict = parser.getObj();\n    var obj, length;\n\n    if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {\n      return null;\n    } else if ((length = getInt('L')) !== stream.length) {\n      throw new Error('The \"L\" parameter in the linearization dictionary ' + 'does not equal the stream length.');\n    }\n\n    return {\n      length: length,\n      hints: getHints(),\n      objectNumberFirst: getInt('O'),\n      endFirst: getInt('E'),\n      numPages: getInt('N'),\n      mainXRefEntriesOffset: getInt('T'),\n      pageFirst: linDict.has('P') ? getInt('P', true) : 0\n    };\n  }\n};\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar Stream = function StreamClosure() {\n  function Stream(arrayBuffer, start, length, dict) {\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  Stream.prototype = {\n    get length() {\n      return this.end - this.start;\n    },\n\n    get isEmpty() {\n      return this.length === 0;\n    },\n\n    getByte: function Stream_getByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.bytes[this.pos++];\n    },\n    getUint16: function Stream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    },\n    getInt32: function Stream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    getBytes: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        var _subarray = bytes.subarray(pos, strEnd);\n\n        return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n      }\n\n      var end = pos + length;\n\n      if (end > strEnd) {\n        end = strEnd;\n      }\n\n      this.pos = end;\n      var subarray = bytes.subarray(pos, end);\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    },\n    peekByte: function Stream_peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    },\n    peekBytes: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    skip: function Stream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    },\n    reset: function Stream_reset() {\n      this.pos = this.start;\n    },\n    moveStart: function Stream_moveStart() {\n      this.start = this.pos;\n    },\n    makeSubStream: function Stream_makeSubStream(start, length, dict) {\n      return new Stream(this.bytes.buffer, start, length, dict);\n    }\n  };\n  return Stream;\n}();\n\nexports.Stream = Stream;\n\nvar StringStream = function StringStreamClosure() {\n  function StringStream(str) {\n    var bytes = (0, _util.stringToBytes)(str);\n    Stream.call(this, bytes);\n  }\n\n  StringStream.prototype = Stream.prototype;\n  return StringStream;\n}();\n\nexports.StringStream = StringStream;\n\nvar DecodeStream = function DecodeStreamClosure() {\n  var emptyBuffer = new Uint8Array(0);\n\n  function DecodeStream(maybeMinBufferLength) {\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n\n    if (maybeMinBufferLength) {\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  DecodeStream.prototype = {\n    get isEmpty() {\n      while (!this.eof && this.bufferLength === 0) {\n        this.readBlock();\n      }\n\n      return this.bufferLength === 0;\n    },\n\n    ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n      var buffer = this.buffer;\n\n      if (requested <= buffer.byteLength) {\n        return buffer;\n      }\n\n      var size = this.minBufferLength;\n\n      while (size < requested) {\n        size *= 2;\n      }\n\n      var buffer2 = new Uint8Array(size);\n      buffer2.set(buffer);\n      return this.buffer = buffer2;\n    },\n    getByte: function DecodeStream_getByte() {\n      var pos = this.pos;\n\n      while (this.bufferLength <= pos) {\n        if (this.eof) {\n          return -1;\n        }\n\n        this.readBlock();\n      }\n\n      return this.buffer[this.pos++];\n    },\n    getUint16: function DecodeStream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    },\n    getInt32: function DecodeStream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    getBytes: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var end,\n          pos = this.pos;\n\n      if (length) {\n        this.ensureBuffer(pos + length);\n        end = pos + length;\n\n        while (!this.eof && this.bufferLength < end) {\n          this.readBlock();\n        }\n\n        var bufEnd = this.bufferLength;\n\n        if (end > bufEnd) {\n          end = bufEnd;\n        }\n      } else {\n        while (!this.eof) {\n          this.readBlock();\n        }\n\n        end = this.bufferLength;\n      }\n\n      this.pos = end;\n      var subarray = this.buffer.subarray(pos, end);\n      return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;\n    },\n    peekByte: function DecodeStream_peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    },\n    peekBytes: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n      var end = start + length;\n\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n\n      return new Stream(this.buffer, start, length, dict);\n    },\n    skip: function DecodeStream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    },\n    reset: function DecodeStream_reset() {\n      this.pos = 0;\n    },\n    getBaseStreams: function DecodeStream_getBaseStreams() {\n      if (this.str && this.str.getBaseStreams) {\n        return this.str.getBaseStreams();\n      }\n\n      return [];\n    }\n  };\n  return DecodeStream;\n}();\n\nexports.DecodeStream = DecodeStream;\n\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n  function StreamsSequenceStream(streams) {\n    this.streams = streams;\n    var maybeLength = 0;\n\n    for (var i = 0, ii = streams.length; i < ii; i++) {\n      var stream = streams[i];\n\n      if (stream instanceof DecodeStream) {\n        maybeLength += stream._rawMinBufferLength;\n      } else {\n        maybeLength += stream.length;\n      }\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n  StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n    var streams = this.streams;\n\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    var stream = streams.shift();\n    var chunk = stream.getBytes();\n    var bufferLength = this.bufferLength;\n    var newLength = bufferLength + chunk.length;\n    var buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  };\n\n  StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n    var baseStreams = [];\n\n    for (var i = 0, ii = this.streams.length; i < ii; i++) {\n      var stream = this.streams[i];\n\n      if (stream.getBaseStreams) {\n        baseStreams.push.apply(baseStreams, _toConsumableArray(stream.getBaseStreams()));\n      }\n    }\n\n    return baseStreams;\n  };\n\n  return StreamsSequenceStream;\n}();\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\nvar FlateStream = function FlateStreamClosure() {\n  var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n  var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n  var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n  var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n  var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\n  function FlateStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    var cmf = str.getByte();\n    var flg = str.getByte();\n\n    if (cmf === -1 || flg === -1) {\n      throw new _util.FormatError(\"Invalid header in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new _util.FormatError(\"Unknown compression method in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new _util.FormatError(\"Bad FCHECK in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if (flg & 0x20) {\n      throw new _util.FormatError(\"FDICT bit set in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n    var str = this.str;\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var b;\n\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad encoding in flate stream');\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    b = codeBuf & (1 << bits) - 1;\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    return b;\n  };\n\n  FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n    var str = this.str;\n    var codes = table[0];\n    var maxLen = table[1];\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var b;\n\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        break;\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    var code = codes[codeBuf & (1 << maxLen) - 1];\n    var codeLen = code >> 16;\n    var codeVal = code & 0xffff;\n\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new _util.FormatError('Bad encoding in flate stream');\n    }\n\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  };\n\n  FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n    var n = lengths.length;\n    var maxLen = 0;\n    var i;\n\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    var size = 1 << maxLen;\n    var codes = new Int32Array(size);\n\n    for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n      for (var val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          var code2 = 0;\n          var t = code;\n\n          for (i = 0; i < len; ++i) {\n            code2 = code2 << 1 | t & 1;\n            t >>= 1;\n          }\n\n          for (i = code2; i < size; i += skip) {\n            codes[i] = len << 16 | val;\n          }\n\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  };\n\n  FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n    var buffer, len;\n    var str = this.str;\n    var hdr = this.getBits(3);\n\n    if (hdr & 1) {\n      this.eof = true;\n    }\n\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      var b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      var blockLen = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      blockLen |= b << 8;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      var check = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      check |= b << 8;\n\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        throw new _util.FormatError('Bad uncompressed block length in flate stream');\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n      var bufferLength = this.bufferLength;\n      buffer = this.ensureBuffer(bufferLength + blockLen);\n      var end = bufferLength + blockLen;\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        for (var n = bufferLength; n < end; ++n) {\n          if ((b = str.getByte()) === -1) {\n            this.eof = true;\n            break;\n          }\n\n          buffer[n] = b;\n        }\n      }\n\n      return;\n    }\n\n    var litCodeTable;\n    var distCodeTable;\n\n    if (hdr === 1) {\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      var numLitCodes = this.getBits(5) + 257;\n      var numDistCodes = this.getBits(5) + 1;\n      var numCodeLenCodes = this.getBits(4) + 4;\n      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n      var i;\n\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n\n      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n      len = 0;\n      i = 0;\n      var codes = numLitCodes + numDistCodes;\n      var codeLengths = new Uint8Array(codes);\n      var bitsLength, bitsOffset, what;\n\n      while (i < codes) {\n        var code = this.getCode(codeLenCodeTab);\n\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        var repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      throw new _util.FormatError('Unknown block type in flate stream');\n    }\n\n    buffer = this.buffer;\n    var limit = buffer ? buffer.length : 0;\n    var pos = this.bufferLength;\n\n    while (true) {\n      var code1 = this.getCode(litCodeTable);\n\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n\n        buffer[pos++] = code1;\n        continue;\n      }\n\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      var code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      var dist = (code1 & 0xffff) + code2;\n\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n\n      for (var k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  };\n\n  return FlateStream;\n}();\n\nexports.FlateStream = FlateStream;\n\nvar PredictorStream = function PredictorStreamClosure() {\n  function PredictorStream(str, maybeLength, params) {\n    if (!(0, _primitives.isDict)(params)) {\n      return str;\n    }\n\n    var predictor = this.predictor = params.get('Predictor') || 1;\n\n    if (predictor <= 1) {\n      return str;\n    }\n\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new _util.FormatError(\"Unsupported predictor: \".concat(predictor));\n    }\n\n    if (predictor === 2) {\n      this.readBlock = this.readBlockTiff;\n    } else {\n      this.readBlock = this.readBlockPng;\n    }\n\n    this.str = str;\n    this.dict = str.dict;\n    var colors = this.colors = params.get('Colors') || 1;\n    var bits = this.bits = params.get('BitsPerComponent') || 8;\n    var columns = this.columns = params.get('Columns') || 1;\n    this.pixBytes = colors * bits + 7 >> 3;\n    this.rowBytes = columns * colors * bits + 7 >> 3;\n    DecodeStream.call(this, maybeLength);\n    return this;\n  }\n\n  PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n  PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n    var rowBytes = this.rowBytes;\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n    var bits = this.bits;\n    var colors = this.colors;\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    var inbuf = 0,\n        outbuf = 0;\n    var inbits = 0,\n        outbits = 0;\n    var pos = bufferLength;\n    var i;\n\n    if (bits === 1 && colors === 1) {\n      for (i = 0; i < rowBytes; ++i) {\n        var c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      var bytesPerPixel = colors * 2;\n\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; i += 2) {\n        var sum = ((rawBytes[i] & 0xFF) << 8) + (rawBytes[i + 1] & 0xFF) + ((buffer[pos - bytesPerPixel] & 0xFF) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xFF);\n        buffer[pos++] = sum >> 8 & 0xFF;\n        buffer[pos++] = sum & 0xFF;\n      }\n    } else {\n      var compArray = new Uint8Array(colors + 1);\n      var bitMask = (1 << bits) - 1;\n      var j = 0,\n          k = bufferLength;\n      var columns = this.columns;\n\n      for (i = 0; i < columns; ++i) {\n        for (var kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = inbuf << 8 | rawBytes[j++] & 0xFF;\n            inbits += 8;\n          }\n\n          compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n          inbits -= bits;\n          outbuf = outbuf << bits | compArray[kk];\n          outbits += bits;\n\n          if (outbits >= 8) {\n            buffer[k++] = outbuf >> outbits - 8 & 0xFF;\n            outbits -= 8;\n          }\n        }\n      }\n\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n      }\n    }\n\n    this.bufferLength += rowBytes;\n  };\n\n  PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n    var rowBytes = this.rowBytes;\n    var pixBytes = this.pixBytes;\n    var predictor = this.str.getByte();\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    var i,\n        j = bufferLength,\n        up,\n        c;\n\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        break;\n\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF;\n          j++;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF;\n        }\n\n        break;\n\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF;\n          j++;\n        }\n\n        break;\n\n      case 4:\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          var upLeft = prevRow[i - pixBytes];\n          var left = buffer[j - pixBytes];\n          var p = left + up - upLeft;\n          var pa = p - left;\n\n          if (pa < 0) {\n            pa = -pa;\n          }\n\n          var pb = p - up;\n\n          if (pb < 0) {\n            pb = -pb;\n          }\n\n          var pc = p - upLeft;\n\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(\"Unsupported predictor: \".concat(predictor));\n    }\n\n    this.bufferLength += rowBytes;\n  };\n\n  return PredictorStream;\n}();\n\nexports.PredictorStream = PredictorStream;\n\nvar DecryptStream = function DecryptStreamClosure() {\n  function DecryptStream(str, maybeLength, decrypt) {\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  var chunkSize = 512;\n  DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n    var chunk;\n\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    this.nextChunk = this.str.getBytes(chunkSize);\n    var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n    var decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n    var bufferLength = this.bufferLength;\n    var i,\n        n = chunk.length;\n    var buffer = this.ensureBuffer(bufferLength + n);\n\n    for (i = 0; i < n; i++) {\n      buffer[bufferLength++] = chunk[i];\n    }\n\n    this.bufferLength = bufferLength;\n  };\n\n  return DecryptStream;\n}();\n\nexports.DecryptStream = DecryptStream;\n\nvar Ascii85Stream = function Ascii85StreamClosure() {\n  function Ascii85Stream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n\n    if (maybeLength) {\n      maybeLength = 0.8 * maybeLength;\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n    var TILDA_CHAR = 0x7E;\n    var Z_LOWER_CHAR = 0x7A;\n    var EOF = -1;\n    var str = this.str;\n    var c = str.getByte();\n\n    while ((0, _util.isSpace)(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    var bufferLength = this.bufferLength,\n        buffer;\n    var i;\n\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n\n      this.bufferLength += 4;\n    } else {\n      var input = this.input;\n      input[0] = c;\n\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n\n        while ((0, _util.isSpace)(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n\n        this.eof = true;\n      }\n\n      var t = 0;\n\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xFF;\n        t >>= 8;\n      }\n    }\n  };\n\n  return Ascii85Stream;\n}();\n\nexports.Ascii85Stream = Ascii85Stream;\n\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n  function AsciiHexStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    this.firstDigit = -1;\n\n    if (maybeLength) {\n      maybeLength = 0.5 * maybeLength;\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n    var UPSTREAM_BLOCK_SIZE = 8000;\n    var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    var maxDecodeLength = bytes.length + 1 >> 1;\n    var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    var bufferLength = this.bufferLength;\n    var firstDigit = this.firstDigit;\n\n    for (var i = 0, ii = bytes.length; i < ii; i++) {\n      var ch = bytes[i],\n          digit;\n\n      if (ch >= 0x30 && ch <= 0x39) {\n        digit = ch & 0x0F;\n      } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n        digit = (ch & 0x0F) + 9;\n      } else if (ch === 0x3E) {\n        this.eof = true;\n        break;\n      } else {\n        continue;\n      }\n\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = firstDigit << 4 | digit;\n        firstDigit = -1;\n      }\n    }\n\n    if (firstDigit >= 0 && this.eof) {\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  };\n\n  return AsciiHexStream;\n}();\n\nexports.AsciiHexStream = AsciiHexStream;\n\nvar RunLengthStream = function RunLengthStreamClosure() {\n  function RunLengthStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n    var repeatHeader = this.str.getBytes(2);\n\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    var buffer;\n    var bufferLength = this.bufferLength;\n    var n = repeatHeader[0];\n\n    if (n < 128) {\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n\n      if (n > 0) {\n        var source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      var b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n\n      for (var i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n\n    this.bufferLength = bufferLength;\n  };\n\n  return RunLengthStream;\n}();\n\nexports.RunLengthStream = RunLengthStream;\n\nvar LZWStream = function LZWStreamClosure() {\n  function LZWStream(str, maybeLength, earlyChange) {\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n    var maxLzwDictionarySize = 4096;\n    var lzwState = {\n      earlyChange: earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n\n    for (var i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n\n    this.lzwState = lzwState;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n  LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n    var bitsCached = this.bitsCached;\n    var cachedData = this.cachedData;\n\n    while (bitsCached < n) {\n      var c = this.str.getByte();\n\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n\n      cachedData = cachedData << 8 | c;\n      bitsCached += 8;\n    }\n\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return cachedData >>> bitsCached & (1 << n) - 1;\n  };\n\n  LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n    var blockSize = 512;\n    var estimatedDecodedSize = blockSize * 2,\n        decodedSizeDelta = blockSize;\n    var i, j, q;\n    var lzwState = this.lzwState;\n\n    if (!lzwState) {\n      return;\n    }\n\n    var earlyChange = lzwState.earlyChange;\n    var nextCode = lzwState.nextCode;\n    var dictionaryValues = lzwState.dictionaryValues;\n    var dictionaryLengths = lzwState.dictionaryLengths;\n    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    var codeLength = lzwState.codeLength;\n    var prevCode = lzwState.prevCode;\n    var currentSequence = lzwState.currentSequence;\n    var currentSequenceLength = lzwState.currentSequenceLength;\n    var decodedLength = 0;\n    var currentBufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      var code = this.readBits(codeLength);\n      var hasPrev = currentSequenceLength > 0;\n\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n      }\n\n      prevCode = code;\n      decodedLength += currentSequenceLength;\n\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n    this.bufferLength = currentBufferLength;\n  };\n\n  return LZWStream;\n}();\n\nexports.LZWStream = LZWStream;\n\nvar NullStream = function NullStreamClosure() {\n  function NullStream() {\n    Stream.call(this, new Uint8Array(0));\n  }\n\n  NullStream.prototype = Stream.prototype;\n  return NullStream;\n}();\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CCITTFaxStream = void 0;\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ccitt = __w_pdfjs_require__(159);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n  function CCITTFaxStream(str, maybeLength, params) {\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!(0, _primitives.isDict)(params)) {\n      params = _primitives.Dict.empty;\n    }\n\n    var source = {\n      next: function next() {\n        return str.getByte();\n      }\n    };\n    this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n      K: params.get('K'),\n      EndOfLine: params.get('EndOfLine'),\n      EncodedByteAlign: params.get('EncodedByteAlign'),\n      Columns: params.get('Columns'),\n      Rows: params.get('Rows'),\n      EndOfBlock: params.get('EndOfBlock'),\n      BlackIs1: params.get('BlackIs1')\n    });\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n\n  CCITTFaxStream.prototype.readBlock = function () {\n    while (!this.eof) {\n      var c = this.ccittFaxDecoder.readNextChar();\n\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  };\n\n  return CCITTFaxStream;\n}();\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar CCITTFaxDecoder = function CCITTFaxDecoder() {\n  var ccittEOL = -2;\n  var ccittEOF = -1;\n  var twoDimPass = 0;\n  var twoDimHoriz = 1;\n  var twoDimVert0 = 2;\n  var twoDimVertR1 = 3;\n  var twoDimVertL1 = 4;\n  var twoDimVertR2 = 5;\n  var twoDimVertL2 = 6;\n  var twoDimVertR3 = 7;\n  var twoDimVertL3 = 8;\n  var twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n  var whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n  var whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n  var blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n  var blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n  var blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\n  function CCITTFaxDecoder(source) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (!source || typeof source.next !== 'function') {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n\n    this.source = source;\n    this.eof = false;\n    this.encoding = options['K'] || 0;\n    this.eoline = options['EndOfLine'] || false;\n    this.byteAlign = options['EncodedByteAlign'] || false;\n    this.columns = options['Columns'] || 1728;\n    this.rows = options['Rows'] || 0;\n    var eoblock = options['EndOfBlock'];\n\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n\n    this.eoblock = eoblock;\n    this.black = options['BlackIs1'] || false;\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n    var code1;\n\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n\n      this._eatBits(1);\n    }\n  }\n\n  CCITTFaxDecoder.prototype = {\n    readNextChar: function readNextChar() {\n      if (this.eof) {\n        return -1;\n      }\n\n      var refLine = this.refLine;\n      var codingLine = this.codingLine;\n      var columns = this.columns;\n      var refPos, blackPixels, bits, i;\n\n      if (this.outputBits === 0) {\n        if (this.rowsDone) {\n          this.eof = true;\n        }\n\n        if (this.eof) {\n          return -1;\n        }\n\n        this.err = false;\n        var code1, code2, code3;\n\n        if (this.nextLine2D) {\n          for (i = 0; codingLine[i] < columns; ++i) {\n            refLine[i] = codingLine[i];\n          }\n\n          refLine[i++] = columns;\n          refLine[i] = columns;\n          codingLine[0] = 0;\n          this.codingPos = 0;\n          refPos = 0;\n          blackPixels = 0;\n\n          while (codingLine[this.codingPos] < columns) {\n            code1 = this._getTwoDimCode();\n\n            switch (code1) {\n              case twoDimPass:\n                this._addPixels(refLine[refPos + 1], blackPixels);\n\n                if (refLine[refPos + 1] < columns) {\n                  refPos += 2;\n                }\n\n                break;\n\n              case twoDimHoriz:\n                code1 = code2 = 0;\n\n                if (blackPixels) {\n                  do {\n                    code1 += code3 = this._getBlackCode();\n                  } while (code3 >= 64);\n\n                  do {\n                    code2 += code3 = this._getWhiteCode();\n                  } while (code3 >= 64);\n                } else {\n                  do {\n                    code1 += code3 = this._getWhiteCode();\n                  } while (code3 >= 64);\n\n                  do {\n                    code2 += code3 = this._getBlackCode();\n                  } while (code3 >= 64);\n                }\n\n                this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n                if (codingLine[this.codingPos] < columns) {\n                  this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n\n                break;\n\n              case twoDimVertR3:\n                this._addPixels(refLine[refPos] + 3, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertR2:\n                this._addPixels(refLine[refPos] + 2, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertR1:\n                this._addPixels(refLine[refPos] + 1, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVert0:\n                this._addPixels(refLine[refPos], blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL3:\n                this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL2:\n                this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL1:\n                this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case ccittEOF:\n                this._addPixels(columns, 0);\n\n                this.eof = true;\n                break;\n\n              default:\n                (0, _util.info)('bad 2d code');\n\n                this._addPixels(columns, 0);\n\n                this.err = true;\n            }\n          }\n        } else {\n          codingLine[0] = 0;\n          this.codingPos = 0;\n          blackPixels = 0;\n\n          while (codingLine[this.codingPos] < columns) {\n            code1 = 0;\n\n            if (blackPixels) {\n              do {\n                code1 += code3 = this._getBlackCode();\n              } while (code3 >= 64);\n            } else {\n              do {\n                code1 += code3 = this._getWhiteCode();\n              } while (code3 >= 64);\n            }\n\n            this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n            blackPixels ^= 1;\n          }\n        }\n\n        var gotEOL = false;\n\n        if (this.byteAlign) {\n          this.inputBits &= ~7;\n        }\n\n        if (!this.eoblock && this.row === this.rows - 1) {\n          this.rowsDone = true;\n        } else {\n          code1 = this._lookBits(12);\n\n          if (this.eoline) {\n            while (code1 !== ccittEOF && code1 !== 1) {\n              this._eatBits(1);\n\n              code1 = this._lookBits(12);\n            }\n          } else {\n            while (code1 === 0) {\n              this._eatBits(1);\n\n              code1 = this._lookBits(12);\n            }\n          }\n\n          if (code1 === 1) {\n            this._eatBits(12);\n\n            gotEOL = true;\n          } else if (code1 === ccittEOF) {\n            this.eof = true;\n          }\n        }\n\n        if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n          this.nextLine2D = !this._lookBits(1);\n\n          this._eatBits(1);\n        }\n\n        if (this.eoblock && gotEOL && this.byteAlign) {\n          code1 = this._lookBits(12);\n\n          if (code1 === 1) {\n            this._eatBits(12);\n\n            if (this.encoding > 0) {\n              this._lookBits(1);\n\n              this._eatBits(1);\n            }\n\n            if (this.encoding >= 0) {\n              for (i = 0; i < 4; ++i) {\n                code1 = this._lookBits(12);\n\n                if (code1 !== 1) {\n                  (0, _util.info)('bad rtc code: ' + code1);\n                }\n\n                this._eatBits(12);\n\n                if (this.encoding > 0) {\n                  this._lookBits(1);\n\n                  this._eatBits(1);\n                }\n              }\n            }\n\n            this.eof = true;\n          }\n        } else if (this.err && this.eoline) {\n          while (true) {\n            code1 = this._lookBits(13);\n\n            if (code1 === ccittEOF) {\n              this.eof = true;\n              return -1;\n            }\n\n            if (code1 >> 1 === 1) {\n              break;\n            }\n\n            this._eatBits(1);\n          }\n\n          this._eatBits(12);\n\n          if (this.encoding > 0) {\n            this._eatBits(1);\n\n            this.nextLine2D = !(code1 & 1);\n          }\n        }\n\n        if (codingLine[0] > 0) {\n          this.outputBits = codingLine[this.codingPos = 0];\n        } else {\n          this.outputBits = codingLine[this.codingPos = 1];\n        }\n\n        this.row++;\n      }\n\n      var c;\n\n      if (this.outputBits >= 8) {\n        c = this.codingPos & 1 ? 0 : 0xFF;\n        this.outputBits -= 8;\n\n        if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n          this.codingPos++;\n          this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n        }\n      } else {\n        bits = 8;\n        c = 0;\n\n        do {\n          if (this.outputBits > bits) {\n            c <<= bits;\n\n            if (!(this.codingPos & 1)) {\n              c |= 0xFF >> 8 - bits;\n            }\n\n            this.outputBits -= bits;\n            bits = 0;\n          } else {\n            c <<= this.outputBits;\n\n            if (!(this.codingPos & 1)) {\n              c |= 0xFF >> 8 - this.outputBits;\n            }\n\n            bits -= this.outputBits;\n            this.outputBits = 0;\n\n            if (codingLine[this.codingPos] < columns) {\n              this.codingPos++;\n              this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n            } else if (bits > 0) {\n              c <<= bits;\n              bits = 0;\n            }\n          }\n        } while (bits);\n      }\n\n      if (this.black) {\n        c ^= 0xFF;\n      }\n\n      return c;\n    },\n    _addPixels: function _addPixels(a1, blackPixels) {\n      var codingLine = this.codingLine;\n      var codingPos = this.codingPos;\n\n      if (a1 > codingLine[codingPos]) {\n        if (a1 > this.columns) {\n          (0, _util.info)('row is wrong length');\n          this.err = true;\n          a1 = this.columns;\n        }\n\n        if (codingPos & 1 ^ blackPixels) {\n          ++codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      }\n\n      this.codingPos = codingPos;\n    },\n    _addPixelsNeg: function _addPixelsNeg(a1, blackPixels) {\n      var codingLine = this.codingLine;\n      var codingPos = this.codingPos;\n\n      if (a1 > codingLine[codingPos]) {\n        if (a1 > this.columns) {\n          (0, _util.info)('row is wrong length');\n          this.err = true;\n          a1 = this.columns;\n        }\n\n        if (codingPos & 1 ^ blackPixels) {\n          ++codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      } else if (a1 < codingLine[codingPos]) {\n        if (a1 < 0) {\n          (0, _util.info)('invalid code');\n          this.err = true;\n          a1 = 0;\n        }\n\n        while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n          --codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      }\n\n      this.codingPos = codingPos;\n    },\n    _findTableCode: function _findTableCode(start, end, table, limit) {\n      var limitValue = limit || 0;\n\n      for (var i = start; i <= end; ++i) {\n        var code = this._lookBits(i);\n\n        if (code === ccittEOF) {\n          return [true, 1, false];\n        }\n\n        if (i < end) {\n          code <<= end - i;\n        }\n\n        if (!limitValue || code >= limitValue) {\n          var p = table[code - limitValue];\n\n          if (p[0] === i) {\n            this._eatBits(i);\n\n            return [true, p[1], true];\n          }\n        }\n      }\n\n      return [false, 0, false];\n    },\n    _getTwoDimCode: function _getTwoDimCode() {\n      var code = 0;\n      var p;\n\n      if (this.eoblock) {\n        code = this._lookBits(7);\n        p = twoDimTable[code];\n\n        if (p && p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(1, 7, twoDimTable);\n\n        if (result[0] && result[2]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('Bad two dim code');\n      return ccittEOF;\n    },\n    _getWhiteCode: function _getWhiteCode() {\n      var code = 0;\n      var p;\n\n      if (this.eoblock) {\n        code = this._lookBits(12);\n\n        if (code === ccittEOF) {\n          return 1;\n        }\n\n        if (code >> 5 === 0) {\n          p = whiteTable1[code];\n        } else {\n          p = whiteTable2[code >> 3];\n        }\n\n        if (p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(1, 9, whiteTable2);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(11, 12, whiteTable1);\n\n        if (result[0]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('bad white code');\n\n      this._eatBits(1);\n\n      return 1;\n    },\n    _getBlackCode: function _getBlackCode() {\n      var code, p;\n\n      if (this.eoblock) {\n        code = this._lookBits(13);\n\n        if (code === ccittEOF) {\n          return 1;\n        }\n\n        if (code >> 7 === 0) {\n          p = blackTable1[code];\n        } else if (code >> 9 === 0 && code >> 7 !== 0) {\n          p = blackTable2[(code >> 1) - 64];\n        } else {\n          p = blackTable3[code >> 7];\n        }\n\n        if (p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(2, 6, blackTable3);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(7, 12, blackTable2, 64);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(10, 13, blackTable1);\n\n        if (result[0]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('bad black code');\n\n      this._eatBits(1);\n\n      return 1;\n    },\n    _lookBits: function _lookBits(n) {\n      var c;\n\n      while (this.inputBits < n) {\n        if ((c = this.source.next()) === -1) {\n          if (this.inputBits === 0) {\n            return ccittEOF;\n          }\n\n          return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n;\n        }\n\n        this.inputBuf = this.inputBuf << 8 | c;\n        this.inputBits += 8;\n      }\n\n      return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n;\n    },\n    _eatBits: function _eatBits(n) {\n      if ((this.inputBits -= n) < 0) {\n        this.inputBits = 0;\n      }\n    }\n  };\n  return CCITTFaxDecoder;\n}();\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Jbig2Stream = void 0;\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jbig = __w_pdfjs_require__(161);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar Jbig2Stream = function Jbig2StreamClosure() {\n  function Jbig2Stream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(Jbig2Stream.prototype, 'bytes', {\n    get: function get() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n\n  Jbig2Stream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jbig2Image = new _jbig.Jbig2Image();\n    var chunks = [];\n\n    if ((0, _primitives.isDict)(this.params)) {\n      var globalsStream = this.params.get('JBIG2Globals');\n\n      if ((0, _primitives.isStream)(globalsStream)) {\n        var globals = globalsStream.getBytes();\n        chunks.push({\n          data: globals,\n          start: 0,\n          end: globals.length\n        });\n      }\n    }\n\n    chunks.push({\n      data: this.bytes,\n      start: 0,\n      end: this.bytes.length\n    });\n    var data = jbig2Image.parseChunks(chunks);\n    var dataLength = data.length;\n\n    for (var i = 0; i < dataLength; i++) {\n      data[i] ^= 0xFF;\n    }\n\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  };\n\n  return Jbig2Stream;\n}();\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(162);\n\nvar _ccitt = __w_pdfjs_require__(159);\n\nvar Jbig2Error = function Jbig2ErrorClosure() {\n  function Jbig2Error(msg) {\n    this.message = 'JBIG2 error: ' + msg;\n  }\n\n  Jbig2Error.prototype = new Error();\n  Jbig2Error.prototype.name = 'Jbig2Error';\n  Jbig2Error.constructor = Jbig2Error;\n  return Jbig2Error;\n}();\n\nvar Jbig2Image = function Jbig2ImageClosure() {\n  function ContextCache() {}\n\n  ContextCache.prototype = {\n    getContexts: function getContexts(id) {\n      if (id in this) {\n        return this[id];\n      }\n\n      return this[id] = new Int8Array(1 << 16);\n    }\n  };\n\n  function DecodingContext(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  DecodingContext.prototype = {\n    get decoder() {\n      var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n      return (0, _util.shadow)(this, 'decoder', decoder);\n    },\n\n    get contextCache() {\n      var cache = new ContextCache();\n      return (0, _util.shadow)(this, 'contextCache', cache);\n    }\n\n  };\n\n  function decodeInteger(contextCache, procedure, decoder) {\n    var contexts = contextCache.getContexts(procedure);\n    var prev = 1;\n\n    function readBits(length) {\n      var v = 0;\n\n      for (var i = 0; i < length; i++) {\n        var bit = decoder.readBit(contexts, prev);\n        prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n        v = v << 1 | bit;\n      }\n\n      return v >>> 0;\n    }\n\n    var sign = readBits(1);\n    var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n    return sign === 0 ? value : value > 0 ? -value : null;\n  }\n\n  function decodeIAID(contextCache, decoder, codeLength) {\n    var contexts = contextCache.getContexts('IAID');\n    var prev = 1;\n\n    for (var i = 0; i < codeLength; i++) {\n      var bit = decoder.readBit(contexts, prev);\n      prev = prev << 1 | bit;\n    }\n\n    if (codeLength < 31) {\n      return prev & (1 << codeLength) - 1;\n    }\n\n    return prev & 0x7FFFFFFF;\n  }\n\n  var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];\n  var CodingTemplates = [[{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: 2,\n    y: -1\n  }, {\n    x: -4,\n    y: 0\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: 2,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: 2,\n    y: -1\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -3,\n    y: -1\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -4,\n    y: 0\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }]];\n  var RefinementTemplates = [{\n    coding: [{\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }],\n    reference: [{\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }, {\n      x: 0,\n      y: 0\n    }, {\n      x: 1,\n      y: 0\n    }, {\n      x: -1,\n      y: 1\n    }, {\n      x: 0,\n      y: 1\n    }, {\n      x: 1,\n      y: 1\n    }]\n  }, {\n    coding: [{\n      x: -1,\n      y: -1\n    }, {\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }],\n    reference: [{\n      x: 0,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }, {\n      x: 0,\n      y: 0\n    }, {\n      x: 1,\n      y: 0\n    }, {\n      x: 0,\n      y: 1\n    }, {\n      x: 1,\n      y: 1\n    }]\n  }];\n  var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195];\n  var RefinementReusedContexts = [0x0020, 0x0008];\n\n  function decodeBitmapTemplate0(width, height, decodingContext) {\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GB');\n    var contextLabel,\n        i,\n        j,\n        pixel,\n        row,\n        row1,\n        row2,\n        bitmap = [];\n    var OLD_PIXEL_MASK = 0x7BF7;\n\n    for (i = 0; i < height; i++) {\n      row = bitmap[i] = new Uint8Array(width);\n      row1 = i < 1 ? row : bitmap[i - 1];\n      row2 = i < 2 ? row : bitmap[i - 2];\n      contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n      for (j = 0; j < width; j++) {\n        row[j] = pixel = decoder.readBit(contexts, contextLabel);\n        contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n    if (mmr) {\n      var input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n      return decodeMMRBitmap(input, width, height, false);\n    }\n\n    if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n      return decodeBitmapTemplate0(width, height, decodingContext);\n    }\n\n    var useskip = !!skip;\n    var template = CodingTemplates[templateIndex].concat(at);\n    template.sort(function (a, b) {\n      return a.y - b.y || a.x - b.x;\n    });\n    var templateLength = template.length;\n    var templateX = new Int8Array(templateLength);\n    var templateY = new Int8Array(templateLength);\n    var changingTemplateEntries = [];\n    var reuseMask = 0,\n        minX = 0,\n        maxX = 0,\n        minY = 0;\n    var c, k;\n\n    for (k = 0; k < templateLength; k++) {\n      templateX[k] = template[k].x;\n      templateY[k] = template[k].y;\n      minX = Math.min(minX, template[k].x);\n      maxX = Math.max(maxX, template[k].x);\n      minY = Math.min(minY, template[k].y);\n\n      if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n        reuseMask |= 1 << templateLength - 1 - k;\n      } else {\n        changingTemplateEntries.push(k);\n      }\n    }\n\n    var changingEntriesLength = changingTemplateEntries.length;\n    var changingTemplateX = new Int8Array(changingEntriesLength);\n    var changingTemplateY = new Int8Array(changingEntriesLength);\n    var changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n    for (c = 0; c < changingEntriesLength; c++) {\n      k = changingTemplateEntries[c];\n      changingTemplateX[c] = template[k].x;\n      changingTemplateY[c] = template[k].y;\n      changingTemplateBit[c] = 1 << templateLength - 1 - k;\n    }\n\n    var sbb_left = -minX;\n    var sbb_top = -minY;\n    var sbb_right = width - maxX;\n    var pseudoPixelContext = ReusedContexts[templateIndex];\n    var row = new Uint8Array(width);\n    var bitmap = [];\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GB');\n    var ltp = 0,\n        j,\n        i0,\n        j0,\n        contextLabel = 0,\n        bit,\n        shift;\n\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n\n        if (ltp) {\n          bitmap.push(row);\n          continue;\n        }\n      }\n\n      row = new Uint8Array(row);\n      bitmap.push(row);\n\n      for (j = 0; j < width; j++) {\n        if (useskip && skip[i][j]) {\n          row[j] = 0;\n          continue;\n        }\n\n        if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n          contextLabel = contextLabel << 1 & reuseMask;\n\n          for (k = 0; k < changingEntriesLength; k++) {\n            i0 = i + changingTemplateY[k];\n            j0 = j + changingTemplateX[k];\n            bit = bitmap[i0][j0];\n\n            if (bit) {\n              bit = changingTemplateBit[k];\n              contextLabel |= bit;\n            }\n          }\n        } else {\n          contextLabel = 0;\n          shift = templateLength - 1;\n\n          for (k = 0; k < templateLength; k++, shift--) {\n            j0 = j + templateX[k];\n\n            if (j0 >= 0 && j0 < width) {\n              i0 = i + templateY[k];\n\n              if (i0 >= 0) {\n                bit = bitmap[i0][j0];\n\n                if (bit) {\n                  contextLabel |= bit << shift;\n                }\n              }\n            }\n          }\n        }\n\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n    var codingTemplate = RefinementTemplates[templateIndex].coding;\n\n    if (templateIndex === 0) {\n      codingTemplate = codingTemplate.concat([at[0]]);\n    }\n\n    var codingTemplateLength = codingTemplate.length;\n    var codingTemplateX = new Int32Array(codingTemplateLength);\n    var codingTemplateY = new Int32Array(codingTemplateLength);\n    var k;\n\n    for (k = 0; k < codingTemplateLength; k++) {\n      codingTemplateX[k] = codingTemplate[k].x;\n      codingTemplateY[k] = codingTemplate[k].y;\n    }\n\n    var referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n    if (templateIndex === 0) {\n      referenceTemplate = referenceTemplate.concat([at[1]]);\n    }\n\n    var referenceTemplateLength = referenceTemplate.length;\n    var referenceTemplateX = new Int32Array(referenceTemplateLength);\n    var referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n    for (k = 0; k < referenceTemplateLength; k++) {\n      referenceTemplateX[k] = referenceTemplate[k].x;\n      referenceTemplateY[k] = referenceTemplate[k].y;\n    }\n\n    var referenceWidth = referenceBitmap[0].length;\n    var referenceHeight = referenceBitmap.length;\n    var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n    var bitmap = [];\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GR');\n    var ltp = 0;\n\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n\n        if (ltp) {\n          throw new Jbig2Error('prediction is not supported');\n        }\n      }\n\n      var row = new Uint8Array(width);\n      bitmap.push(row);\n\n      for (var j = 0; j < width; j++) {\n        var i0, j0;\n        var contextLabel = 0;\n\n        for (k = 0; k < codingTemplateLength; k++) {\n          i0 = i + codingTemplateY[k];\n          j0 = j + codingTemplateX[k];\n\n          if (i0 < 0 || j0 < 0 || j0 >= width) {\n            contextLabel <<= 1;\n          } else {\n            contextLabel = contextLabel << 1 | bitmap[i0][j0];\n          }\n        }\n\n        for (k = 0; k < referenceTemplateLength; k++) {\n          i0 = i + referenceTemplateY[k] - offsetY;\n          j0 = j + referenceTemplateX[k] - offsetX;\n\n          if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n            contextLabel <<= 1;\n          } else {\n            contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n          }\n        }\n\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n    if (huffman && refinement) {\n      throw new Jbig2Error('symbol refinement with Huffman is not supported');\n    }\n\n    var newSymbols = [];\n    var currentHeight = 0;\n    var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols);\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n    var tableB1, symbolWidths;\n\n    if (huffman) {\n      tableB1 = getStandardTable(1);\n      symbolWidths = [];\n      symbolCodeLength = Math.max(symbolCodeLength, 1);\n    }\n\n    while (newSymbols.length < numberOfNewSymbols) {\n      var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, 'IADH', decoder);\n      currentHeight += deltaHeight;\n      var currentWidth = 0,\n          totalWidth = 0;\n      var firstSymbol = huffman ? symbolWidths.length : 0;\n\n      while (true) {\n        var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, 'IADW', decoder);\n\n        if (deltaWidth === null) {\n          break;\n        }\n\n        currentWidth += deltaWidth;\n        totalWidth += currentWidth;\n        var bitmap;\n\n        if (refinement) {\n          var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n\n          if (numberOfInstances > 1) {\n            bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n          } else {\n            var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n            var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n            var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n            var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n            bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n          }\n\n          newSymbols.push(bitmap);\n        } else if (huffman) {\n          symbolWidths.push(currentWidth);\n        } else {\n          bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n          newSymbols.push(bitmap);\n        }\n      }\n\n      if (huffman && !refinement) {\n        var bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n        huffmanInput.byteAlign();\n        var collectiveBitmap = void 0;\n\n        if (bitmapSize === 0) {\n          collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n        } else {\n          var originalEnd = huffmanInput.end;\n          var bitmapEnd = huffmanInput.position + bitmapSize;\n          huffmanInput.end = bitmapEnd;\n          collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n          huffmanInput.end = originalEnd;\n          huffmanInput.position = bitmapEnd;\n        }\n\n        var numberOfSymbolsDecoded = symbolWidths.length;\n\n        if (firstSymbol === numberOfSymbolsDecoded - 1) {\n          newSymbols.push(collectiveBitmap);\n        } else {\n          var _i = void 0,\n              y = void 0,\n              xMin = 0,\n              xMax = void 0,\n              bitmapWidth = void 0,\n              symbolBitmap = void 0;\n\n          for (_i = firstSymbol; _i < numberOfSymbolsDecoded; _i++) {\n            bitmapWidth = symbolWidths[_i];\n            xMax = xMin + bitmapWidth;\n            symbolBitmap = [];\n\n            for (y = 0; y < currentHeight; y++) {\n              symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n            }\n\n            newSymbols.push(symbolBitmap);\n            xMin = xMax;\n          }\n        }\n      }\n    }\n\n    var exportedSymbols = [];\n    var flags = [],\n        currentFlag = false;\n    var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n    while (flags.length < totalSymbolsLength) {\n      var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, 'IAEX', decoder);\n\n      while (runLength--) {\n        flags.push(currentFlag);\n      }\n\n      currentFlag = !currentFlag;\n    }\n\n    for (var i = 0, ii = symbols.length; i < ii; i++) {\n      if (flags[i]) {\n        exportedSymbols.push(symbols[i]);\n      }\n    }\n\n    for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n      if (flags[i]) {\n        exportedSymbols.push(newSymbols[j]);\n      }\n    }\n\n    return exportedSymbols;\n  }\n\n  function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n    if (huffman && refinement) {\n      throw new Jbig2Error('refinement with Huffman is not supported');\n    }\n\n    var bitmap = [];\n    var i, row;\n\n    for (i = 0; i < height; i++) {\n      row = new Uint8Array(width);\n\n      if (defaultPixelValue) {\n        for (var j = 0; j < width; j++) {\n          row[j] = defaultPixelValue;\n        }\n      }\n\n      bitmap.push(row);\n    }\n\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n    var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, 'IADT', decoder);\n    var firstS = 0;\n    i = 0;\n\n    while (i < numberOfSymbolInstances) {\n      var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, 'IADT', decoder);\n      stripT += deltaT;\n      var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, 'IAFS', decoder);\n      firstS += deltaFirstS;\n      var currentS = firstS;\n\n      do {\n        var currentT = 0;\n\n        if (stripSize > 1) {\n          currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, 'IAIT', decoder);\n        }\n\n        var t = stripSize * stripT + currentT;\n        var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n        var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, 'IARI', decoder));\n        var symbolBitmap = inputSymbols[symbolId];\n        var symbolWidth = symbolBitmap[0].length;\n        var symbolHeight = symbolBitmap.length;\n\n        if (applyRefinement) {\n          var rdw = decodeInteger(contextCache, 'IARDW', decoder);\n          var rdh = decodeInteger(contextCache, 'IARDH', decoder);\n          var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n          var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n          symbolWidth += rdw;\n          symbolHeight += rdh;\n          symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n        }\n\n        var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n        var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n        var s2, t2, symbolRow;\n\n        if (transposed) {\n          for (s2 = 0; s2 < symbolHeight; s2++) {\n            row = bitmap[offsetS + s2];\n\n            if (!row) {\n              continue;\n            }\n\n            symbolRow = symbolBitmap[s2];\n            var maxWidth = Math.min(width - offsetT, symbolWidth);\n\n            switch (combinationOperator) {\n              case 0:\n                for (t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] |= symbolRow[t2];\n                }\n\n                break;\n\n              case 2:\n                for (t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] ^= symbolRow[t2];\n                }\n\n                break;\n\n              default:\n                throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n            }\n          }\n\n          currentS += symbolHeight - 1;\n        } else {\n          for (t2 = 0; t2 < symbolHeight; t2++) {\n            row = bitmap[offsetT + t2];\n\n            if (!row) {\n              continue;\n            }\n\n            symbolRow = symbolBitmap[t2];\n\n            switch (combinationOperator) {\n              case 0:\n                for (s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] |= symbolRow[s2];\n                }\n\n                break;\n\n              case 2:\n                for (s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] ^= symbolRow[s2];\n                }\n\n                break;\n\n              default:\n                throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n            }\n          }\n\n          currentS += symbolWidth - 1;\n        }\n\n        i++;\n        var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, 'IADS', decoder);\n\n        if (deltaS === null) {\n          break;\n        }\n\n        currentS += deltaS + dsOffset;\n      } while (true);\n    }\n\n    return bitmap;\n  }\n\n  function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n    var at = [];\n\n    if (!mmr) {\n      at.push({\n        x: -patternWidth,\n        y: 0\n      });\n\n      if (template === 0) {\n        at.push({\n          x: -3,\n          y: -1\n        });\n        at.push({\n          x: 2,\n          y: -2\n        });\n        at.push({\n          x: -2,\n          y: -2\n        });\n      }\n    }\n\n    var collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n    var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n    var patterns = [],\n        i = 0,\n        patternBitmap,\n        xMin,\n        xMax,\n        y;\n\n    while (i <= maxPatternIndex) {\n      patternBitmap = [];\n      xMin = patternWidth * i;\n      xMax = xMin + patternWidth;\n\n      for (y = 0; y < patternHeight; y++) {\n        patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n      }\n\n      patterns.push(patternBitmap);\n      i++;\n    }\n\n    return patterns;\n  }\n\n  function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n    var skip = null;\n\n    if (enableSkip) {\n      throw new Jbig2Error('skip is not supported');\n    }\n\n    if (combinationOperator !== 0) {\n      throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');\n    }\n\n    var regionBitmap = [];\n    var i, j, row;\n\n    for (i = 0; i < regionHeight; i++) {\n      row = new Uint8Array(regionWidth);\n\n      if (defaultPixelValue) {\n        for (j = 0; j < regionWidth; j++) {\n          row[j] = defaultPixelValue;\n        }\n      }\n\n      regionBitmap.push(row);\n    }\n\n    var numberOfPatterns = patterns.length;\n    var pattern0 = patterns[0];\n    var patternWidth = pattern0[0].length,\n        patternHeight = pattern0.length;\n    var bitsPerValue = (0, _util.log2)(numberOfPatterns);\n    var at = [];\n\n    if (!mmr) {\n      at.push({\n        x: template <= 1 ? 3 : 2,\n        y: -1\n      });\n\n      if (template === 0) {\n        at.push({\n          x: -3,\n          y: -1\n        });\n        at.push({\n          x: 2,\n          y: -2\n        });\n        at.push({\n          x: -2,\n          y: -2\n        });\n      }\n    }\n\n    var grayScaleBitPlanes = [],\n        mmrInput,\n        bitmap;\n\n    if (mmr) {\n      mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n    }\n\n    for (i = bitsPerValue - 1; i >= 0; i--) {\n      if (mmr) {\n        bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n      } else {\n        bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n      }\n\n      grayScaleBitPlanes[i] = bitmap;\n    }\n\n    var mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n    for (mg = 0; mg < gridHeight; mg++) {\n      for (ng = 0; ng < gridWidth; ng++) {\n        bit = 0;\n        patternIndex = 0;\n\n        for (j = bitsPerValue - 1; j >= 0; j--) {\n          bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n          patternIndex |= bit << j;\n        }\n\n        patternBitmap = patterns[patternIndex];\n        x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n        y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n        if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n          for (i = 0; i < patternHeight; i++) {\n            regionRow = regionBitmap[y + i];\n            patternRow = patternBitmap[i];\n\n            for (j = 0; j < patternWidth; j++) {\n              regionRow[x + j] |= patternRow[j];\n            }\n          }\n        } else {\n          var regionX = void 0,\n              regionY = void 0;\n\n          for (i = 0; i < patternHeight; i++) {\n            regionY = y + i;\n\n            if (regionY < 0 || regionY >= regionHeight) {\n              continue;\n            }\n\n            regionRow = regionBitmap[regionY];\n            patternRow = patternBitmap[i];\n\n            for (j = 0; j < patternWidth; j++) {\n              regionX = x + j;\n\n              if (regionX >= 0 && regionX < regionWidth) {\n                regionRow[regionX] |= patternRow[j];\n              }\n            }\n          }\n        }\n      }\n    }\n\n    return regionBitmap;\n  }\n\n  function readSegmentHeader(data, start) {\n    var segmentHeader = {};\n    segmentHeader.number = (0, _util.readUint32)(data, start);\n    var flags = data[start + 4];\n    var segmentType = flags & 0x3F;\n\n    if (!SegmentTypes[segmentType]) {\n      throw new Jbig2Error('invalid segment type: ' + segmentType);\n    }\n\n    segmentHeader.type = segmentType;\n    segmentHeader.typeName = SegmentTypes[segmentType];\n    segmentHeader.deferredNonRetain = !!(flags & 0x80);\n    var pageAssociationFieldSize = !!(flags & 0x40);\n    var referredFlags = data[start + 5];\n    var referredToCount = referredFlags >> 5 & 7;\n    var retainBits = [referredFlags & 31];\n    var position = start + 6;\n\n    if (referredFlags === 7) {\n      referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF;\n      position += 3;\n      var bytes = referredToCount + 7 >> 3;\n      retainBits[0] = data[position++];\n\n      while (--bytes > 0) {\n        retainBits.push(data[position++]);\n      }\n    } else if (referredFlags === 5 || referredFlags === 6) {\n      throw new Jbig2Error('invalid referred-to flags');\n    }\n\n    segmentHeader.retainBits = retainBits;\n    var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4;\n    var referredTo = [];\n    var i, ii;\n\n    for (i = 0; i < referredToCount; i++) {\n      var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position);\n      referredTo.push(number);\n      position += referredToSegmentNumberSize;\n    }\n\n    segmentHeader.referredTo = referredTo;\n\n    if (!pageAssociationFieldSize) {\n      segmentHeader.pageAssociation = data[position++];\n    } else {\n      segmentHeader.pageAssociation = (0, _util.readUint32)(data, position);\n      position += 4;\n    }\n\n    segmentHeader.length = (0, _util.readUint32)(data, position);\n    position += 4;\n\n    if (segmentHeader.length === 0xFFFFFFFF) {\n      if (segmentType === 38) {\n        var genericRegionInfo = readRegionSegmentInformation(data, position);\n        var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n        var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n        var searchPatternLength = 6;\n        var searchPattern = new Uint8Array(searchPatternLength);\n\n        if (!genericRegionMmr) {\n          searchPattern[0] = 0xFF;\n          searchPattern[1] = 0xAC;\n        }\n\n        searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF;\n        searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF;\n        searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF;\n        searchPattern[5] = genericRegionInfo.height & 0xFF;\n\n        for (i = position, ii = data.length; i < ii; i++) {\n          var j = 0;\n\n          while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n            j++;\n          }\n\n          if (j === searchPatternLength) {\n            segmentHeader.length = i + searchPatternLength;\n            break;\n          }\n        }\n\n        if (segmentHeader.length === 0xFFFFFFFF) {\n          throw new Jbig2Error('segment end was not found');\n        }\n      } else {\n        throw new Jbig2Error('invalid unknown segment length');\n      }\n    }\n\n    segmentHeader.headerEnd = position;\n    return segmentHeader;\n  }\n\n  function readSegments(header, data, start, end) {\n    var segments = [];\n    var position = start;\n\n    while (position < end) {\n      var segmentHeader = readSegmentHeader(data, position);\n      position = segmentHeader.headerEnd;\n      var segment = {\n        header: segmentHeader,\n        data: data\n      };\n\n      if (!header.randomAccess) {\n        segment.start = position;\n        position += segmentHeader.length;\n        segment.end = position;\n      }\n\n      segments.push(segment);\n\n      if (segmentHeader.type === 51) {\n        break;\n      }\n    }\n\n    if (header.randomAccess) {\n      for (var i = 0, ii = segments.length; i < ii; i++) {\n        segments[i].start = position;\n        position += segments[i].header.length;\n        segments[i].end = position;\n      }\n    }\n\n    return segments;\n  }\n\n  function readRegionSegmentInformation(data, start) {\n    return {\n      width: (0, _util.readUint32)(data, start),\n      height: (0, _util.readUint32)(data, start + 4),\n      x: (0, _util.readUint32)(data, start + 8),\n      y: (0, _util.readUint32)(data, start + 12),\n      combinationOperator: data[start + 16] & 7\n    };\n  }\n\n  var RegionSegmentInformationFieldLength = 17;\n\n  function processSegment(segment, visitor) {\n    var header = segment.header;\n    var data = segment.data,\n        position = segment.start,\n        end = segment.end;\n    var args, at, i, atLength;\n\n    switch (header.type) {\n      case 0:\n        var dictionary = {};\n        var dictionaryFlags = (0, _util.readUint16)(data, position);\n        dictionary.huffman = !!(dictionaryFlags & 1);\n        dictionary.refinement = !!(dictionaryFlags & 2);\n        dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n        dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n        dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n        dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n        dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n        dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n        dictionary.template = dictionaryFlags >> 10 & 3;\n        dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n        position += 2;\n\n        if (!dictionary.huffman) {\n          atLength = dictionary.template === 0 ? 4 : 1;\n          at = [];\n\n          for (i = 0; i < atLength; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          dictionary.at = at;\n        }\n\n        if (dictionary.refinement && !dictionary.refinementTemplate) {\n          at = [];\n\n          for (i = 0; i < 2; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          dictionary.refinementAt = at;\n        }\n\n        dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position);\n        position += 4;\n        dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [dictionary, header.number, header.referredTo, data, position, end];\n        break;\n\n      case 6:\n      case 7:\n        var textRegion = {};\n        textRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var textRegionSegmentFlags = (0, _util.readUint16)(data, position);\n        position += 2;\n        textRegion.huffman = !!(textRegionSegmentFlags & 1);\n        textRegion.refinement = !!(textRegionSegmentFlags & 2);\n        textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n        textRegion.stripSize = 1 << textRegion.logStripSize;\n        textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n        textRegion.transposed = !!(textRegionSegmentFlags & 64);\n        textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n        textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n        textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n        textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n        if (textRegion.huffman) {\n          var textRegionHuffmanFlags = (0, _util.readUint16)(data, position);\n          position += 2;\n          textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n          textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n          textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n          textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n          textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n          textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n          textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n          textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n        }\n\n        if (textRegion.refinement && !textRegion.refinementTemplate) {\n          at = [];\n\n          for (i = 0; i < 2; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          textRegion.refinementAt = at;\n        }\n\n        textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [textRegion, header.referredTo, data, position, end];\n        break;\n\n      case 16:\n        var patternDictionary = {};\n        var patternDictionaryFlags = data[position++];\n        patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n        patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n        patternDictionary.patternWidth = data[position++];\n        patternDictionary.patternHeight = data[position++];\n        patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [patternDictionary, header.number, data, position, end];\n        break;\n\n      case 22:\n      case 23:\n        var halftoneRegion = {};\n        halftoneRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var halftoneRegionFlags = data[position++];\n        halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n        halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n        halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n        halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n        halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n        halftoneRegion.gridWidth = (0, _util.readUint32)(data, position);\n        position += 4;\n        halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);\n        position += 4;\n        halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n        position += 4;\n        halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n        position += 4;\n        halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);\n        position += 2;\n        halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);\n        position += 2;\n        args = [halftoneRegion, header.referredTo, data, position, end];\n        break;\n\n      case 38:\n      case 39:\n        var genericRegion = {};\n        genericRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var genericRegionSegmentFlags = data[position++];\n        genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n        genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n        genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n        if (!genericRegion.mmr) {\n          atLength = genericRegion.template === 0 ? 4 : 1;\n          at = [];\n\n          for (i = 0; i < atLength; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          genericRegion.at = at;\n        }\n\n        args = [genericRegion, data, position, end];\n        break;\n\n      case 48:\n        var pageInfo = {\n          width: (0, _util.readUint32)(data, position),\n          height: (0, _util.readUint32)(data, position + 4),\n          resolutionX: (0, _util.readUint32)(data, position + 8),\n          resolutionY: (0, _util.readUint32)(data, position + 12)\n        };\n\n        if (pageInfo.height === 0xFFFFFFFF) {\n          delete pageInfo.height;\n        }\n\n        var pageSegmentFlags = data[position + 16];\n        (0, _util.readUint16)(data, position + 17);\n        pageInfo.lossless = !!(pageSegmentFlags & 1);\n        pageInfo.refinement = !!(pageSegmentFlags & 2);\n        pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n        pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n        pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n        pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n        args = [pageInfo];\n        break;\n\n      case 49:\n        break;\n\n      case 50:\n        break;\n\n      case 51:\n        break;\n\n      case 53:\n        args = [header.number, data, position, end];\n        break;\n\n      case 62:\n        break;\n\n      default:\n        throw new Jbig2Error(\"segment type \".concat(header.typeName, \"(\").concat(header.type, \")\") + ' is not implemented');\n    }\n\n    var callbackName = 'on' + header.typeName;\n\n    if (callbackName in visitor) {\n      visitor[callbackName].apply(visitor, args);\n    }\n  }\n\n  function processSegments(segments, visitor) {\n    for (var i = 0, ii = segments.length; i < ii; i++) {\n      processSegment(segments[i], visitor);\n    }\n  }\n\n  function parseJbig2Chunks(chunks) {\n    var visitor = new SimpleSegmentVisitor();\n\n    for (var i = 0, ii = chunks.length; i < ii; i++) {\n      var chunk = chunks[i];\n      var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n      processSegments(segments, visitor);\n    }\n\n    return visitor.buffer;\n  }\n\n  function parseJbig2(data) {\n    var position = 0,\n        end = data.length;\n\n    if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {\n      throw new Jbig2Error('parseJbig2 - invalid header.');\n    }\n\n    var header = Object.create(null);\n    position += 8;\n    var flags = data[position++];\n    header.randomAccess = !(flags & 1);\n\n    if (!(flags & 2)) {\n      header.numberOfPages = (0, _util.readUint32)(data, position);\n      position += 4;\n    }\n\n    var segments = readSegments(header, data, position, end);\n    var visitor = new SimpleSegmentVisitor();\n    processSegments(segments, visitor);\n    var _visitor$currentPageI = visitor.currentPageInfo,\n        width = _visitor$currentPageI.width,\n        height = _visitor$currentPageI.height;\n    var bitPacked = visitor.buffer;\n    var imgData = new Uint8ClampedArray(width * height);\n    var q = 0,\n        k = 0;\n\n    for (var i = 0; i < height; i++) {\n      var mask = 0,\n          buffer = void 0;\n\n      for (var j = 0; j < width; j++) {\n        if (!mask) {\n          mask = 128;\n          buffer = bitPacked[k++];\n        }\n\n        imgData[q++] = buffer & mask ? 0 : 255;\n        mask >>= 1;\n      }\n    }\n\n    return {\n      imgData: imgData,\n      width: width,\n      height: height\n    };\n  }\n\n  function SimpleSegmentVisitor() {}\n\n  SimpleSegmentVisitor.prototype = {\n    onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n      this.currentPageInfo = info;\n      var rowSize = info.width + 7 >> 3;\n      var buffer = new Uint8ClampedArray(rowSize * info.height);\n\n      if (info.defaultPixelValue) {\n        for (var i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = 0xFF;\n        }\n      }\n\n      this.buffer = buffer;\n    },\n    drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n      var pageInfo = this.currentPageInfo;\n      var width = regionInfo.width,\n          height = regionInfo.height;\n      var rowSize = pageInfo.width + 7 >> 3;\n      var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n      var buffer = this.buffer;\n      var mask0 = 128 >> (regionInfo.x & 7);\n      var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n      var i, j, mask, offset;\n\n      switch (combinationOperator) {\n        case 0:\n          for (i = 0; i < height; i++) {\n            mask = mask0;\n            offset = offset0;\n\n            for (j = 0; j < width; j++) {\n              if (bitmap[i][j]) {\n                buffer[offset] |= mask;\n              }\n\n              mask >>= 1;\n\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n\n            offset0 += rowSize;\n          }\n\n          break;\n\n        case 2:\n          for (i = 0; i < height; i++) {\n            mask = mask0;\n            offset = offset0;\n\n            for (j = 0; j < width; j++) {\n              if (bitmap[i][j]) {\n                buffer[offset] ^= mask;\n              }\n\n              mask >>= 1;\n\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n\n            offset0 += rowSize;\n          }\n\n          break;\n\n        default:\n          throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n      }\n    },\n    onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n      this.onImmediateGenericRegion.apply(this, arguments);\n    },\n    onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n      var huffmanTables, huffmanInput;\n\n      if (dictionary.huffman) {\n        huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n        huffmanInput = new Reader(data, start, end);\n      }\n\n      var symbols = this.symbols;\n\n      if (!symbols) {\n        this.symbols = symbols = {};\n      }\n\n      var inputSymbols = [];\n\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        var referredSymbols = symbols[referredSegments[i]];\n\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n    },\n    onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n      var regionInfo = region.info;\n      var huffmanTables, huffmanInput;\n      var symbols = this.symbols;\n      var inputSymbols = [];\n\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        var referredSymbols = symbols[referredSegments[i]];\n\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n\n      var symbolCodeLength = (0, _util.log2)(inputSymbols.length);\n\n      if (region.huffman) {\n        huffmanInput = new Reader(data, start, end);\n        huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n      this.onImmediateTextRegion.apply(this, arguments);\n    },\n    onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) {\n      var patterns = this.patterns;\n\n      if (!patterns) {\n        this.patterns = patterns = {};\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n    },\n    onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n      var patterns = this.patterns[referredSegments[0]];\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() {\n      this.onImmediateHalftoneRegion.apply(this, arguments);\n    },\n    onTables: function onTables(currentSegment, data, start, end) {\n      var customTables = this.customTables;\n\n      if (!customTables) {\n        this.customTables = customTables = {};\n      }\n\n      customTables[currentSegment] = decodeTablesSegment(data, start, end);\n    }\n  };\n\n  function HuffmanLine(lineData) {\n    if (lineData.length === 2) {\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === 'lower';\n    }\n  }\n\n  function HuffmanTreeNode(line) {\n    this.children = [];\n\n    if (line) {\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      this.isLeaf = false;\n    }\n  }\n\n  HuffmanTreeNode.prototype = {\n    buildTree: function buildTree(line, shift) {\n      var bit = line.prefixCode >> shift & 1;\n\n      if (shift <= 0) {\n        this.children[bit] = new HuffmanTreeNode(line);\n      } else {\n        var node = this.children[bit];\n\n        if (!node) {\n          this.children[bit] = node = new HuffmanTreeNode(null);\n        }\n\n        node.buildTree(line, shift - 1);\n      }\n    },\n    decodeNode: function decodeNode(reader) {\n      if (this.isLeaf) {\n        if (this.isOOB) {\n          return null;\n        }\n\n        var htOffset = reader.readBits(this.rangeLength);\n        return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n      }\n\n      var node = this.children[reader.readBit()];\n\n      if (!node) {\n        throw new Jbig2Error('invalid Huffman data');\n      }\n\n      return node.decodeNode(reader);\n    }\n  };\n\n  function HuffmanTable(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n\n    this.rootNode = new HuffmanTreeNode(null);\n    var i,\n        ii = lines.length,\n        line;\n\n    for (i = 0; i < ii; i++) {\n      line = lines[i];\n\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  HuffmanTable.prototype = {\n    decode: function decode(reader) {\n      return this.rootNode.decodeNode(reader);\n    },\n    assignPrefixCodes: function assignPrefixCodes(lines) {\n      var linesLength = lines.length,\n          prefixLengthMax = 0,\n          i;\n\n      for (i = 0; i < linesLength; i++) {\n        prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n      }\n\n      var histogram = new Uint32Array(prefixLengthMax + 1);\n\n      for (i = 0; i < linesLength; i++) {\n        histogram[lines[i].prefixLength]++;\n      }\n\n      var currentLength = 1,\n          firstCode = 0,\n          currentCode,\n          currentTemp,\n          line;\n      histogram[0] = 0;\n\n      while (currentLength <= prefixLengthMax) {\n        firstCode = firstCode + histogram[currentLength - 1] << 1;\n        currentCode = firstCode;\n        currentTemp = 0;\n\n        while (currentTemp < linesLength) {\n          line = lines[currentTemp];\n\n          if (line.prefixLength === currentLength) {\n            line.prefixCode = currentCode;\n            currentCode++;\n          }\n\n          currentTemp++;\n        }\n\n        currentLength++;\n      }\n    }\n  };\n\n  function decodeTablesSegment(data, start, end) {\n    var flags = data[start];\n    var lowestValue = (0, _util.readUint32)(data, start + 1) & 0xFFFFFFFF;\n    var highestValue = (0, _util.readUint32)(data, start + 5) & 0xFFFFFFFF;\n    var reader = new Reader(data, start + 9, end);\n    var prefixSizeBits = (flags >> 1 & 7) + 1;\n    var rangeSizeBits = (flags >> 4 & 7) + 1;\n    var lines = [];\n    var prefixLength,\n        rangeLength,\n        currentRangeLow = lowestValue;\n\n    do {\n      prefixLength = reader.readBits(prefixSizeBits);\n      rangeLength = reader.readBits(rangeSizeBits);\n      lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n      currentRangeLow += 1 << rangeLength;\n    } while (currentRangeLow < highestValue);\n\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, 'lower']));\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n    if (flags & 1) {\n      prefixLength = reader.readBits(prefixSizeBits);\n      lines.push(new HuffmanLine([prefixLength, 0]));\n    }\n\n    return new HuffmanTable(lines, false);\n  }\n\n  var standardTablesCache = {};\n\n  function getStandardTable(number) {\n    var table = standardTablesCache[number];\n\n    if (table) {\n      return table;\n    }\n\n    var lines;\n\n    switch (number) {\n      case 1:\n        lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n        break;\n\n      case 2:\n        lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [75, 6, 32, 0x3E], [6, 0x3F]];\n        break;\n\n      case 3:\n        lines = [[-256, 8, 8, 0xFE], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [-257, 8, 32, 0xFF, 'lower'], [75, 7, 32, 0x7E], [6, 0x3E]];\n        break;\n\n      case 4:\n        lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [76, 5, 32, 0x1F]];\n        break;\n\n      case 5:\n        lines = [[-255, 7, 8, 0x7E], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [-256, 7, 32, 0x7F, 'lower'], [76, 6, 32, 0x3E]];\n        break;\n\n      case 6:\n        lines = [[-2048, 5, 10, 0x1C], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xA], [-128, 5, 6, 0x1D], [-64, 5, 5, 0x1E], [-32, 4, 5, 0xB], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xC], [1024, 4, 10, 0xD], [-2049, 6, 32, 0x3E, 'lower'], [2048, 6, 32, 0x3F]];\n        break;\n\n      case 7:\n        lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1A], [-64, 5, 5, 0x1B], [-32, 4, 5, 0xA], [0, 4, 5, 0xB], [32, 5, 5, 0x1C], [64, 5, 6, 0x1D], [128, 4, 7, 0xC], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1E, 'lower'], [2048, 5, 32, 0x1F]];\n        break;\n\n      case 8:\n        lines = [[-15, 8, 3, 0xFC], [-7, 9, 1, 0x1FC], [-5, 8, 1, 0xFD], [-3, 9, 0, 0x1FD], [-2, 7, 0, 0x7C], [-1, 4, 0, 0xA], [0, 2, 1, 0x0], [2, 5, 0, 0x1A], [3, 6, 0, 0x3A], [4, 3, 4, 0x4], [20, 6, 1, 0x3B], [22, 4, 4, 0xB], [38, 4, 5, 0xC], [70, 5, 6, 0x1B], [134, 5, 7, 0x1C], [262, 6, 7, 0x3C], [390, 7, 8, 0x7D], [646, 6, 10, 0x3D], [-16, 9, 32, 0x1FE, 'lower'], [1670, 9, 32, 0x1FF], [2, 0x1]];\n        break;\n\n      case 9:\n        lines = [[-31, 8, 4, 0xFC], [-15, 9, 2, 0x1FC], [-11, 8, 2, 0xFD], [-7, 9, 1, 0x1FD], [-5, 7, 1, 0x7C], [-3, 4, 1, 0xA], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1A], [5, 6, 1, 0x3A], [7, 3, 5, 0x4], [39, 6, 2, 0x3B], [43, 4, 5, 0xB], [75, 4, 6, 0xC], [139, 5, 7, 0x1B], [267, 5, 8, 0x1C], [523, 6, 8, 0x3C], [779, 7, 9, 0x7D], [1291, 6, 11, 0x3D], [-32, 9, 32, 0x1FE, 'lower'], [3339, 9, 32, 0x1FF], [2, 0x0]];\n        break;\n\n      case 10:\n        lines = [[-21, 7, 4, 0x7A], [-5, 8, 0, 0xFC], [-4, 7, 0, 0x7B], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7C], [5, 8, 0, 0xFD], [6, 2, 6, 0x1], [70, 5, 5, 0x1A], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3A], [582, 6, 9, 0x3B], [1094, 6, 10, 0x3C], [2118, 7, 11, 0x7D], [-22, 8, 32, 0xFE, 'lower'], [4166, 8, 32, 0xFF], [2, 0x2]];\n        break;\n\n      case 11:\n        lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xC], [5, 4, 1, 0xD], [7, 5, 1, 0x1C], [9, 5, 2, 0x1D], [13, 6, 2, 0x3C], [17, 7, 2, 0x7A], [21, 7, 3, 0x7B], [29, 7, 4, 0x7C], [45, 7, 5, 0x7D], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]];\n        break;\n\n      case 12:\n        lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1C], [6, 5, 1, 0x1D], [8, 6, 1, 0x3C], [10, 7, 0, 0x7A], [11, 7, 1, 0x7B], [13, 7, 2, 0x7C], [17, 7, 3, 0x7D], [25, 7, 4, 0x7E], [41, 8, 5, 0xFE], [73, 8, 32, 0xFF]];\n        break;\n\n      case 13:\n        lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xC], [4, 5, 0, 0x1C], [5, 4, 1, 0xD], [7, 3, 3, 0x5], [15, 6, 1, 0x3A], [17, 6, 2, 0x3B], [21, 6, 3, 0x3C], [29, 6, 4, 0x3D], [45, 6, 5, 0x3E], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]];\n        break;\n\n      case 14:\n        lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n        break;\n\n      case 15:\n        lines = [[-24, 7, 4, 0x7C], [-8, 6, 2, 0x3C], [-4, 5, 1, 0x1C], [-2, 4, 0, 0xC], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xD], [3, 5, 1, 0x1D], [5, 6, 2, 0x3D], [9, 7, 4, 0x7D], [-25, 7, 32, 0x7E, 'lower'], [25, 7, 32, 0x7F]];\n        break;\n\n      default:\n        throw new Jbig2Error(\"standard table B.\".concat(number, \" does not exist\"));\n    }\n\n    var length = lines.length,\n        i;\n\n    for (i = 0; i < length; i++) {\n      lines[i] = new HuffmanLine(lines[i]);\n    }\n\n    table = new HuffmanTable(lines, true);\n    standardTablesCache[number] = table;\n    return table;\n  }\n\n  function Reader(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  Reader.prototype = {\n    readBit: function readBit() {\n      if (this.shift < 0) {\n        if (this.position >= this.end) {\n          throw new Jbig2Error('end of data while reading bit');\n        }\n\n        this.currentByte = this.data[this.position++];\n        this.shift = 7;\n      }\n\n      var bit = this.currentByte >> this.shift & 1;\n      this.shift--;\n      return bit;\n    },\n    readBits: function readBits(numBits) {\n      var result = 0,\n          i;\n\n      for (i = numBits - 1; i >= 0; i--) {\n        result |= this.readBit() << i;\n      }\n\n      return result;\n    },\n    byteAlign: function byteAlign() {\n      this.shift = -1;\n    },\n    next: function next() {\n      if (this.position >= this.end) {\n        return -1;\n      }\n\n      return this.data[this.position++];\n    }\n  };\n\n  function getCustomHuffmanTable(index, referredTo, customTables) {\n    var currentIndex = 0,\n        i,\n        ii = referredTo.length,\n        table;\n\n    for (i = 0; i < ii; i++) {\n      table = customTables[referredTo[i]];\n\n      if (table) {\n        if (index === currentIndex) {\n          return table;\n        }\n\n        currentIndex++;\n      }\n    }\n\n    throw new Jbig2Error('can\\'t find custom Huffman table');\n  }\n\n  function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n    var codes = [],\n        i,\n        codeLength;\n\n    for (i = 0; i <= 34; i++) {\n      codeLength = reader.readBits(4);\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n    }\n\n    var runCodesTable = new HuffmanTable(codes, false);\n    codes.length = 0;\n\n    for (i = 0; i < numberOfSymbols;) {\n      codeLength = runCodesTable.decode(reader);\n\n      if (codeLength >= 32) {\n        var repeatedLength = void 0,\n            numberOfRepeats = void 0,\n            j = void 0;\n\n        switch (codeLength) {\n          case 32:\n            if (i === 0) {\n              throw new Jbig2Error('no previous value in symbol ID table');\n            }\n\n            numberOfRepeats = reader.readBits(2) + 3;\n            repeatedLength = codes[i - 1].prefixLength;\n            break;\n\n          case 33:\n            numberOfRepeats = reader.readBits(3) + 3;\n            repeatedLength = 0;\n            break;\n\n          case 34:\n            numberOfRepeats = reader.readBits(7) + 11;\n            repeatedLength = 0;\n            break;\n\n          default:\n            throw new Jbig2Error('invalid code length in symbol ID table');\n        }\n\n        for (j = 0; j < numberOfRepeats; j++) {\n          codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n          i++;\n        }\n      } else {\n        codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n        i++;\n      }\n    }\n\n    reader.byteAlign();\n    var symbolIDTable = new HuffmanTable(codes, false);\n    var customIndex = 0,\n        tableFirstS,\n        tableDeltaS,\n        tableDeltaT;\n\n    switch (textRegion.huffmanFS) {\n      case 0:\n      case 1:\n        tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n        break;\n\n      case 3:\n        tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman FS selector');\n    }\n\n    switch (textRegion.huffmanDS) {\n      case 0:\n      case 1:\n      case 2:\n        tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n        break;\n\n      case 3:\n        tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DS selector');\n    }\n\n    switch (textRegion.huffmanDT) {\n      case 0:\n      case 1:\n      case 2:\n        tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n        break;\n\n      case 3:\n        tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DT selector');\n    }\n\n    if (textRegion.refinement) {\n      throw new Jbig2Error('refinement with Huffman is not supported');\n    }\n\n    return {\n      symbolIDTable: symbolIDTable,\n      tableFirstS: tableFirstS,\n      tableDeltaS: tableDeltaS,\n      tableDeltaT: tableDeltaT\n    };\n  }\n\n  function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n    var customIndex = 0,\n        tableDeltaHeight,\n        tableDeltaWidth;\n\n    switch (dictionary.huffmanDHSelector) {\n      case 0:\n      case 1:\n        tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n        break;\n\n      case 3:\n        tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DH selector');\n    }\n\n    switch (dictionary.huffmanDWSelector) {\n      case 0:\n      case 1:\n        tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n        break;\n\n      case 3:\n        tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DW selector');\n    }\n\n    var tableBitmapSize, tableAggregateInstances;\n\n    if (dictionary.bitmapSizeSelector) {\n      tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n    } else {\n      tableBitmapSize = getStandardTable(1);\n    }\n\n    if (dictionary.aggregationInstancesSelector) {\n      tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n    } else {\n      tableAggregateInstances = getStandardTable(1);\n    }\n\n    return {\n      tableDeltaHeight: tableDeltaHeight,\n      tableDeltaWidth: tableDeltaWidth,\n      tableBitmapSize: tableBitmapSize,\n      tableAggregateInstances: tableAggregateInstances\n    };\n  }\n\n  function readUncompressedBitmap(reader, width, height) {\n    var bitmap = [],\n        x,\n        y,\n        row;\n\n    for (y = 0; y < height; y++) {\n      row = new Uint8Array(width);\n      bitmap.push(row);\n\n      for (x = 0; x < width; x++) {\n        row[x] = reader.readBit();\n      }\n\n      reader.byteAlign();\n    }\n\n    return bitmap;\n  }\n\n  function decodeMMRBitmap(input, width, height, endOfBlock) {\n    var params = {\n      K: -1,\n      Columns: width,\n      Rows: height,\n      BlackIs1: true,\n      EndOfBlock: endOfBlock\n    };\n    var decoder = new _ccitt.CCITTFaxDecoder(input, params);\n    var bitmap = [],\n        x,\n        y,\n        row,\n        currentByte,\n        shift,\n        eof = false;\n\n    for (y = 0; y < height; y++) {\n      row = new Uint8Array(width);\n      bitmap.push(row);\n      shift = -1;\n\n      for (x = 0; x < width; x++) {\n        if (shift < 0) {\n          currentByte = decoder.readNextChar();\n\n          if (currentByte === -1) {\n            currentByte = 0;\n            eof = true;\n          }\n\n          shift = 7;\n        }\n\n        row[x] = currentByte >> shift & 1;\n        shift--;\n      }\n    }\n\n    if (endOfBlock && !eof) {\n      var lookForEOFLimit = 5;\n\n      for (var i = 0; i < lookForEOFLimit; i++) {\n        if (decoder.readNextChar() === -1) {\n          break;\n        }\n      }\n    }\n\n    return bitmap;\n  }\n\n  function Jbig2Image() {}\n\n  Jbig2Image.prototype = {\n    parseChunks: function parseChunks(chunks) {\n      return parseJbig2Chunks(chunks);\n    },\n    parse: function parse(data) {\n      var _parseJbig = parseJbig2(data),\n          imgData = _parseJbig.imgData,\n          width = _parseJbig.width,\n          height = _parseJbig.height;\n\n      this.width = width;\n      this.height = height;\n      return imgData;\n    }\n  };\n  return Jbig2Image;\n}();\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ArithmeticDecoder = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar QeTable = [{\n  qe: 0x5601,\n  nmps: 1,\n  nlps: 1,\n  switchFlag: 1\n}, {\n  qe: 0x3401,\n  nmps: 2,\n  nlps: 6,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 3,\n  nlps: 9,\n  switchFlag: 0\n}, {\n  qe: 0x0AC1,\n  nmps: 4,\n  nlps: 12,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 5,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 38,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 7,\n  nlps: 6,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 8,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 9,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 10,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 11,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 12,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x1C01,\n  nmps: 13,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 29,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 15,\n  nlps: 14,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 16,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x5101,\n  nmps: 17,\n  nlps: 15,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 18,\n  nlps: 16,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 19,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x3401,\n  nmps: 20,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 21,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2801,\n  nmps: 22,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 23,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x2201,\n  nmps: 24,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x1C01,\n  nmps: 25,\n  nlps: 22,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 26,\n  nlps: 23,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 27,\n  nlps: 24,\n  switchFlag: 0\n}, {\n  qe: 0x1401,\n  nmps: 28,\n  nlps: 25,\n  switchFlag: 0\n}, {\n  qe: 0x1201,\n  nmps: 29,\n  nlps: 26,\n  switchFlag: 0\n}, {\n  qe: 0x1101,\n  nmps: 30,\n  nlps: 27,\n  switchFlag: 0\n}, {\n  qe: 0x0AC1,\n  nmps: 31,\n  nlps: 28,\n  switchFlag: 0\n}, {\n  qe: 0x09C1,\n  nmps: 32,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x08A1,\n  nmps: 33,\n  nlps: 30,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 34,\n  nlps: 31,\n  switchFlag: 0\n}, {\n  qe: 0x0441,\n  nmps: 35,\n  nlps: 32,\n  switchFlag: 0\n}, {\n  qe: 0x02A1,\n  nmps: 36,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 37,\n  nlps: 34,\n  switchFlag: 0\n}, {\n  qe: 0x0141,\n  nmps: 38,\n  nlps: 35,\n  switchFlag: 0\n}, {\n  qe: 0x0111,\n  nmps: 39,\n  nlps: 36,\n  switchFlag: 0\n}, {\n  qe: 0x0085,\n  nmps: 40,\n  nlps: 37,\n  switchFlag: 0\n}, {\n  qe: 0x0049,\n  nmps: 41,\n  nlps: 38,\n  switchFlag: 0\n}, {\n  qe: 0x0025,\n  nmps: 42,\n  nlps: 39,\n  switchFlag: 0\n}, {\n  qe: 0x0015,\n  nmps: 43,\n  nlps: 40,\n  switchFlag: 0\n}, {\n  qe: 0x0009,\n  nmps: 44,\n  nlps: 41,\n  switchFlag: 0\n}, {\n  qe: 0x0005,\n  nmps: 45,\n  nlps: 42,\n  switchFlag: 0\n}, {\n  qe: 0x0001,\n  nmps: 45,\n  nlps: 43,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 46,\n  nlps: 46,\n  switchFlag: 0\n}];\n\nvar ArithmeticDecoder =\n/*#__PURE__*/\nfunction () {\n  function ArithmeticDecoder(data, start, end) {\n    _classCallCheck(this, ArithmeticDecoder);\n\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n    this.chigh = data[start];\n    this.clow = 0;\n    this.byteIn();\n    this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;\n    this.clow = this.clow << 7 & 0xFFFF;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  _createClass(ArithmeticDecoder, [{\n    key: \"byteIn\",\n    value: function byteIn() {\n      var data = this.data;\n      var bp = this.bp;\n\n      if (data[bp] === 0xFF) {\n        if (data[bp + 1] > 0x8F) {\n          this.clow += 0xFF00;\n          this.ct = 8;\n        } else {\n          bp++;\n          this.clow += data[bp] << 9;\n          this.ct = 7;\n          this.bp = bp;\n        }\n      } else {\n        bp++;\n        this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;\n        this.ct = 8;\n        this.bp = bp;\n      }\n\n      if (this.clow > 0xFFFF) {\n        this.chigh += this.clow >> 16;\n        this.clow &= 0xFFFF;\n      }\n    }\n  }, {\n    key: \"readBit\",\n    value: function readBit(contexts, pos) {\n      var cx_index = contexts[pos] >> 1,\n          cx_mps = contexts[pos] & 1;\n      var qeTableIcx = QeTable[cx_index];\n      var qeIcx = qeTableIcx.qe;\n      var d;\n      var a = this.a - qeIcx;\n\n      if (this.chigh < qeIcx) {\n        if (a < qeIcx) {\n          a = qeIcx;\n          d = cx_mps;\n          cx_index = qeTableIcx.nmps;\n        } else {\n          a = qeIcx;\n          d = 1 ^ cx_mps;\n\n          if (qeTableIcx.switchFlag === 1) {\n            cx_mps = d;\n          }\n\n          cx_index = qeTableIcx.nlps;\n        }\n      } else {\n        this.chigh -= qeIcx;\n\n        if ((a & 0x8000) !== 0) {\n          this.a = a;\n          return cx_mps;\n        }\n\n        if (a < qeIcx) {\n          d = 1 ^ cx_mps;\n\n          if (qeTableIcx.switchFlag === 1) {\n            cx_mps = d;\n          }\n\n          cx_index = qeTableIcx.nlps;\n        } else {\n          d = cx_mps;\n          cx_index = qeTableIcx.nmps;\n        }\n      }\n\n      do {\n        if (this.ct === 0) {\n          this.byteIn();\n        }\n\n        a <<= 1;\n        this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;\n        this.clow = this.clow << 1 & 0xFFFF;\n        this.ct--;\n      } while ((a & 0x8000) === 0);\n\n      this.a = a;\n      contexts[pos] = cx_index << 1 | cx_mps;\n      return d;\n    }\n  }]);\n\n  return ArithmeticDecoder;\n}();\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpegStream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _jpg = __w_pdfjs_require__(164);\n\nvar JpegStream = function JpegStreamClosure() {\n  function JpegStream(stream, maybeLength, dict, params) {\n    var ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === 0xFF) {\n        stream.skip(-1);\n        break;\n      }\n    }\n\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(JpegStream.prototype, 'bytes', {\n    get: function JpegStream_bytes() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  JpegStream.prototype.ensureBuffer = function (requested) {};\n\n  JpegStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined\n    };\n    var decodeArr = this.dict.getArray('Decode', 'D');\n\n    if (this.forceRGB && Array.isArray(decodeArr)) {\n      var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;\n      var decodeArrLength = decodeArr.length;\n      var transform = new Int32Array(decodeArrLength);\n      var transformNeeded = false;\n      var maxValue = (1 << bitsPerComponent) - 1;\n\n      for (var i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n        transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n\n    if ((0, _primitives.isDict)(this.params)) {\n      var colorTransform = this.params.get('ColorTransform');\n\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n\n    var jpegImage = new _jpg.JpegImage(jpegOptions);\n    jpegImage.parse(this.bytes);\n    var data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  };\n\n  JpegStream.prototype.getIR = function () {\n    var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);\n  };\n\n  return JpegStream;\n}();\n\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar JpegError = function JpegErrorClosure() {\n  function JpegError(msg) {\n    this.message = 'JPEG error: ' + msg;\n  }\n\n  JpegError.prototype = new Error();\n  JpegError.prototype.name = 'JpegError';\n  JpegError.constructor = JpegError;\n  return JpegError;\n}();\n\nvar DNLMarkerError = function DNLMarkerErrorClosure() {\n  function DNLMarkerError(message, scanLines) {\n    this.message = message;\n    this.scanLines = scanLines;\n  }\n\n  DNLMarkerError.prototype = new Error();\n  DNLMarkerError.prototype.name = 'DNLMarkerError';\n  DNLMarkerError.constructor = DNLMarkerError;\n  return DNLMarkerError;\n}();\n\nvar EOIMarkerError = function EOIMarkerErrorClosure() {\n  function EOIMarkerError(message) {\n    this.message = message;\n  }\n\n  EOIMarkerError.prototype = new Error();\n  EOIMarkerError.prototype.name = 'EOIMarkerError';\n  EOIMarkerError.constructor = EOIMarkerError;\n  return EOIMarkerError;\n}();\n\nvar JpegImage = function JpegImageClosure() {\n  var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n  var dctCos1 = 4017;\n  var dctSin1 = 799;\n  var dctCos3 = 3406;\n  var dctSin3 = 2276;\n  var dctCos6 = 1567;\n  var dctSin6 = 3784;\n  var dctSqrt2 = 5793;\n  var dctSqrt1d2 = 2896;\n\n  function JpegImage() {\n    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n        _ref$decodeTransform = _ref.decodeTransform,\n        decodeTransform = _ref$decodeTransform === void 0 ? null : _ref$decodeTransform,\n        _ref$colorTransform = _ref.colorTransform,\n        colorTransform = _ref$colorTransform === void 0 ? -1 : _ref$colorTransform;\n\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  function buildHuffmanTable(codeLengths, values) {\n    var k = 0,\n        code = [],\n        i,\n        j,\n        length = 16;\n\n    while (length > 0 && !codeLengths[length - 1]) {\n      length--;\n    }\n\n    code.push({\n      children: [],\n      index: 0\n    });\n    var p = code[0],\n        q;\n\n    for (i = 0; i < length; i++) {\n      for (j = 0; j < codeLengths[i]; j++) {\n        p = code.pop();\n        p.children[p.index] = values[k];\n\n        while (p.index > 0) {\n          p = code.pop();\n        }\n\n        p.index++;\n        code.push(p);\n\n        while (code.length <= i) {\n          code.push(q = {\n            children: [],\n            index: 0\n          });\n          p.children[p.index] = q.children;\n          p = q;\n        }\n\n        k++;\n      }\n\n      if (i + 1 < length) {\n        code.push(q = {\n          children: [],\n          index: 0\n        });\n        p.children[p.index] = q.children;\n        p = q;\n      }\n    }\n\n    return code[0].children;\n  }\n\n  function getBlockBufferOffset(component, row, col) {\n    return 64 * ((component.blocksPerLine + 1) * row + col);\n  }\n\n  function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n    var parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n    var mcusPerLine = frame.mcusPerLine;\n    var progressive = frame.progressive;\n    var startOffset = offset,\n        bitsData = 0,\n        bitsCount = 0;\n\n    function readBit() {\n      if (bitsCount > 0) {\n        bitsCount--;\n        return bitsData >> bitsCount & 1;\n      }\n\n      bitsData = data[offset++];\n\n      if (bitsData === 0xFF) {\n        var nextByte = data[offset++];\n\n        if (nextByte) {\n          if (nextByte === 0xDC && parseDNLMarker) {\n            offset += 2;\n            var scanLines = data[offset++] << 8 | data[offset++];\n\n            if (scanLines > 0 && scanLines !== frame.scanLines) {\n              throw new DNLMarkerError('Found DNL marker (0xFFDC) while parsing scan data', scanLines);\n            }\n          } else if (nextByte === 0xD9) {\n            throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data');\n          }\n\n          throw new JpegError(\"unexpected marker \".concat((bitsData << 8 | nextByte).toString(16)));\n        }\n      }\n\n      bitsCount = 7;\n      return bitsData >>> 7;\n    }\n\n    function decodeHuffman(tree) {\n      var node = tree;\n\n      while (true) {\n        node = node[readBit()];\n\n        if (typeof node === 'number') {\n          return node;\n        }\n\n        if (_typeof(node) !== 'object') {\n          throw new JpegError('invalid huffman sequence');\n        }\n      }\n    }\n\n    function receive(length) {\n      var n = 0;\n\n      while (length > 0) {\n        n = n << 1 | readBit();\n        length--;\n      }\n\n      return n;\n    }\n\n    function receiveAndExtend(length) {\n      if (length === 1) {\n        return readBit() === 1 ? 1 : -1;\n      }\n\n      var n = receive(length);\n\n      if (n >= 1 << length - 1) {\n        return n;\n      }\n\n      return n + (-1 << length) + 1;\n    }\n\n    function decodeBaseline(component, offset) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t);\n      component.blockData[offset] = component.pred += diff;\n      var k = 1;\n\n      while (k < 64) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15,\n            r = rs >> 4;\n\n        if (s === 0) {\n          if (r < 15) {\n            break;\n          }\n\n          k += 16;\n          continue;\n        }\n\n        k += r;\n        var z = dctZigZag[k];\n        component.blockData[offset + z] = receiveAndExtend(s);\n        k++;\n      }\n    }\n\n    function decodeDCFirst(component, offset) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n      component.blockData[offset] = component.pred += diff;\n    }\n\n    function decodeDCSuccessive(component, offset) {\n      component.blockData[offset] |= readBit() << successive;\n    }\n\n    var eobrun = 0;\n\n    function decodeACFirst(component, offset) {\n      if (eobrun > 0) {\n        eobrun--;\n        return;\n      }\n\n      var k = spectralStart,\n          e = spectralEnd;\n\n      while (k <= e) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15,\n            r = rs >> 4;\n\n        if (s === 0) {\n          if (r < 15) {\n            eobrun = receive(r) + (1 << r) - 1;\n            break;\n          }\n\n          k += 16;\n          continue;\n        }\n\n        k += r;\n        var z = dctZigZag[k];\n        component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);\n        k++;\n      }\n    }\n\n    var successiveACState = 0,\n        successiveACNextValue;\n\n    function decodeACSuccessive(component, offset) {\n      var k = spectralStart;\n      var e = spectralEnd;\n      var r = 0;\n      var s;\n      var rs;\n\n      while (k <= e) {\n        var offsetZ = offset + dctZigZag[k];\n        var sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n        switch (successiveACState) {\n          case 0:\n            rs = decodeHuffman(component.huffmanTableAC);\n            s = rs & 15;\n            r = rs >> 4;\n\n            if (s === 0) {\n              if (r < 15) {\n                eobrun = receive(r) + (1 << r);\n                successiveACState = 4;\n              } else {\n                r = 16;\n                successiveACState = 1;\n              }\n            } else {\n              if (s !== 1) {\n                throw new JpegError('invalid ACn encoding');\n              }\n\n              successiveACNextValue = receiveAndExtend(s);\n              successiveACState = r ? 2 : 3;\n            }\n\n            continue;\n\n          case 1:\n          case 2:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            } else {\n              r--;\n\n              if (r === 0) {\n                successiveACState = successiveACState === 2 ? 3 : 0;\n              }\n            }\n\n            break;\n\n          case 3:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            } else {\n              component.blockData[offsetZ] = successiveACNextValue << successive;\n              successiveACState = 0;\n            }\n\n            break;\n\n          case 4:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            }\n\n            break;\n        }\n\n        k++;\n      }\n\n      if (successiveACState === 4) {\n        eobrun--;\n\n        if (eobrun === 0) {\n          successiveACState = 0;\n        }\n      }\n    }\n\n    function decodeMcu(component, decode, mcu, row, col) {\n      var mcuRow = mcu / mcusPerLine | 0;\n      var mcuCol = mcu % mcusPerLine;\n      var blockRow = mcuRow * component.v + row;\n      var blockCol = mcuCol * component.h + col;\n      var offset = getBlockBufferOffset(component, blockRow, blockCol);\n      decode(component, offset);\n    }\n\n    function decodeBlock(component, decode, mcu) {\n      var blockRow = mcu / component.blocksPerLine | 0;\n      var blockCol = mcu % component.blocksPerLine;\n      var offset = getBlockBufferOffset(component, blockRow, blockCol);\n      decode(component, offset);\n    }\n\n    var componentsLength = components.length;\n    var component, i, j, k, n;\n    var decodeFn;\n\n    if (progressive) {\n      if (spectralStart === 0) {\n        decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n      } else {\n        decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n      }\n    } else {\n      decodeFn = decodeBaseline;\n    }\n\n    var mcu = 0,\n        fileMarker;\n    var mcuExpected;\n\n    if (componentsLength === 1) {\n      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n    } else {\n      mcuExpected = mcusPerLine * frame.mcusPerColumn;\n    }\n\n    var h, v;\n\n    while (mcu < mcuExpected) {\n      var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n\n          mcu++;\n        }\n      }\n\n      bitsCount = 0;\n      fileMarker = findNextFileMarker(data, offset);\n\n      if (fileMarker && fileMarker.invalid) {\n        (0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid);\n        offset = fileMarker.offset;\n      }\n\n      var marker = fileMarker && fileMarker.marker;\n\n      if (!marker || marker <= 0xFF00) {\n        throw new JpegError('marker was not found');\n      }\n\n      if (marker >= 0xFFD0 && marker <= 0xFFD7) {\n        offset += 2;\n      } else {\n        break;\n      }\n    }\n\n    fileMarker = findNextFileMarker(data, offset);\n\n    if (fileMarker && fileMarker.invalid) {\n      (0, _util.warn)('decodeScan - unexpected Scan data, current marker is: ' + fileMarker.invalid);\n      offset = fileMarker.offset;\n    }\n\n    return offset - startOffset;\n  }\n\n  function quantizeAndInverse(component, blockBufferOffset, p) {\n    var qt = component.quantizationTable,\n        blockData = component.blockData;\n    var v0, v1, v2, v3, v4, v5, v6, v7;\n    var p0, p1, p2, p3, p4, p5, p6, p7;\n    var t;\n\n    if (!qt) {\n      throw new JpegError('missing required Quantization Table.');\n    }\n\n    for (var row = 0; row < 64; row += 8) {\n      p0 = blockData[blockBufferOffset + row];\n      p1 = blockData[blockBufferOffset + row + 1];\n      p2 = blockData[blockBufferOffset + row + 2];\n      p3 = blockData[blockBufferOffset + row + 3];\n      p4 = blockData[blockBufferOffset + row + 4];\n      p5 = blockData[blockBufferOffset + row + 5];\n      p6 = blockData[blockBufferOffset + row + 6];\n      p7 = blockData[blockBufferOffset + row + 7];\n      p0 *= qt[row];\n\n      if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n        t = dctSqrt2 * p0 + 512 >> 10;\n        p[row] = t;\n        p[row + 1] = t;\n        p[row + 2] = t;\n        p[row + 3] = t;\n        p[row + 4] = t;\n        p[row + 5] = t;\n        p[row + 6] = t;\n        p[row + 7] = t;\n        continue;\n      }\n\n      p1 *= qt[row + 1];\n      p2 *= qt[row + 2];\n      p3 *= qt[row + 3];\n      p4 *= qt[row + 4];\n      p5 *= qt[row + 5];\n      p6 *= qt[row + 6];\n      p7 *= qt[row + 7];\n      v0 = dctSqrt2 * p0 + 128 >> 8;\n      v1 = dctSqrt2 * p4 + 128 >> 8;\n      v2 = p2;\n      v3 = p6;\n      v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n      v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n      v5 = p3 << 4;\n      v6 = p5 << 4;\n      v0 = v0 + v1 + 1 >> 1;\n      v1 = v0 - v1;\n      t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n      v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n      v3 = t;\n      v4 = v4 + v6 + 1 >> 1;\n      v6 = v4 - v6;\n      v7 = v7 + v5 + 1 >> 1;\n      v5 = v7 - v5;\n      v0 = v0 + v3 + 1 >> 1;\n      v3 = v0 - v3;\n      v1 = v1 + v2 + 1 >> 1;\n      v2 = v1 - v2;\n      t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n      v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n      v7 = t;\n      t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n      v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n      v6 = t;\n      p[row] = v0 + v7;\n      p[row + 7] = v0 - v7;\n      p[row + 1] = v1 + v6;\n      p[row + 6] = v1 - v6;\n      p[row + 2] = v2 + v5;\n      p[row + 5] = v2 - v5;\n      p[row + 3] = v3 + v4;\n      p[row + 4] = v3 - v4;\n    }\n\n    for (var col = 0; col < 8; ++col) {\n      p0 = p[col];\n      p1 = p[col + 8];\n      p2 = p[col + 16];\n      p3 = p[col + 24];\n      p4 = p[col + 32];\n      p5 = p[col + 40];\n      p6 = p[col + 48];\n      p7 = p[col + 56];\n\n      if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n        t = dctSqrt2 * p0 + 8192 >> 14;\n        t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4;\n        blockData[blockBufferOffset + col] = t;\n        blockData[blockBufferOffset + col + 8] = t;\n        blockData[blockBufferOffset + col + 16] = t;\n        blockData[blockBufferOffset + col + 24] = t;\n        blockData[blockBufferOffset + col + 32] = t;\n        blockData[blockBufferOffset + col + 40] = t;\n        blockData[blockBufferOffset + col + 48] = t;\n        blockData[blockBufferOffset + col + 56] = t;\n        continue;\n      }\n\n      v0 = dctSqrt2 * p0 + 2048 >> 12;\n      v1 = dctSqrt2 * p4 + 2048 >> 12;\n      v2 = p2;\n      v3 = p6;\n      v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n      v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n      v5 = p3;\n      v6 = p5;\n      v0 = (v0 + v1 + 1 >> 1) + 4112;\n      v1 = v0 - v1;\n      t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n      v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n      v3 = t;\n      v4 = v4 + v6 + 1 >> 1;\n      v6 = v4 - v6;\n      v7 = v7 + v5 + 1 >> 1;\n      v5 = v7 - v5;\n      v0 = v0 + v3 + 1 >> 1;\n      v3 = v0 - v3;\n      v1 = v1 + v2 + 1 >> 1;\n      v2 = v1 - v2;\n      t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n      v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n      v7 = t;\n      t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n      v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n      v6 = t;\n      p0 = v0 + v7;\n      p7 = v0 - v7;\n      p1 = v1 + v6;\n      p6 = v1 - v6;\n      p2 = v2 + v5;\n      p5 = v2 - v5;\n      p3 = v3 + v4;\n      p4 = v3 - v4;\n      p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4;\n      p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4;\n      p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4;\n      p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4;\n      p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4;\n      p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4;\n      p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4;\n      p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4;\n      blockData[blockBufferOffset + col] = p0;\n      blockData[blockBufferOffset + col + 8] = p1;\n      blockData[blockBufferOffset + col + 16] = p2;\n      blockData[blockBufferOffset + col + 24] = p3;\n      blockData[blockBufferOffset + col + 32] = p4;\n      blockData[blockBufferOffset + col + 40] = p5;\n      blockData[blockBufferOffset + col + 48] = p6;\n      blockData[blockBufferOffset + col + 56] = p7;\n    }\n  }\n\n  function buildComponentData(frame, component) {\n    var blocksPerLine = component.blocksPerLine;\n    var blocksPerColumn = component.blocksPerColumn;\n    var computationBuffer = new Int16Array(64);\n\n    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n        var offset = getBlockBufferOffset(component, blockRow, blockCol);\n        quantizeAndInverse(component, offset, computationBuffer);\n      }\n    }\n\n    return component.blockData;\n  }\n\n  function findNextFileMarker(data, currentPos) {\n    var startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos;\n\n    function peekUint16(pos) {\n      return data[pos] << 8 | data[pos + 1];\n    }\n\n    var maxPos = data.length - 1;\n    var newPos = startPos < currentPos ? startPos : currentPos;\n\n    if (currentPos >= maxPos) {\n      return null;\n    }\n\n    var currentMarker = peekUint16(currentPos);\n\n    if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n      return {\n        invalid: null,\n        marker: currentMarker,\n        offset: currentPos\n      };\n    }\n\n    var newMarker = peekUint16(newPos);\n\n    while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n      if (++newPos >= maxPos) {\n        return null;\n      }\n\n      newMarker = peekUint16(newPos);\n    }\n\n    return {\n      invalid: currentMarker.toString(16),\n      marker: newMarker,\n      offset: newPos\n    };\n  }\n\n  JpegImage.prototype = {\n    parse: function parse(data) {\n      var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          _ref2$dnlScanLines = _ref2.dnlScanLines,\n          dnlScanLines = _ref2$dnlScanLines === void 0 ? null : _ref2$dnlScanLines;\n\n      function readUint16() {\n        var value = data[offset] << 8 | data[offset + 1];\n        offset += 2;\n        return value;\n      }\n\n      function readDataBlock() {\n        var length = readUint16();\n        var endOffset = offset + length - 2;\n        var fileMarker = findNextFileMarker(data, endOffset, offset);\n\n        if (fileMarker && fileMarker.invalid) {\n          (0, _util.warn)('readDataBlock - incorrect length, current marker is: ' + fileMarker.invalid);\n          endOffset = fileMarker.offset;\n        }\n\n        var array = data.subarray(offset, endOffset);\n        offset += array.length;\n        return array;\n      }\n\n      function prepareComponents(frame) {\n        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n        for (var i = 0; i < frame.components.length; i++) {\n          component = frame.components[i];\n          var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n          var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n          var blocksPerLineForMcu = mcusPerLine * component.h;\n          var blocksPerColumnForMcu = mcusPerColumn * component.v;\n          var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n          component.blockData = new Int16Array(blocksBufferSize);\n          component.blocksPerLine = blocksPerLine;\n          component.blocksPerColumn = blocksPerColumn;\n        }\n\n        frame.mcusPerLine = mcusPerLine;\n        frame.mcusPerColumn = mcusPerColumn;\n      }\n\n      var offset = 0;\n      var jfif = null;\n      var adobe = null;\n      var frame, resetInterval;\n      var numSOSMarkers = 0;\n      var quantizationTables = [];\n      var huffmanTablesAC = [],\n          huffmanTablesDC = [];\n      var fileMarker = readUint16();\n\n      if (fileMarker !== 0xFFD8) {\n        throw new JpegError('SOI not found');\n      }\n\n      fileMarker = readUint16();\n\n      markerLoop: while (fileMarker !== 0xFFD9) {\n        var i, j, l;\n\n        switch (fileMarker) {\n          case 0xFFE0:\n          case 0xFFE1:\n          case 0xFFE2:\n          case 0xFFE3:\n          case 0xFFE4:\n          case 0xFFE5:\n          case 0xFFE6:\n          case 0xFFE7:\n          case 0xFFE8:\n          case 0xFFE9:\n          case 0xFFEA:\n          case 0xFFEB:\n          case 0xFFEC:\n          case 0xFFED:\n          case 0xFFEE:\n          case 0xFFEF:\n          case 0xFFFE:\n            var appData = readDataBlock();\n\n            if (fileMarker === 0xFFE0) {\n              if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n                jfif = {\n                  version: {\n                    major: appData[5],\n                    minor: appData[6]\n                  },\n                  densityUnits: appData[7],\n                  xDensity: appData[8] << 8 | appData[9],\n                  yDensity: appData[10] << 8 | appData[11],\n                  thumbWidth: appData[12],\n                  thumbHeight: appData[13],\n                  thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n                };\n              }\n            }\n\n            if (fileMarker === 0xFFEE) {\n              if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) {\n                adobe = {\n                  version: appData[5] << 8 | appData[6],\n                  flags0: appData[7] << 8 | appData[8],\n                  flags1: appData[9] << 8 | appData[10],\n                  transformCode: appData[11]\n                };\n              }\n            }\n\n            break;\n\n          case 0xFFDB:\n            var quantizationTablesLength = readUint16();\n            var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n            var z;\n\n            while (offset < quantizationTablesEnd) {\n              var quantizationTableSpec = data[offset++];\n              var tableData = new Uint16Array(64);\n\n              if (quantizationTableSpec >> 4 === 0) {\n                for (j = 0; j < 64; j++) {\n                  z = dctZigZag[j];\n                  tableData[z] = data[offset++];\n                }\n              } else if (quantizationTableSpec >> 4 === 1) {\n                for (j = 0; j < 64; j++) {\n                  z = dctZigZag[j];\n                  tableData[z] = readUint16();\n                }\n              } else {\n                throw new JpegError('DQT - invalid table spec');\n              }\n\n              quantizationTables[quantizationTableSpec & 15] = tableData;\n            }\n\n            break;\n\n          case 0xFFC0:\n          case 0xFFC1:\n          case 0xFFC2:\n            if (frame) {\n              throw new JpegError('Only single frame JPEGs supported');\n            }\n\n            readUint16();\n            frame = {};\n            frame.extended = fileMarker === 0xFFC1;\n            frame.progressive = fileMarker === 0xFFC2;\n            frame.precision = data[offset++];\n            var sofScanLines = readUint16();\n            frame.scanLines = dnlScanLines || sofScanLines;\n            frame.samplesPerLine = readUint16();\n            frame.components = [];\n            frame.componentIds = {};\n            var componentsCount = data[offset++],\n                componentId;\n            var maxH = 0,\n                maxV = 0;\n\n            for (i = 0; i < componentsCount; i++) {\n              componentId = data[offset];\n              var h = data[offset + 1] >> 4;\n              var v = data[offset + 1] & 15;\n\n              if (maxH < h) {\n                maxH = h;\n              }\n\n              if (maxV < v) {\n                maxV = v;\n              }\n\n              var qId = data[offset + 2];\n              l = frame.components.push({\n                h: h,\n                v: v,\n                quantizationId: qId,\n                quantizationTable: null\n              });\n              frame.componentIds[componentId] = l - 1;\n              offset += 3;\n            }\n\n            frame.maxH = maxH;\n            frame.maxV = maxV;\n            prepareComponents(frame);\n            break;\n\n          case 0xFFC4:\n            var huffmanLength = readUint16();\n\n            for (i = 2; i < huffmanLength;) {\n              var huffmanTableSpec = data[offset++];\n              var codeLengths = new Uint8Array(16);\n              var codeLengthSum = 0;\n\n              for (j = 0; j < 16; j++, offset++) {\n                codeLengthSum += codeLengths[j] = data[offset];\n              }\n\n              var huffmanValues = new Uint8Array(codeLengthSum);\n\n              for (j = 0; j < codeLengthSum; j++, offset++) {\n                huffmanValues[j] = data[offset];\n              }\n\n              i += 17 + codeLengthSum;\n              (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n            }\n\n            break;\n\n          case 0xFFDD:\n            readUint16();\n            resetInterval = readUint16();\n            break;\n\n          case 0xFFDA:\n            var parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n            readUint16();\n            var selectorsCount = data[offset++];\n            var components = [],\n                component;\n\n            for (i = 0; i < selectorsCount; i++) {\n              var componentIndex = frame.componentIds[data[offset++]];\n              component = frame.components[componentIndex];\n              var tableSpec = data[offset++];\n              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n              components.push(component);\n            }\n\n            var spectralStart = data[offset++];\n            var spectralEnd = data[offset++];\n            var successiveApproximation = data[offset++];\n\n            try {\n              var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n              offset += processed;\n            } catch (ex) {\n              if (ex instanceof DNLMarkerError) {\n                (0, _util.warn)(\"\".concat(ex.message, \" -- attempting to re-parse the JPEG image.\"));\n                return this.parse(data, {\n                  dnlScanLines: ex.scanLines\n                });\n              } else if (ex instanceof EOIMarkerError) {\n                (0, _util.warn)(\"\".concat(ex.message, \" -- ignoring the rest of the image data.\"));\n                break markerLoop;\n              }\n\n              throw ex;\n            }\n\n            break;\n\n          case 0xFFDC:\n            offset += 4;\n            break;\n\n          case 0xFFFF:\n            if (data[offset] !== 0xFF) {\n              offset--;\n            }\n\n            break;\n\n          default:\n            if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n              offset -= 3;\n              break;\n            }\n\n            var nextFileMarker = findNextFileMarker(data, offset - 2);\n\n            if (nextFileMarker && nextFileMarker.invalid) {\n              (0, _util.warn)('JpegImage.parse - unexpected data, current marker is: ' + nextFileMarker.invalid);\n              offset = nextFileMarker.offset;\n              break;\n            }\n\n            throw new JpegError('unknown marker ' + fileMarker.toString(16));\n        }\n\n        fileMarker = readUint16();\n      }\n\n      this.width = frame.samplesPerLine;\n      this.height = frame.scanLines;\n      this.jfif = jfif;\n      this.adobe = adobe;\n      this.components = [];\n\n      for (i = 0; i < frame.components.length; i++) {\n        component = frame.components[i];\n        var quantizationTable = quantizationTables[component.quantizationId];\n\n        if (quantizationTable) {\n          component.quantizationTable = quantizationTable;\n        }\n\n        this.components.push({\n          output: buildComponentData(frame, component),\n          scaleX: component.h / frame.maxH,\n          scaleY: component.v / frame.maxV,\n          blocksPerLine: component.blocksPerLine,\n          blocksPerColumn: component.blocksPerColumn\n        });\n      }\n\n      this.numComponents = this.components.length;\n    },\n    _getLinearizedBlockData: function _getLinearizedBlockData(width, height) {\n      var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var scaleX = this.width / width,\n          scaleY = this.height / height;\n      var component, componentScaleX, componentScaleY, blocksPerScanline;\n      var x, y, i, j, k;\n      var index;\n      var offset = 0;\n      var output;\n      var numComponents = this.components.length;\n      var dataLength = width * height * numComponents;\n      var data = new Uint8ClampedArray(dataLength);\n      var xScaleBlockOffset = new Uint32Array(width);\n      var mask3LSB = 0xfffffff8;\n\n      for (i = 0; i < numComponents; i++) {\n        component = this.components[i];\n        componentScaleX = component.scaleX * scaleX;\n        componentScaleY = component.scaleY * scaleY;\n        offset = i;\n        output = component.output;\n        blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n        for (x = 0; x < width; x++) {\n          j = 0 | x * componentScaleX;\n          xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n        }\n\n        for (y = 0; y < height; y++) {\n          j = 0 | y * componentScaleY;\n          index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n          for (x = 0; x < width; x++) {\n            data[offset] = output[index + xScaleBlockOffset[x]];\n            offset += numComponents;\n          }\n        }\n      }\n\n      var transform = this._decodeTransform;\n\n      if (!isSourcePDF && numComponents === 4 && !transform) {\n        transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n      }\n\n      if (transform) {\n        for (i = 0; i < dataLength;) {\n          for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n            data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n          }\n        }\n      }\n\n      return data;\n    },\n\n    get _isColorConversionNeeded() {\n      if (this.adobe) {\n        return !!this.adobe.transformCode;\n      }\n\n      if (this.numComponents === 3) {\n        if (this._colorTransform === 0) {\n          return false;\n        }\n\n        return true;\n      }\n\n      if (this._colorTransform === 1) {\n        return true;\n      }\n\n      return false;\n    },\n\n    _convertYccToRgb: function convertYccToRgb(data) {\n      var Y, Cb, Cr;\n\n      for (var i = 0, length = data.length; i < length; i += 3) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        data[i] = Y - 179.456 + 1.402 * Cr;\n        data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n        data[i + 2] = Y - 226.816 + 1.772 * Cb;\n      }\n\n      return data;\n    },\n    _convertYcckToRgb: function convertYcckToRgb(data) {\n      var Y, Cb, Cr, k;\n      var offset = 0;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        k = data[i + 3];\n        data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n        data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n        data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n      }\n\n      return data.subarray(0, offset);\n    },\n    _convertYcckToCmyk: function convertYcckToCmyk(data) {\n      var Y, Cb, Cr;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        data[i] = 434.456 - Y - 1.402 * Cr;\n        data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n        data[i + 2] = 481.816 - Y - 1.772 * Cb;\n      }\n\n      return data;\n    },\n    _convertCmykToRgb: function convertCmykToRgb(data) {\n      var c, m, y, k;\n      var offset = 0;\n      var scale = 1 / 255;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        c = data[i] * scale;\n        m = data[i + 1] * scale;\n        y = data[i + 2] * scale;\n        k = data[i + 3] * scale;\n        data[offset++] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) - k * (21.86122147463605 * k + 189.48180835922747);\n        data[offset++] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) - k * (20.737325471181034 * k + 187.80453709719578);\n        data[offset++] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 193.58209356861505) - k * (22.33816807309886 * k + 180.12613974708367);\n      }\n\n      return data.subarray(0, offset);\n    },\n    getData: function getData(_ref3) {\n      var width = _ref3.width,\n          height = _ref3.height,\n          _ref3$forceRGB = _ref3.forceRGB,\n          forceRGB = _ref3$forceRGB === void 0 ? false : _ref3$forceRGB,\n          _ref3$isSourcePDF = _ref3.isSourcePDF,\n          isSourcePDF = _ref3$isSourcePDF === void 0 ? false : _ref3$isSourcePDF;\n\n      if (this.numComponents > 4) {\n        throw new JpegError('Unsupported color mode');\n      }\n\n      var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n      if (this.numComponents === 1 && forceRGB) {\n        var dataLength = data.length;\n        var rgbData = new Uint8ClampedArray(dataLength * 3);\n        var offset = 0;\n\n        for (var i = 0; i < dataLength; i++) {\n          var grayColor = data[i];\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n        }\n\n        return rgbData;\n      } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n        return this._convertYccToRgb(data);\n      } else if (this.numComponents === 4) {\n        if (this._isColorConversionNeeded) {\n          if (forceRGB) {\n            return this._convertYcckToRgb(data);\n          }\n\n          return this._convertYcckToCmyk(data);\n        } else if (forceRGB) {\n          return this._convertCmykToRgb(data);\n        }\n      }\n\n      return data;\n    }\n  };\n  return JpegImage;\n}();\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpxStream = void 0;\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jpx = __w_pdfjs_require__(166);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar JpxStream = function JpxStreamClosure() {\n  function JpxStream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(JpxStream.prototype, 'bytes', {\n    get: function JpxStream_bytes() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  JpxStream.prototype.ensureBuffer = function (requested) {};\n\n  JpxStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jpxImage = new _jpx.JpxImage();\n    jpxImage.parse(this.bytes);\n    var width = jpxImage.width;\n    var height = jpxImage.height;\n    var componentsCount = jpxImage.componentsCount;\n    var tileCount = jpxImage.tiles.length;\n\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      var data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (var k = 0; k < tileCount; k++) {\n        var tileComponents = jpxImage.tiles[k];\n        var tileWidth = tileComponents.width;\n        var tileHeight = tileComponents.height;\n        var tileLeft = tileComponents.left;\n        var tileTop = tileComponents.top;\n        var src = tileComponents.items;\n        var srcPosition = 0;\n        var dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        var imgRowSize = width * componentsCount;\n        var tileRowSize = tileWidth * componentsCount;\n\n        for (var j = 0; j < tileHeight; j++) {\n          var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n\n      this.buffer = data;\n    }\n\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  };\n\n  return JpxStream;\n}();\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(162);\n\nvar JpxError = function JpxErrorClosure() {\n  function JpxError(msg) {\n    this.message = 'JPX error: ' + msg;\n  }\n\n  JpxError.prototype = new Error();\n  JpxError.prototype.name = 'JpxError';\n  JpxError.constructor = JpxError;\n  return JpxError;\n}();\n\nvar JpxImage = function JpxImageClosure() {\n  var SubbandsGainLog2 = {\n    'LL': 0,\n    'LH': 1,\n    'HL': 1,\n    'HH': 2\n  };\n\n  function JpxImage() {\n    this.failOnCorruptedImage = false;\n  }\n\n  JpxImage.prototype = {\n    parse: function JpxImage_parse(data) {\n      var head = (0, _util.readUint16)(data, 0);\n\n      if (head === 0xFF4F) {\n        this.parseCodestream(data, 0, data.length);\n        return;\n      }\n\n      var position = 0,\n          length = data.length;\n\n      while (position < length) {\n        var headerSize = 8;\n        var lbox = (0, _util.readUint32)(data, position);\n        var tbox = (0, _util.readUint32)(data, position + 4);\n        position += headerSize;\n\n        if (lbox === 1) {\n          lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);\n          position += 8;\n          headerSize += 8;\n        }\n\n        if (lbox === 0) {\n          lbox = length - position + headerSize;\n        }\n\n        if (lbox < headerSize) {\n          throw new JpxError('Invalid box field size');\n        }\n\n        var dataLength = lbox - headerSize;\n        var jumpDataLength = true;\n\n        switch (tbox) {\n          case 0x6A703268:\n            jumpDataLength = false;\n            break;\n\n          case 0x636F6C72:\n            var method = data[position];\n\n            if (method === 1) {\n              var colorspace = (0, _util.readUint32)(data, position + 3);\n\n              switch (colorspace) {\n                case 16:\n                case 17:\n                case 18:\n                  break;\n\n                default:\n                  (0, _util.warn)('Unknown colorspace ' + colorspace);\n                  break;\n              }\n            } else if (method === 2) {\n              (0, _util.info)('ICC profile not supported');\n            }\n\n            break;\n\n          case 0x6A703263:\n            this.parseCodestream(data, position, position + dataLength);\n            break;\n\n          case 0x6A502020:\n            if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {\n              (0, _util.warn)('Invalid JP2 signature');\n            }\n\n            break;\n\n          case 0x6A501A1A:\n          case 0x66747970:\n          case 0x72726571:\n          case 0x72657320:\n          case 0x69686472:\n            break;\n\n          default:\n            var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF);\n            (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')');\n            break;\n        }\n\n        if (jumpDataLength) {\n          position += dataLength;\n        }\n      }\n    },\n    parseImageProperties: function JpxImage_parseImageProperties(stream) {\n      var newByte = stream.getByte();\n\n      while (newByte >= 0) {\n        var oldByte = newByte;\n        newByte = stream.getByte();\n        var code = oldByte << 8 | newByte;\n\n        if (code === 0xFF51) {\n          stream.skip(4);\n          var Xsiz = stream.getInt32() >>> 0;\n          var Ysiz = stream.getInt32() >>> 0;\n          var XOsiz = stream.getInt32() >>> 0;\n          var YOsiz = stream.getInt32() >>> 0;\n          stream.skip(16);\n          var Csiz = stream.getUint16();\n          this.width = Xsiz - XOsiz;\n          this.height = Ysiz - YOsiz;\n          this.componentsCount = Csiz;\n          this.bitsPerComponent = 8;\n          return;\n        }\n      }\n\n      throw new JpxError('No size marker found in JPX stream');\n    },\n    parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n      var context = {};\n      var doNotRecover = false;\n\n      try {\n        var position = start;\n\n        while (position + 1 < end) {\n          var code = (0, _util.readUint16)(data, position);\n          position += 2;\n          var length = 0,\n              j,\n              sqcd,\n              spqcds,\n              spqcdSize,\n              scalarExpounded,\n              tile;\n\n          switch (code) {\n            case 0xFF4F:\n              context.mainHeader = true;\n              break;\n\n            case 0xFFD9:\n              break;\n\n            case 0xFF51:\n              length = (0, _util.readUint16)(data, position);\n              var siz = {};\n              siz.Xsiz = (0, _util.readUint32)(data, position + 4);\n              siz.Ysiz = (0, _util.readUint32)(data, position + 8);\n              siz.XOsiz = (0, _util.readUint32)(data, position + 12);\n              siz.YOsiz = (0, _util.readUint32)(data, position + 16);\n              siz.XTsiz = (0, _util.readUint32)(data, position + 20);\n              siz.YTsiz = (0, _util.readUint32)(data, position + 24);\n              siz.XTOsiz = (0, _util.readUint32)(data, position + 28);\n              siz.YTOsiz = (0, _util.readUint32)(data, position + 32);\n              var componentsCount = (0, _util.readUint16)(data, position + 36);\n              siz.Csiz = componentsCount;\n              var components = [];\n              j = position + 38;\n\n              for (var i = 0; i < componentsCount; i++) {\n                var component = {\n                  precision: (data[j] & 0x7F) + 1,\n                  isSigned: !!(data[j] & 0x80),\n                  XRsiz: data[j + 1],\n                  YRsiz: data[j + 2]\n                };\n                j += 3;\n                calculateComponentDimensions(component, siz);\n                components.push(component);\n              }\n\n              context.SIZ = siz;\n              context.components = components;\n              calculateTileGrids(context, components);\n              context.QCC = [];\n              context.COC = [];\n              break;\n\n            case 0xFF5C:\n              length = (0, _util.readUint16)(data, position);\n              var qcd = {};\n              j = position + 2;\n              sqcd = data[j++];\n\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n\n                default:\n                  throw new Error('Invalid SQcd value ' + sqcd);\n              }\n\n              qcd.noQuantization = spqcdSize === 8;\n              qcd.scalarExpounded = scalarExpounded;\n              qcd.guardBits = sqcd >> 5;\n              spqcds = [];\n\n              while (j < length + position) {\n                var spqcd = {};\n\n                if (spqcdSize === 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                  j += 2;\n                }\n\n                spqcds.push(spqcd);\n              }\n\n              qcd.SPqcds = spqcds;\n\n              if (context.mainHeader) {\n                context.QCD = qcd;\n              } else {\n                context.currentTile.QCD = qcd;\n                context.currentTile.QCC = [];\n              }\n\n              break;\n\n            case 0xFF5D:\n              length = (0, _util.readUint16)(data, position);\n              var qcc = {};\n              j = position + 2;\n              var cqcc;\n\n              if (context.SIZ.Csiz < 257) {\n                cqcc = data[j++];\n              } else {\n                cqcc = (0, _util.readUint16)(data, j);\n                j += 2;\n              }\n\n              sqcd = data[j++];\n\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n\n                default:\n                  throw new Error('Invalid SQcd value ' + sqcd);\n              }\n\n              qcc.noQuantization = spqcdSize === 8;\n              qcc.scalarExpounded = scalarExpounded;\n              qcc.guardBits = sqcd >> 5;\n              spqcds = [];\n\n              while (j < length + position) {\n                spqcd = {};\n\n                if (spqcdSize === 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                  j += 2;\n                }\n\n                spqcds.push(spqcd);\n              }\n\n              qcc.SPqcds = spqcds;\n\n              if (context.mainHeader) {\n                context.QCC[cqcc] = qcc;\n              } else {\n                context.currentTile.QCC[cqcc] = qcc;\n              }\n\n              break;\n\n            case 0xFF52:\n              length = (0, _util.readUint16)(data, position);\n              var cod = {};\n              j = position + 2;\n              var scod = data[j++];\n              cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n              cod.sopMarkerUsed = !!(scod & 2);\n              cod.ephMarkerUsed = !!(scod & 4);\n              cod.progressionOrder = data[j++];\n              cod.layersCount = (0, _util.readUint16)(data, j);\n              j += 2;\n              cod.multipleComponentTransform = data[j++];\n              cod.decompositionLevelsCount = data[j++];\n              cod.xcb = (data[j++] & 0xF) + 2;\n              cod.ycb = (data[j++] & 0xF) + 2;\n              var blockStyle = data[j++];\n              cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n              cod.resetContextProbabilities = !!(blockStyle & 2);\n              cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n              cod.verticallyStripe = !!(blockStyle & 8);\n              cod.predictableTermination = !!(blockStyle & 16);\n              cod.segmentationSymbolUsed = !!(blockStyle & 32);\n              cod.reversibleTransformation = data[j++];\n\n              if (cod.entropyCoderWithCustomPrecincts) {\n                var precinctsSizes = [];\n\n                while (j < length + position) {\n                  var precinctsSize = data[j++];\n                  precinctsSizes.push({\n                    PPx: precinctsSize & 0xF,\n                    PPy: precinctsSize >> 4\n                  });\n                }\n\n                cod.precinctsSizes = precinctsSizes;\n              }\n\n              var unsupported = [];\n\n              if (cod.selectiveArithmeticCodingBypass) {\n                unsupported.push('selectiveArithmeticCodingBypass');\n              }\n\n              if (cod.resetContextProbabilities) {\n                unsupported.push('resetContextProbabilities');\n              }\n\n              if (cod.terminationOnEachCodingPass) {\n                unsupported.push('terminationOnEachCodingPass');\n              }\n\n              if (cod.verticallyStripe) {\n                unsupported.push('verticallyStripe');\n              }\n\n              if (cod.predictableTermination) {\n                unsupported.push('predictableTermination');\n              }\n\n              if (unsupported.length > 0) {\n                doNotRecover = true;\n                throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');\n              }\n\n              if (context.mainHeader) {\n                context.COD = cod;\n              } else {\n                context.currentTile.COD = cod;\n                context.currentTile.COC = [];\n              }\n\n              break;\n\n            case 0xFF90:\n              length = (0, _util.readUint16)(data, position);\n              tile = {};\n              tile.index = (0, _util.readUint16)(data, position + 2);\n              tile.length = (0, _util.readUint32)(data, position + 4);\n              tile.dataEnd = tile.length + position - 2;\n              tile.partIndex = data[position + 8];\n              tile.partsCount = data[position + 9];\n              context.mainHeader = false;\n\n              if (tile.partIndex === 0) {\n                tile.COD = context.COD;\n                tile.COC = context.COC.slice(0);\n                tile.QCD = context.QCD;\n                tile.QCC = context.QCC.slice(0);\n              }\n\n              context.currentTile = tile;\n              break;\n\n            case 0xFF93:\n              tile = context.currentTile;\n\n              if (tile.partIndex === 0) {\n                initializeTile(context, tile.index);\n                buildPackets(context);\n              }\n\n              length = tile.dataEnd - position;\n              parseTilePackets(context, data, position, length);\n              break;\n\n            case 0xFF55:\n            case 0xFF57:\n            case 0xFF58:\n            case 0xFF64:\n              length = (0, _util.readUint16)(data, position);\n              break;\n\n            case 0xFF53:\n              throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');\n\n            default:\n              throw new Error('Unknown codestream code: ' + code.toString(16));\n          }\n\n          position += length;\n        }\n      } catch (e) {\n        if (doNotRecover || this.failOnCorruptedImage) {\n          throw new JpxError(e.message);\n        } else {\n          (0, _util.warn)('JPX: Trying to recover from: ' + e.message);\n        }\n      }\n\n      this.tiles = transformComponents(context);\n      this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n      this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n      this.componentsCount = context.SIZ.Csiz;\n    }\n  };\n\n  function calculateComponentDimensions(component, siz) {\n    component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n    component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n    component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n    component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n    component.width = component.x1 - component.x0;\n    component.height = component.y1 - component.y0;\n  }\n\n  function calculateTileGrids(context, components) {\n    var siz = context.SIZ;\n    var tile,\n        tiles = [];\n    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n    for (var q = 0; q < numYtiles; q++) {\n      for (var p = 0; p < numXtiles; p++) {\n        tile = {};\n        tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n        tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n        tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n        tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n        tile.width = tile.tx1 - tile.tx0;\n        tile.height = tile.ty1 - tile.ty0;\n        tile.components = [];\n        tiles.push(tile);\n      }\n    }\n\n    context.tiles = tiles;\n    var componentsCount = siz.Csiz;\n\n    for (var i = 0, ii = componentsCount; i < ii; i++) {\n      var component = components[i];\n\n      for (var j = 0, jj = tiles.length; j < jj; j++) {\n        var tileComponent = {};\n        tile = tiles[j];\n        tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n        tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n        tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n        tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n        tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n        tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n        tile.components[i] = tileComponent;\n      }\n    }\n  }\n\n  function getBlocksDimensions(context, component, r) {\n    var codOrCoc = component.codingStyleParameters;\n    var result = {};\n\n    if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n      result.PPx = 15;\n      result.PPy = 15;\n    } else {\n      result.PPx = codOrCoc.precinctsSizes[r].PPx;\n      result.PPy = codOrCoc.precinctsSizes[r].PPy;\n    }\n\n    result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n    result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n    return result;\n  }\n\n  function buildPrecincts(context, resolution, dimensions) {\n    var precinctWidth = 1 << dimensions.PPx;\n    var precinctHeight = 1 << dimensions.PPy;\n    var isZeroRes = resolution.resLevel === 0;\n    var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n    var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n    var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n    var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n    var numprecincts = numprecinctswide * numprecinctshigh;\n    resolution.precinctParameters = {\n      precinctWidth: precinctWidth,\n      precinctHeight: precinctHeight,\n      numprecinctswide: numprecinctswide,\n      numprecinctshigh: numprecinctshigh,\n      numprecincts: numprecincts,\n      precinctWidthInSubband: precinctWidthInSubband,\n      precinctHeightInSubband: precinctHeightInSubband\n    };\n  }\n\n  function buildCodeblocks(context, subband, dimensions) {\n    var xcb_ = dimensions.xcb_;\n    var ycb_ = dimensions.ycb_;\n    var codeblockWidth = 1 << xcb_;\n    var codeblockHeight = 1 << ycb_;\n    var cbx0 = subband.tbx0 >> xcb_;\n    var cby0 = subband.tby0 >> ycb_;\n    var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n    var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n    var precinctParameters = subband.resolution.precinctParameters;\n    var codeblocks = [];\n    var precincts = [];\n    var i, j, codeblock, precinctNumber;\n\n    for (j = cby0; j < cby1; j++) {\n      for (i = cbx0; i < cbx1; i++) {\n        codeblock = {\n          cbx: i,\n          cby: j,\n          tbx0: codeblockWidth * i,\n          tby0: codeblockHeight * j,\n          tbx1: codeblockWidth * (i + 1),\n          tby1: codeblockHeight * (j + 1)\n        };\n        codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n        codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n        codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n        codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n        var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n        var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n        precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n        codeblock.precinctNumber = precinctNumber;\n        codeblock.subbandType = subband.type;\n        codeblock.Lblock = 3;\n\n        if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n          continue;\n        }\n\n        codeblocks.push(codeblock);\n        var precinct = precincts[precinctNumber];\n\n        if (precinct !== undefined) {\n          if (i < precinct.cbxMin) {\n            precinct.cbxMin = i;\n          } else if (i > precinct.cbxMax) {\n            precinct.cbxMax = i;\n          }\n\n          if (j < precinct.cbyMin) {\n            precinct.cbxMin = j;\n          } else if (j > precinct.cbyMax) {\n            precinct.cbyMax = j;\n          }\n        } else {\n          precincts[precinctNumber] = precinct = {\n            cbxMin: i,\n            cbyMin: j,\n            cbxMax: i,\n            cbyMax: j\n          };\n        }\n\n        codeblock.precinct = precinct;\n      }\n    }\n\n    subband.codeblockParameters = {\n      codeblockWidth: xcb_,\n      codeblockHeight: ycb_,\n      numcodeblockwide: cbx1 - cbx0 + 1,\n      numcodeblockhigh: cby1 - cby0 + 1\n    };\n    subband.codeblocks = codeblocks;\n    subband.precincts = precincts;\n  }\n\n  function createPacket(resolution, precinctNumber, layerNumber) {\n    var precinctCodeblocks = [];\n    var subbands = resolution.subbands;\n\n    for (var i = 0, ii = subbands.length; i < ii; i++) {\n      var subband = subbands[i];\n      var codeblocks = subband.codeblocks;\n\n      for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n        var codeblock = codeblocks[j];\n\n        if (codeblock.precinctNumber !== precinctNumber) {\n          continue;\n        }\n\n        precinctCodeblocks.push(codeblock);\n      }\n    }\n\n    return {\n      layerNumber: layerNumber,\n      codeblocks: precinctCodeblocks\n    };\n  }\n\n  function LayerResolutionComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var l = 0,\n        r = 0,\n        i = 0,\n        k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; l < layersCount; l++) {\n        for (; r <= maxDecompositionLevelsCount; r++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n\n            k = 0;\n          }\n\n          i = 0;\n        }\n\n        r = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ResolutionLayerComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var r = 0,\n        l = 0,\n        i = 0,\n        k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; l < layersCount; l++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n\n            k = 0;\n          }\n\n          i = 0;\n        }\n\n        l = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ResolutionPositionComponentLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var l, r, c, p;\n    var maxDecompositionLevelsCount = 0;\n\n    for (c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n    for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n      var maxNumPrecincts = 0;\n\n      for (c = 0; c < componentsCount; ++c) {\n        var resolutions = tile.components[c].resolutions;\n\n        if (r < resolutions.length) {\n          maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n        }\n      }\n\n      maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n    }\n\n    l = 0;\n    r = 0;\n    c = 0;\n    p = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; p < maxNumPrecinctsInLevel[r]; p++) {\n          for (; c < componentsCount; c++) {\n            var component = tile.components[c];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            if (p >= numprecincts) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              var packet = createPacket(resolution, p, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          c = 0;\n        }\n\n        p = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function PositionComponentResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var precinctsIterationSizes = precinctsSizes;\n    var l = 0,\n        r = 0,\n        c = 0,\n        px = 0,\n        py = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; c < componentsCount; c++) {\n            var component = tile.components[c];\n            var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n              var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n              if (k === null) {\n                continue;\n              }\n\n              for (; l < layersCount;) {\n                var packet = createPacket(resolution, k, l);\n                l++;\n                return packet;\n              }\n\n              l = 0;\n            }\n\n            r = 0;\n          }\n\n          c = 0;\n        }\n\n        px = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ComponentPositionResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var l = 0,\n        r = 0,\n        c = 0,\n        px = 0,\n        py = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; c < componentsCount; ++c) {\n        var component = tile.components[c];\n        var precinctsIterationSizes = precinctsSizes.components[c];\n        var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n        for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n          for (; px < precinctsIterationSizes.maxNumWide; px++) {\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n              var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n              if (k === null) {\n                continue;\n              }\n\n              for (; l < layersCount;) {\n                var packet = createPacket(resolution, k, l);\n                l++;\n                return packet;\n              }\n\n              l = 0;\n            }\n\n            r = 0;\n          }\n\n          px = 0;\n        }\n\n        py = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n    var posX = pxIndex * precinctIterationSizes.minWidth;\n    var posY = pyIndex * precinctIterationSizes.minHeight;\n\n    if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n      return null;\n    }\n\n    var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n    return posX / sizeInImageScale.height + startPrecinctRowIndex;\n  }\n\n  function getPrecinctSizesInImageScale(tile) {\n    var componentsCount = tile.components.length;\n    var minWidth = Number.MAX_VALUE;\n    var minHeight = Number.MAX_VALUE;\n    var maxNumWide = 0;\n    var maxNumHigh = 0;\n    var sizePerComponent = new Array(componentsCount);\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n      var sizePerResolution = new Array(decompositionLevelsCount + 1);\n      var minWidthCurrentComponent = Number.MAX_VALUE;\n      var minHeightCurrentComponent = Number.MAX_VALUE;\n      var maxNumWideCurrentComponent = 0;\n      var maxNumHighCurrentComponent = 0;\n      var scale = 1;\n\n      for (var r = decompositionLevelsCount; r >= 0; --r) {\n        var resolution = component.resolutions[r];\n        var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n        var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n        minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n        minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n        maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n        maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n        sizePerResolution[r] = {\n          width: widthCurrentResolution,\n          height: heightCurrentResolution\n        };\n        scale <<= 1;\n      }\n\n      minWidth = Math.min(minWidth, minWidthCurrentComponent);\n      minHeight = Math.min(minHeight, minHeightCurrentComponent);\n      maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n      maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n      sizePerComponent[c] = {\n        resolutions: sizePerResolution,\n        minWidth: minWidthCurrentComponent,\n        minHeight: minHeightCurrentComponent,\n        maxNumWide: maxNumWideCurrentComponent,\n        maxNumHigh: maxNumHighCurrentComponent\n      };\n    }\n\n    return {\n      components: sizePerComponent,\n      minWidth: minWidth,\n      minHeight: minHeight,\n      maxNumWide: maxNumWide,\n      maxNumHigh: maxNumHigh\n    };\n  }\n\n  function buildPackets(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var componentsCount = siz.Csiz;\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n      var resolutions = [];\n      var subbands = [];\n\n      for (var r = 0; r <= decompositionLevelsCount; r++) {\n        var blocksDimensions = getBlocksDimensions(context, component, r);\n        var resolution = {};\n        var scale = 1 << decompositionLevelsCount - r;\n        resolution.trx0 = Math.ceil(component.tcx0 / scale);\n        resolution.try0 = Math.ceil(component.tcy0 / scale);\n        resolution.trx1 = Math.ceil(component.tcx1 / scale);\n        resolution.try1 = Math.ceil(component.tcy1 / scale);\n        resolution.resLevel = r;\n        buildPrecincts(context, resolution, blocksDimensions);\n        resolutions.push(resolution);\n        var subband;\n\n        if (r === 0) {\n          subband = {};\n          subband.type = 'LL';\n          subband.tbx0 = Math.ceil(component.tcx0 / scale);\n          subband.tby0 = Math.ceil(component.tcy0 / scale);\n          subband.tbx1 = Math.ceil(component.tcx1 / scale);\n          subband.tby1 = Math.ceil(component.tcy1 / scale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolution.subbands = [subband];\n        } else {\n          var bscale = 1 << decompositionLevelsCount - r + 1;\n          var resolutionSubbands = [];\n          subband = {};\n          subband.type = 'HL';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          subband = {};\n          subband.type = 'LH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          subband = {};\n          subband.type = 'HH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          resolution.subbands = resolutionSubbands;\n        }\n      }\n\n      component.resolutions = resolutions;\n      component.subbands = subbands;\n    }\n\n    var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n    switch (progressionOrder) {\n      case 0:\n        tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n        break;\n\n      case 1:\n        tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n        break;\n\n      case 2:\n        tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n        break;\n\n      case 3:\n        tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n        break;\n\n      case 4:\n        tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n        break;\n\n      default:\n        throw new JpxError(\"Unsupported progression order \".concat(progressionOrder));\n    }\n  }\n\n  function parseTilePackets(context, data, offset, dataLength) {\n    var position = 0;\n    var buffer,\n        bufferSize = 0,\n        skipNextBit = false;\n\n    function readBits(count) {\n      while (bufferSize < count) {\n        var b = data[offset + position];\n        position++;\n\n        if (skipNextBit) {\n          buffer = buffer << 7 | b;\n          bufferSize += 7;\n          skipNextBit = false;\n        } else {\n          buffer = buffer << 8 | b;\n          bufferSize += 8;\n        }\n\n        if (b === 0xFF) {\n          skipNextBit = true;\n        }\n      }\n\n      bufferSize -= count;\n      return buffer >>> bufferSize & (1 << count) - 1;\n    }\n\n    function skipMarkerIfEqual(value) {\n      if (data[offset + position - 1] === 0xFF && data[offset + position] === value) {\n        skipBytes(1);\n        return true;\n      } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) {\n        skipBytes(2);\n        return true;\n      }\n\n      return false;\n    }\n\n    function skipBytes(count) {\n      position += count;\n    }\n\n    function alignToByte() {\n      bufferSize = 0;\n\n      if (skipNextBit) {\n        position++;\n        skipNextBit = false;\n      }\n    }\n\n    function readCodingpasses() {\n      if (readBits(1) === 0) {\n        return 1;\n      }\n\n      if (readBits(1) === 0) {\n        return 2;\n      }\n\n      var value = readBits(2);\n\n      if (value < 3) {\n        return value + 3;\n      }\n\n      value = readBits(5);\n\n      if (value < 31) {\n        return value + 6;\n      }\n\n      value = readBits(7);\n      return value + 37;\n    }\n\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var sopMarkerUsed = context.COD.sopMarkerUsed;\n    var ephMarkerUsed = context.COD.ephMarkerUsed;\n    var packetsIterator = tile.packetsIterator;\n\n    while (position < dataLength) {\n      alignToByte();\n\n      if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n        skipBytes(4);\n      }\n\n      var packet = packetsIterator.nextPacket();\n\n      if (!readBits(1)) {\n        continue;\n      }\n\n      var layerNumber = packet.layerNumber;\n      var queue = [],\n          codeblock;\n\n      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n        codeblock = packet.codeblocks[i];\n        var precinct = codeblock.precinct;\n        var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n        var codeblockRow = codeblock.cby - precinct.cbyMin;\n        var codeblockIncluded = false;\n        var firstTimeInclusion = false;\n        var valueReady;\n\n        if (codeblock['included'] !== undefined) {\n          codeblockIncluded = !!readBits(1);\n        } else {\n          precinct = codeblock.precinct;\n          var inclusionTree, zeroBitPlanesTree;\n\n          if (precinct['inclusionTree'] !== undefined) {\n            inclusionTree = precinct.inclusionTree;\n          } else {\n            var width = precinct.cbxMax - precinct.cbxMin + 1;\n            var height = precinct.cbyMax - precinct.cbyMin + 1;\n            inclusionTree = new InclusionTree(width, height, layerNumber);\n            zeroBitPlanesTree = new TagTree(width, height);\n            precinct.inclusionTree = inclusionTree;\n            precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n          }\n\n          if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n            while (true) {\n              if (readBits(1)) {\n                valueReady = !inclusionTree.nextLevel();\n\n                if (valueReady) {\n                  codeblock.included = true;\n                  codeblockIncluded = firstTimeInclusion = true;\n                  break;\n                }\n              } else {\n                inclusionTree.incrementValue(layerNumber);\n                break;\n              }\n            }\n          }\n        }\n\n        if (!codeblockIncluded) {\n          continue;\n        }\n\n        if (firstTimeInclusion) {\n          zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n          zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !zeroBitPlanesTree.nextLevel();\n\n              if (valueReady) {\n                break;\n              }\n            } else {\n              zeroBitPlanesTree.incrementValue();\n            }\n          }\n\n          codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n        }\n\n        var codingpasses = readCodingpasses();\n\n        while (readBits(1)) {\n          codeblock.Lblock++;\n        }\n\n        var codingpassesLog2 = (0, _util.log2)(codingpasses);\n        var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n        var codedDataLength = readBits(bits);\n        queue.push({\n          codeblock: codeblock,\n          codingpasses: codingpasses,\n          dataLength: codedDataLength\n        });\n      }\n\n      alignToByte();\n\n      if (ephMarkerUsed) {\n        skipMarkerIfEqual(0x92);\n      }\n\n      while (queue.length > 0) {\n        var packetItem = queue.shift();\n        codeblock = packetItem.codeblock;\n\n        if (codeblock['data'] === undefined) {\n          codeblock.data = [];\n        }\n\n        codeblock.data.push({\n          data: data,\n          start: offset + position,\n          end: offset + position + packetItem.dataLength,\n          codingpasses: packetItem.codingpasses\n        });\n        position += packetItem.dataLength;\n      }\n    }\n\n    return position;\n  }\n\n  function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n    var x0 = subband.tbx0;\n    var y0 = subband.tby0;\n    var width = subband.tbx1 - subband.tbx0;\n    var codeblocks = subband.codeblocks;\n    var right = subband.type.charAt(0) === 'H' ? 1 : 0;\n    var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;\n\n    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n      var codeblock = codeblocks[i];\n      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n      var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n      if (blockWidth === 0 || blockHeight === 0) {\n        continue;\n      }\n\n      if (codeblock['data'] === undefined) {\n        continue;\n      }\n\n      var bitModel, currentCodingpassType;\n      bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n      currentCodingpassType = 2;\n      var data = codeblock.data,\n          totalLength = 0,\n          codingpasses = 0;\n      var j, jj, dataItem;\n\n      for (j = 0, jj = data.length; j < jj; j++) {\n        dataItem = data[j];\n        totalLength += dataItem.end - dataItem.start;\n        codingpasses += dataItem.codingpasses;\n      }\n\n      var encodedData = new Uint8Array(totalLength);\n      var position = 0;\n\n      for (j = 0, jj = data.length; j < jj; j++) {\n        dataItem = data[j];\n        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n        encodedData.set(chunk, position);\n        position += chunk.length;\n      }\n\n      var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n      bitModel.setDecoder(decoder);\n\n      for (j = 0; j < codingpasses; j++) {\n        switch (currentCodingpassType) {\n          case 0:\n            bitModel.runSignificancePropagationPass();\n            break;\n\n          case 1:\n            bitModel.runMagnitudeRefinementPass();\n            break;\n\n          case 2:\n            bitModel.runCleanupPass();\n\n            if (segmentationSymbolUsed) {\n              bitModel.checkSegmentationSymbol();\n            }\n\n            break;\n        }\n\n        currentCodingpassType = (currentCodingpassType + 1) % 3;\n      }\n\n      var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n      var sign = bitModel.coefficentsSign;\n      var magnitude = bitModel.coefficentsMagnitude;\n      var bitsDecoded = bitModel.bitsDecoded;\n      var magnitudeCorrection = reversible ? 0 : 0.5;\n      var k, n, nb;\n      position = 0;\n      var interleave = subband.type !== 'LL';\n\n      for (j = 0; j < blockHeight; j++) {\n        var row = offset / width | 0;\n        var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n        for (k = 0; k < blockWidth; k++) {\n          n = magnitude[position];\n\n          if (n !== 0) {\n            n = (n + magnitudeCorrection) * delta;\n\n            if (sign[position] !== 0) {\n              n = -n;\n            }\n\n            nb = bitsDecoded[position];\n            var pos = interleave ? levelOffset + (offset << 1) : offset;\n\n            if (reversible && nb >= mb) {\n              coefficients[pos] = n;\n            } else {\n              coefficients[pos] = n * (1 << mb - nb);\n            }\n          }\n\n          offset++;\n          position++;\n        }\n\n        offset += width - blockWidth;\n      }\n    }\n  }\n\n  function transformTile(context, tile, c) {\n    var component = tile.components[c];\n    var codingStyleParameters = component.codingStyleParameters;\n    var quantizationParameters = component.quantizationParameters;\n    var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n    var spqcds = quantizationParameters.SPqcds;\n    var scalarExpounded = quantizationParameters.scalarExpounded;\n    var guardBits = quantizationParameters.guardBits;\n    var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n    var precision = context.components[c].precision;\n    var reversible = codingStyleParameters.reversibleTransformation;\n    var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n    var subbandCoefficients = [];\n    var b = 0;\n\n    for (var i = 0; i <= decompositionLevelsCount; i++) {\n      var resolution = component.resolutions[i];\n      var width = resolution.trx1 - resolution.trx0;\n      var height = resolution.try1 - resolution.try0;\n      var coefficients = new Float32Array(width * height);\n\n      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n        var mu, epsilon;\n\n        if (!scalarExpounded) {\n          mu = spqcds[0].mu;\n          epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n        } else {\n          mu = spqcds[b].mu;\n          epsilon = spqcds[b].epsilon;\n          b++;\n        }\n\n        var subband = resolution.subbands[j];\n        var gainLog2 = SubbandsGainLog2[subband.type];\n        var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048);\n        var mb = guardBits + epsilon - 1;\n        copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n      }\n\n      subbandCoefficients.push({\n        width: width,\n        height: height,\n        items: coefficients\n      });\n    }\n\n    var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n    return {\n      left: component.tcx0,\n      top: component.tcy0,\n      width: result.width,\n      height: result.height,\n      items: result.items\n    };\n  }\n\n  function transformComponents(context) {\n    var siz = context.SIZ;\n    var components = context.components;\n    var componentsCount = siz.Csiz;\n    var resultImages = [];\n\n    for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n      var tile = context.tiles[i];\n      var transformedTiles = [];\n      var c;\n\n      for (c = 0; c < componentsCount; c++) {\n        transformedTiles[c] = transformTile(context, tile, c);\n      }\n\n      var tile0 = transformedTiles[0];\n      var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n      var result = {\n        left: tile0.left,\n        top: tile0.top,\n        width: tile0.width,\n        height: tile0.height,\n        items: out\n      };\n      var shift, offset;\n      var pos = 0,\n          j,\n          jj,\n          y0,\n          y1,\n          y2;\n\n      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n        var fourComponents = componentsCount === 4;\n        var y0items = transformedTiles[0].items;\n        var y1items = transformedTiles[1].items;\n        var y2items = transformedTiles[2].items;\n        var y3items = fourComponents ? transformedTiles[3].items : null;\n        shift = components[0].precision - 8;\n        offset = (128 << shift) + 0.5;\n        var component0 = tile.components[0];\n        var alpha01 = componentsCount - 3;\n        jj = y0items.length;\n\n        if (!component0.codingStyleParameters.reversibleTransformation) {\n          for (j = 0; j < jj; j++, pos += alpha01) {\n            y0 = y0items[j] + offset;\n            y1 = y1items[j];\n            y2 = y2items[j];\n            out[pos++] = y0 + 1.402 * y2 >> shift;\n            out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n            out[pos++] = y0 + 1.772 * y1 >> shift;\n          }\n        } else {\n          for (j = 0; j < jj; j++, pos += alpha01) {\n            y0 = y0items[j] + offset;\n            y1 = y1items[j];\n            y2 = y2items[j];\n            var g = y0 - (y2 + y1 >> 2);\n            out[pos++] = g + y2 >> shift;\n            out[pos++] = g >> shift;\n            out[pos++] = g + y1 >> shift;\n          }\n        }\n\n        if (fourComponents) {\n          for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n            out[pos] = y3items[j] + offset >> shift;\n          }\n        }\n      } else {\n        for (c = 0; c < componentsCount; c++) {\n          var items = transformedTiles[c].items;\n          shift = components[c].precision - 8;\n          offset = (128 << shift) + 0.5;\n\n          for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n            out[pos] = items[j] + offset >> shift;\n            pos += componentsCount;\n          }\n        }\n      }\n\n      resultImages.push(result);\n    }\n\n    return resultImages;\n  }\n\n  function initializeTile(context, tileIndex) {\n    var siz = context.SIZ;\n    var componentsCount = siz.Csiz;\n    var tile = context.tiles[tileIndex];\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n      component.quantizationParameters = qcdOrQcc;\n      var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n      component.codingStyleParameters = codOrCoc;\n    }\n\n    tile.codingStyleDefaultParameters = context.currentTile.COD;\n  }\n\n  var TagTree = function TagTreeClosure() {\n    function TagTree(width, height) {\n      var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n      this.levels = [];\n\n      for (var i = 0; i < levelsLength; i++) {\n        var level = {\n          width: width,\n          height: height,\n          items: []\n        };\n        this.levels.push(level);\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n\n    TagTree.prototype = {\n      reset: function TagTree_reset(i, j) {\n        var currentLevel = 0,\n            value = 0,\n            level;\n\n        while (currentLevel < this.levels.length) {\n          level = this.levels[currentLevel];\n          var index = i + j * level.width;\n\n          if (level.items[index] !== undefined) {\n            value = level.items[index];\n            break;\n          }\n\n          level.index = index;\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n\n        currentLevel--;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        this.currentLevel = currentLevel;\n        delete this.value;\n      },\n      incrementValue: function TagTree_incrementValue() {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index]++;\n      },\n      nextLevel: function TagTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        currentLevel--;\n\n        if (currentLevel < 0) {\n          this.value = value;\n          return false;\n        }\n\n        this.currentLevel = currentLevel;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return TagTree;\n  }();\n\n  var InclusionTree = function InclusionTreeClosure() {\n    function InclusionTree(width, height, defaultValue) {\n      var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n      this.levels = [];\n\n      for (var i = 0; i < levelsLength; i++) {\n        var items = new Uint8Array(width * height);\n\n        for (var j = 0, jj = items.length; j < jj; j++) {\n          items[j] = defaultValue;\n        }\n\n        var level = {\n          width: width,\n          height: height,\n          items: items\n        };\n        this.levels.push(level);\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n\n    InclusionTree.prototype = {\n      reset: function InclusionTree_reset(i, j, stopValue) {\n        var currentLevel = 0;\n\n        while (currentLevel < this.levels.length) {\n          var level = this.levels[currentLevel];\n          var index = i + j * level.width;\n          level.index = index;\n          var value = level.items[index];\n\n          if (value === 0xFF) {\n            break;\n          }\n\n          if (value > stopValue) {\n            this.currentLevel = currentLevel;\n            this.propagateValues();\n            return false;\n          }\n\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n\n        this.currentLevel = currentLevel - 1;\n        return true;\n      },\n      incrementValue: function InclusionTree_incrementValue(stopValue) {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index] = stopValue + 1;\n        this.propagateValues();\n      },\n      propagateValues: function InclusionTree_propagateValues() {\n        var levelIndex = this.currentLevel;\n        var level = this.levels[levelIndex];\n        var currentValue = level.items[level.index];\n\n        while (--levelIndex >= 0) {\n          level = this.levels[levelIndex];\n          level.items[level.index] = currentValue;\n        }\n      },\n      nextLevel: function InclusionTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        level.items[level.index] = 0xFF;\n        currentLevel--;\n\n        if (currentLevel < 0) {\n          return false;\n        }\n\n        this.currentLevel = currentLevel;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return InclusionTree;\n  }();\n\n  var BitModel = function BitModelClosure() {\n    var UNIFORM_CONTEXT = 17;\n    var RUNLENGTH_CONTEXT = 18;\n    var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n    var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n    var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n\n    function BitModel(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n      this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n      var coefficientCount = width * height;\n      this.neighborsSignificance = new Uint8Array(coefficientCount);\n      this.coefficentsSign = new Uint8Array(coefficientCount);\n      this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);\n      this.processingFlags = new Uint8Array(coefficientCount);\n      var bitsDecoded = new Uint8Array(coefficientCount);\n\n      if (zeroBitPlanes !== 0) {\n        for (var i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n\n      this.bitsDecoded = bitsDecoded;\n      this.reset();\n    }\n\n    BitModel.prototype = {\n      setDecoder: function BitModel_setDecoder(decoder) {\n        this.decoder = decoder;\n      },\n      reset: function BitModel_reset() {\n        this.contexts = new Int8Array(19);\n        this.contexts[0] = 4 << 1 | 0;\n        this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n        this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n      },\n      setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n        var neighborsSignificance = this.neighborsSignificance;\n        var width = this.width,\n            height = this.height;\n        var left = column > 0;\n        var right = column + 1 < width;\n        var i;\n\n        if (row > 0) {\n          i = index - width;\n\n          if (left) {\n            neighborsSignificance[i - 1] += 0x10;\n          }\n\n          if (right) {\n            neighborsSignificance[i + 1] += 0x10;\n          }\n\n          neighborsSignificance[i] += 0x04;\n        }\n\n        if (row + 1 < height) {\n          i = index + width;\n\n          if (left) {\n            neighborsSignificance[i - 1] += 0x10;\n          }\n\n          if (right) {\n            neighborsSignificance[i + 1] += 0x10;\n          }\n\n          neighborsSignificance[i] += 0x04;\n        }\n\n        if (left) {\n          neighborsSignificance[index - 1] += 0x01;\n        }\n\n        if (right) {\n          neighborsSignificance[index + 1] += 0x01;\n        }\n\n        neighborsSignificance[index] |= 0x80;\n      },\n      runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var neighborsSignificance = this.neighborsSignificance;\n        var processingFlags = this.processingFlags;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processedInverseMask = ~1;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            var index = i0 * width + j;\n\n            for (var i1 = 0; i1 < 4; i1++, index += width) {\n              var i = i0 + i1;\n\n              if (i >= height) {\n                break;\n              }\n\n              processingFlags[index] &= processedInverseMask;\n\n              if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n                continue;\n              }\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var decision = decoder.readBit(contexts, contextLabel);\n\n              if (decision) {\n                var sign = this.decodeSignBit(i, j, index);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j, index);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contribution, sign0, sign1, significance1;\n        var contextLabel, decoded;\n        significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n        if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n          sign1 = coefficentsSign[index + 1];\n\n          if (significance1) {\n            sign0 = coefficentsSign[index - 1];\n            contribution = 1 - sign1 - sign0;\n          } else {\n            contribution = 1 - sign1 - sign1;\n          }\n        } else if (significance1) {\n          sign0 = coefficentsSign[index - 1];\n          contribution = 1 - sign0 - sign0;\n        } else {\n          contribution = 0;\n        }\n\n        var horizontalContribution = 3 * contribution;\n        significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n        if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n          sign1 = coefficentsSign[index + width];\n\n          if (significance1) {\n            sign0 = coefficentsSign[index - width];\n            contribution = 1 - sign1 - sign0 + horizontalContribution;\n          } else {\n            contribution = 1 - sign1 - sign1 + horizontalContribution;\n          }\n        } else if (significance1) {\n          sign0 = coefficentsSign[index - width];\n          contribution = 1 - sign0 - sign0 + horizontalContribution;\n        } else {\n          contribution = horizontalContribution;\n        }\n\n        if (contribution >= 0) {\n          contextLabel = 9 + contribution;\n          decoded = this.decoder.readBit(this.contexts, contextLabel);\n        } else {\n          contextLabel = 9 - contribution;\n          decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n        }\n\n        return decoded;\n      },\n      runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var neighborsSignificance = this.neighborsSignificance;\n        var contexts = this.contexts;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var length = width * height;\n        var width4 = width * 4;\n\n        for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n          indexNext = Math.min(length, index0 + width4);\n\n          for (var j = 0; j < width; j++) {\n            for (var index = index0 + j; index < indexNext; index += width) {\n              if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n                continue;\n              }\n\n              var contextLabel = 16;\n\n              if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n                processingFlags[index] ^= firstMagnitudeBitMask;\n                var significance = neighborsSignificance[index] & 127;\n                contextLabel = significance === 0 ? 15 : 14;\n              }\n\n              var bit = decoder.readBit(contexts, contextLabel);\n              coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      runCleanupPass: function BitModel_runCleanupPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var neighborsSignificance = this.neighborsSignificance;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var oneRowDown = width;\n        var twoRowsDown = width * 2;\n        var threeRowsDown = width * 3;\n        var iNext;\n\n        for (var i0 = 0; i0 < height; i0 = iNext) {\n          iNext = Math.min(i0 + 4, height);\n          var indexBase = i0 * width;\n          var checkAllEmpty = i0 + 3 < height;\n\n          for (var j = 0; j < width; j++) {\n            var index0 = indexBase + j;\n            var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n            var i1 = 0,\n                index = index0;\n            var i = i0,\n                sign;\n\n            if (allEmpty) {\n              var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n              if (!hasSignificantCoefficent) {\n                bitsDecoded[index0]++;\n                bitsDecoded[index0 + oneRowDown]++;\n                bitsDecoded[index0 + twoRowsDown]++;\n                bitsDecoded[index0 + threeRowsDown]++;\n                continue;\n              }\n\n              i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n              if (i1 !== 0) {\n                i = i0 + i1;\n                index += i1 * width;\n              }\n\n              sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n              index = index0;\n\n              for (var i2 = i0; i2 <= i; i2++, index += width) {\n                bitsDecoded[index]++;\n              }\n\n              i1++;\n            }\n\n            for (i = i0 + i1; i < iNext; i++, index += width) {\n              if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n                continue;\n              }\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var decision = decoder.readBit(contexts, contextLabel);\n\n              if (decision === 1) {\n                sign = this.decodeSignBit(i, j, index);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j, index);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n\n              bitsDecoded[index]++;\n            }\n          }\n        }\n      },\n      checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n        var decoder = this.decoder;\n        var contexts = this.contexts;\n        var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n        if (symbol !== 0xA) {\n          throw new JpxError('Invalid segmentation symbol');\n        }\n      }\n    };\n    return BitModel;\n  }();\n\n  var Transform = function TransformClosure() {\n    function Transform() {}\n\n    Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n      var ll = subbands[0];\n\n      for (var i = 1, ii = subbands.length; i < ii; i++) {\n        ll = this.iterate(ll, subbands[i], u0, v0);\n      }\n\n      return ll;\n    };\n\n    Transform.prototype.extend = function extend(buffer, offset, size) {\n      var i1 = offset - 1,\n          j1 = offset + 1;\n      var i2 = offset + size - 2,\n          j2 = offset + size;\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1] = buffer[j1];\n      buffer[j2] = buffer[i2];\n    };\n\n    Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n      var llWidth = ll.width,\n          llHeight = ll.height,\n          llItems = ll.items;\n      var width = hl_lh_hh.width;\n      var height = hl_lh_hh.height;\n      var items = hl_lh_hh.items;\n      var i, j, k, l, u, v;\n\n      for (k = 0, i = 0; i < llHeight; i++) {\n        l = i * 2 * width;\n\n        for (j = 0; j < llWidth; j++, k++, l += 2) {\n          items[l] = llItems[k];\n        }\n      }\n\n      llItems = ll.items = null;\n      var bufferPadding = 4;\n      var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n      if (width === 1) {\n        if ((u0 & 1) !== 0) {\n          for (v = 0, k = 0; v < height; v++, k += width) {\n            items[k] *= 0.5;\n          }\n        }\n      } else {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n          this.extend(rowBuffer, bufferPadding, width);\n          this.filter(rowBuffer, bufferPadding, width);\n          items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n        }\n      }\n\n      var numBuffers = 16;\n      var colBuffers = [];\n\n      for (i = 0; i < numBuffers; i++) {\n        colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n      }\n\n      var b,\n          currentBuffer = 0;\n      ll = bufferPadding + height;\n\n      if (height === 1) {\n        if ((v0 & 1) !== 0) {\n          for (u = 0; u < width; u++) {\n            items[u] *= 0.5;\n          }\n        }\n      } else {\n        for (u = 0; u < width; u++) {\n          if (currentBuffer === 0) {\n            numBuffers = Math.min(width - u, numBuffers);\n\n            for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n              for (b = 0; b < numBuffers; b++) {\n                colBuffers[b][l] = items[k + b];\n              }\n            }\n\n            currentBuffer = numBuffers;\n          }\n\n          currentBuffer--;\n          var buffer = colBuffers[currentBuffer];\n          this.extend(buffer, bufferPadding, height);\n          this.filter(buffer, bufferPadding, height);\n\n          if (currentBuffer === 0) {\n            k = u - numBuffers + 1;\n\n            for (l = bufferPadding; l < ll; k += width, l++) {\n              for (b = 0; b < numBuffers; b++) {\n                items[k + b] = colBuffers[b][l];\n              }\n            }\n          }\n        }\n      }\n\n      return {\n        width: width,\n        height: height,\n        items: items\n      };\n    };\n\n    return Transform;\n  }();\n\n  var IrreversibleTransform = function IrreversibleTransformClosure() {\n    function IrreversibleTransform() {\n      Transform.call(this);\n    }\n\n    IrreversibleTransform.prototype = Object.create(Transform.prototype);\n\n    IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var j, n, current, next;\n      var alpha = -1.586134342059924;\n      var beta = -0.052980118572961;\n      var gamma = 0.882911075530934;\n      var delta = 0.443506852043971;\n      var K = 1.230174104914001;\n      var K_ = 1 / K;\n      j = offset - 3;\n\n      for (n = len + 4; n--; j += 2) {\n        x[j] *= K_;\n      }\n\n      j = offset - 2;\n      current = delta * x[j - 1];\n\n      for (n = len + 3; n--; j += 2) {\n        next = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n\n        if (n--) {\n          j += 2;\n          current = delta * x[j + 1];\n          x[j] = K * x[j] - current - next;\n        } else {\n          break;\n        }\n      }\n\n      j = offset - 1;\n      current = gamma * x[j - 1];\n\n      for (n = len + 2; n--; j += 2) {\n        next = gamma * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = gamma * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n\n      j = offset;\n      current = beta * x[j - 1];\n\n      for (n = len + 1; n--; j += 2) {\n        next = beta * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = beta * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n\n      if (len !== 0) {\n        j = offset + 1;\n        current = alpha * x[j - 1];\n\n        for (n = len; n--; j += 2) {\n          next = alpha * x[j + 1];\n          x[j] -= current + next;\n\n          if (n--) {\n            j += 2;\n            current = alpha * x[j + 1];\n            x[j] -= current + next;\n          } else {\n            break;\n          }\n        }\n      }\n    };\n\n    return IrreversibleTransform;\n  }();\n\n  var ReversibleTransform = function ReversibleTransformClosure() {\n    function ReversibleTransform() {\n      Transform.call(this);\n    }\n\n    ReversibleTransform.prototype = Object.create(Transform.prototype);\n\n    ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var j, n;\n\n      for (j = offset, n = len + 1; n--; j += 2) {\n        x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n      }\n\n      for (j = offset + 1, n = len; n--; j += 2) {\n        x[j] += x[j - 1] + x[j + 1] >> 1;\n      }\n    };\n\n    return ReversibleTransform;\n  }();\n\n  return JpxImage;\n}();\n\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n  function ARCFourCipher(key) {\n    this.a = 0;\n    this.b = 0;\n    var s = new Uint8Array(256);\n    var i,\n        j = 0,\n        tmp,\n        keyLength = key.length;\n\n    for (i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n\n    for (i = 0; i < 256; ++i) {\n      tmp = s[i];\n      j = j + tmp + key[i % keyLength] & 0xFF;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n\n    this.s = s;\n  }\n\n  ARCFourCipher.prototype = {\n    encryptBlock: function ARCFourCipher_encryptBlock(data) {\n      var i,\n          n = data.length,\n          tmp,\n          tmp2;\n      var a = this.a,\n          b = this.b,\n          s = this.s;\n      var output = new Uint8Array(n);\n\n      for (i = 0; i < n; ++i) {\n        a = a + 1 & 0xFF;\n        tmp = s[a];\n        b = b + tmp & 0xFF;\n        tmp2 = s[b];\n        s[a] = tmp2;\n        s[b] = tmp;\n        output[i] = data[i] ^ s[tmp + tmp2 & 0xFF];\n      }\n\n      this.a = a;\n      this.b = b;\n      return output;\n    }\n  };\n  ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n  return ARCFourCipher;\n}();\n\nexports.ARCFourCipher = ARCFourCipher;\n\nvar calculateMD5 = function calculateMD5Closure() {\n  var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n  var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n\n  function hash(data, offset, length) {\n    var h0 = 1732584193,\n        h1 = -271733879,\n        h2 = -1732584194,\n        h3 = 271733878;\n    var paddedLength = length + 72 & ~63;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = length << 3 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    var w = new Int32Array(16);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n      }\n\n      var a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          f,\n          g;\n\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = b & c | ~b & d;\n          g = j;\n        } else if (j < 32) {\n          f = d & b | ~d & c;\n          g = 5 * j + 1 & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = 3 * j + 5 & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = 7 * j & 15;\n        }\n\n        var tmp = d,\n            rotateArg = a + f + k[j] + w[g] | 0,\n            rotate = r[j];\n        d = c;\n        c = b;\n        b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n        a = tmp;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n    }\n\n    return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nvar Word64 = function Word64Closure() {\n  function Word64(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n\n  Word64.prototype = {\n    and: function Word64_and(word) {\n      this.high &= word.high;\n      this.low &= word.low;\n    },\n    xor: function Word64_xor(word) {\n      this.high ^= word.high;\n      this.low ^= word.low;\n    },\n    or: function Word64_or(word) {\n      this.high |= word.high;\n      this.low |= word.low;\n    },\n    shiftRight: function Word64_shiftRight(places) {\n      if (places >= 32) {\n        this.low = this.high >>> places - 32 | 0;\n        this.high = 0;\n      } else {\n        this.low = this.low >>> places | this.high << 32 - places;\n        this.high = this.high >>> places | 0;\n      }\n    },\n    shiftLeft: function Word64_shiftLeft(places) {\n      if (places >= 32) {\n        this.high = this.low << places - 32;\n        this.low = 0;\n      } else {\n        this.high = this.high << places | this.low >>> 32 - places;\n        this.low = this.low << places;\n      }\n    },\n    rotateRight: function Word64_rotateRight(places) {\n      var low, high;\n\n      if (places & 32) {\n        high = this.low;\n        low = this.high;\n      } else {\n        low = this.low;\n        high = this.high;\n      }\n\n      places &= 31;\n      this.low = low >>> places | high << 32 - places;\n      this.high = high >>> places | low << 32 - places;\n    },\n    not: function Word64_not() {\n      this.high = ~this.high;\n      this.low = ~this.low;\n    },\n    add: function Word64_add(word) {\n      var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n      var highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n      if (lowAdd > 0xFFFFFFFF) {\n        highAdd += 1;\n      }\n\n      this.low = lowAdd | 0;\n      this.high = highAdd | 0;\n    },\n    copyTo: function Word64_copyTo(bytes, offset) {\n      bytes[offset] = this.high >>> 24 & 0xFF;\n      bytes[offset + 1] = this.high >> 16 & 0xFF;\n      bytes[offset + 2] = this.high >> 8 & 0xFF;\n      bytes[offset + 3] = this.high & 0xFF;\n      bytes[offset + 4] = this.low >>> 24 & 0xFF;\n      bytes[offset + 5] = this.low >> 16 & 0xFF;\n      bytes[offset + 6] = this.low >> 8 & 0xFF;\n      bytes[offset + 7] = this.low & 0xFF;\n    },\n    assign: function Word64_assign(word) {\n      this.high = word.high;\n      this.low = word.low;\n    }\n  };\n  return Word64;\n}();\n\nvar calculateSHA256 = function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return x >>> n | x << 32 - n;\n  }\n\n  function ch(x, y, z) {\n    return x & y ^ ~x & z;\n  }\n\n  function maj(x, y, z) {\n    return x & y ^ x & z ^ y & z;\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n  }\n\n  var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n  function hash(data, offset, length) {\n    var h0 = 0x6a09e667,\n        h1 = 0xbb67ae85,\n        h2 = 0x3c6ef372,\n        h3 = 0xa54ff53a,\n        h4 = 0x510e527f,\n        h5 = 0x9b05688c,\n        h6 = 0x1f83d9ab,\n        h7 = 0x5be0cd19;\n    var paddedLength = Math.ceil((length + 9) / 64) * 64;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length << 3 & 0xFF;\n    var w = new Uint32Array(64);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n      }\n\n      var a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          e = h4,\n          f = h5,\n          g = h6,\n          h = h7,\n          t1,\n          t2;\n\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = d + t1 | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = t1 + t2 | 0;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n      h4 = h4 + e | 0;\n      h5 = h5 + f | 0;\n      h6 = h6 + g | 0;\n      h7 = h7 + h | 0;\n    }\n\n    return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nvar calculateSHA512 = function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length, mode384) {\n    mode384 = !!mode384;\n    var h0, h1, h2, h3, h4, h5, h6, h7;\n\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    var paddedLength = Math.ceil((length + 17) / 128) * 128;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 16;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length << 3 & 0xFF;\n    var w = new Array(80);\n\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n\n    var a = new Word64(0, 0),\n        b = new Word64(0, 0),\n        c = new Word64(0, 0);\n    var d = new Word64(0, 0),\n        e = new Word64(0, 0),\n        f = new Word64(0, 0);\n    var g = new Word64(0, 0),\n        h = new Word64(0, 0);\n    var t1 = new Word64(0, 0),\n        t2 = new Word64(0, 0);\n    var tmp1 = new Word64(0, 0),\n        tmp2 = new Word64(0, 0),\n        tmp3;\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n        i += 8;\n      }\n\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    var result;\n\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n\n    return result;\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nvar calculateSHA384 = function calculateSHA384Closure() {\n  function hash(data, offset, length) {\n    return calculateSHA512(data, offset, length, true);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA384 = calculateSHA384;\n\nvar NullCipher = function NullCipherClosure() {\n  function NullCipher() {}\n\n  NullCipher.prototype = {\n    decryptBlock: function NullCipher_decryptBlock(data) {\n      return data;\n    }\n  };\n  return NullCipher;\n}();\n\nvar AESBaseCipher =\n/*#__PURE__*/\nfunction () {\n  function AESBaseCipher() {\n    _classCallCheck(this, AESBaseCipher);\n\n    if (this.constructor === AESBaseCipher) {\n      (0, _util.unreachable)('Cannot initialize AESBaseCipher.');\n    }\n\n    this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n    this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n    this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n    this._mixCol = new Uint8Array(256);\n\n    for (var i = 0; i < 256; i++) {\n      if (i < 128) {\n        this._mixCol[i] = i << 1;\n      } else {\n        this._mixCol[i] = i << 1 ^ 0x1b;\n      }\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _createClass(AESBaseCipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      (0, _util.unreachable)('Cannot call `_expandKey` on the base class');\n    }\n  }, {\n    key: \"_decrypt\",\n    value: function _decrypt(input, key) {\n      var t, u, v;\n      var state = new Uint8Array(16);\n      state.set(input);\n\n      for (var j = 0, k = this._keySize; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n\n      for (var i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n        t = state[13];\n        state[13] = state[9];\n        state[9] = state[5];\n        state[5] = state[1];\n        state[1] = t;\n        t = state[14];\n        u = state[10];\n        state[14] = state[6];\n        state[10] = state[2];\n        state[6] = t;\n        state[2] = u;\n        t = state[15];\n        u = state[11];\n        v = state[7];\n        state[15] = state[3];\n        state[11] = t;\n        state[7] = u;\n        state[3] = v;\n\n        for (var _j = 0; _j < 16; ++_j) {\n          state[_j] = this._inv_s[state[_j]];\n        }\n\n        for (var _j2 = 0, _k = i * 16; _j2 < 16; ++_j2, ++_k) {\n          state[_j2] ^= key[_k];\n        }\n\n        for (var _j3 = 0; _j3 < 16; _j3 += 4) {\n          var s0 = this._mix[state[_j3]];\n          var s1 = this._mix[state[_j3 + 1]];\n          var s2 = this._mix[state[_j3 + 2]];\n          var s3 = this._mix[state[_j3 + 3]];\n          t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n          state[_j3] = t >>> 24 & 0xFF;\n          state[_j3 + 1] = t >> 16 & 0xFF;\n          state[_j3 + 2] = t >> 8 & 0xFF;\n          state[_j3 + 3] = t & 0xFF;\n        }\n      }\n\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n\n      for (var _j4 = 0; _j4 < 16; ++_j4) {\n        state[_j4] = this._inv_s[state[_j4]];\n        state[_j4] ^= key[_j4];\n      }\n\n      return state;\n    }\n  }, {\n    key: \"_encrypt\",\n    value: function _encrypt(input, key) {\n      var s = this._s;\n      var t, u, v;\n      var state = new Uint8Array(16);\n      state.set(input);\n\n      for (var j = 0; j < 16; ++j) {\n        state[j] ^= key[j];\n      }\n\n      for (var i = 1; i < this._cyclesOfRepetition; i++) {\n        for (var _j5 = 0; _j5 < 16; ++_j5) {\n          state[_j5] = s[state[_j5]];\n        }\n\n        v = state[1];\n        state[1] = state[5];\n        state[5] = state[9];\n        state[9] = state[13];\n        state[13] = v;\n        v = state[2];\n        u = state[6];\n        state[2] = state[10];\n        state[6] = state[14];\n        state[10] = v;\n        state[14] = u;\n        v = state[3];\n        u = state[7];\n        t = state[11];\n        state[3] = state[15];\n        state[7] = v;\n        state[11] = u;\n        state[15] = t;\n\n        for (var _j6 = 0; _j6 < 16; _j6 += 4) {\n          var s0 = state[_j6 + 0];\n          var s1 = state[_j6 + 1];\n          var s2 = state[_j6 + 2];\n          var s3 = state[_j6 + 3];\n          t = s0 ^ s1 ^ s2 ^ s3;\n          state[_j6 + 0] ^= t ^ this._mixCol[s0 ^ s1];\n          state[_j6 + 1] ^= t ^ this._mixCol[s1 ^ s2];\n          state[_j6 + 2] ^= t ^ this._mixCol[s2 ^ s3];\n          state[_j6 + 3] ^= t ^ this._mixCol[s3 ^ s0];\n        }\n\n        for (var _j7 = 0, k = i * 16; _j7 < 16; ++_j7, ++k) {\n          state[_j7] ^= key[k];\n        }\n      }\n\n      for (var _j8 = 0; _j8 < 16; ++_j8) {\n        state[_j8] = s[state[_j8]];\n      }\n\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n\n      for (var _j9 = 0, _k2 = this._keySize; _j9 < 16; ++_j9, ++_k2) {\n        state[_j9] ^= key[_k2];\n      }\n\n      return state;\n    }\n  }, {\n    key: \"_decryptBlock2\",\n    value: function _decryptBlock2(data, finalize) {\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n      var result = [],\n          iv = this.iv;\n\n      for (var i = 0; i < sourceLength; ++i) {\n        buffer[bufferLength] = data[i];\n        ++bufferLength;\n\n        if (bufferLength < 16) {\n          continue;\n        }\n\n        var plain = this._decrypt(buffer, this._key);\n\n        for (var j = 0; j < 16; ++j) {\n          plain[j] ^= iv[j];\n        }\n\n        iv = buffer;\n        result.push(plain);\n        buffer = new Uint8Array(16);\n        bufferLength = 0;\n      }\n\n      this.buffer = buffer;\n      this.bufferLength = bufferLength;\n      this.iv = iv;\n\n      if (result.length === 0) {\n        return new Uint8Array(0);\n      }\n\n      var outputLength = 16 * result.length;\n\n      if (finalize) {\n        var lastBlock = result[result.length - 1];\n        var psLen = lastBlock[15];\n\n        if (psLen <= 16) {\n          for (var _i = 15, ii = 16 - psLen; _i >= ii; --_i) {\n            if (lastBlock[_i] !== psLen) {\n              psLen = 0;\n              break;\n            }\n          }\n\n          outputLength -= psLen;\n          result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n        }\n      }\n\n      var output = new Uint8Array(outputLength);\n\n      for (var _i2 = 0, _j10 = 0, _ii = result.length; _i2 < _ii; ++_i2, _j10 += 16) {\n        output.set(result[_i2], _j10);\n      }\n\n      return output;\n    }\n  }, {\n    key: \"decryptBlock\",\n    value: function decryptBlock(data, finalize) {\n      var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n\n      if (iv) {\n        this.iv = iv;\n      } else {\n        for (var i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n          buffer[bufferLength] = data[i];\n        }\n\n        if (bufferLength < 16) {\n          this.bufferLength = bufferLength;\n          return new Uint8Array(0);\n        }\n\n        this.iv = buffer;\n        data = data.subarray(16);\n      }\n\n      this.buffer = new Uint8Array(16);\n      this.bufferLength = 0;\n      this.decryptBlock = this._decryptBlock2;\n      return this.decryptBlock(data, finalize);\n    }\n  }, {\n    key: \"encrypt\",\n    value: function encrypt(data, iv) {\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n      var result = [];\n\n      if (!iv) {\n        iv = new Uint8Array(16);\n      }\n\n      for (var i = 0; i < sourceLength; ++i) {\n        buffer[bufferLength] = data[i];\n        ++bufferLength;\n\n        if (bufferLength < 16) {\n          continue;\n        }\n\n        for (var j = 0; j < 16; ++j) {\n          buffer[j] ^= iv[j];\n        }\n\n        var cipher = this._encrypt(buffer, this._key);\n\n        iv = cipher;\n        result.push(cipher);\n        buffer = new Uint8Array(16);\n        bufferLength = 0;\n      }\n\n      this.buffer = buffer;\n      this.bufferLength = bufferLength;\n      this.iv = iv;\n\n      if (result.length === 0) {\n        return new Uint8Array(0);\n      }\n\n      var outputLength = 16 * result.length;\n      var output = new Uint8Array(outputLength);\n\n      for (var _i3 = 0, _j11 = 0, ii = result.length; _i3 < ii; ++_i3, _j11 += 16) {\n        output.set(result[_i3], _j11);\n      }\n\n      return output;\n    }\n  }]);\n\n  return AESBaseCipher;\n}();\n\nvar AES128Cipher =\n/*#__PURE__*/\nfunction (_AESBaseCipher) {\n  _inherits(AES128Cipher, _AESBaseCipher);\n\n  function AES128Cipher(key) {\n    var _this;\n\n    _classCallCheck(this, AES128Cipher);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(AES128Cipher).call(this));\n    _this._cyclesOfRepetition = 10;\n    _this._keySize = 160;\n    _this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n    _this._key = _this._expandKey(key);\n    return _this;\n  }\n\n  _createClass(AES128Cipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      var b = 176;\n      var s = this._s;\n      var rcon = this._rcon;\n      var result = new Uint8Array(b);\n      result.set(cipherKey);\n\n      for (var j = 16, i = 1; j < b; ++i) {\n        var t1 = result[j - 3];\n        var t2 = result[j - 2];\n        var t3 = result[j - 1];\n        var t4 = result[j - 4];\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        t1 = t1 ^ rcon[i];\n\n        for (var n = 0; n < 4; ++n) {\n          result[j] = t1 ^= result[j - 16];\n          j++;\n          result[j] = t2 ^= result[j - 16];\n          j++;\n          result[j] = t3 ^= result[j - 16];\n          j++;\n          result[j] = t4 ^= result[j - 16];\n          j++;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return AES128Cipher;\n}(AESBaseCipher);\n\nexports.AES128Cipher = AES128Cipher;\n\nvar AES256Cipher =\n/*#__PURE__*/\nfunction (_AESBaseCipher2) {\n  _inherits(AES256Cipher, _AESBaseCipher2);\n\n  function AES256Cipher(key) {\n    var _this2;\n\n    _classCallCheck(this, AES256Cipher);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(AES256Cipher).call(this));\n    _this2._cyclesOfRepetition = 14;\n    _this2._keySize = 224;\n    _this2._key = _this2._expandKey(key);\n    return _this2;\n  }\n\n  _createClass(AES256Cipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      var b = 240;\n      var s = this._s;\n      var result = new Uint8Array(b);\n      result.set(cipherKey);\n      var r = 1;\n      var t1, t2, t3, t4;\n\n      for (var j = 32, i = 1; j < b; ++i) {\n        if (j % 32 === 16) {\n          t1 = s[t1];\n          t2 = s[t2];\n          t3 = s[t3];\n          t4 = s[t4];\n        } else if (j % 32 === 0) {\n          t1 = result[j - 3];\n          t2 = result[j - 2];\n          t3 = result[j - 1];\n          t4 = result[j - 4];\n          t1 = s[t1];\n          t2 = s[t2];\n          t3 = s[t3];\n          t4 = s[t4];\n          t1 = t1 ^ r;\n\n          if ((r <<= 1) >= 256) {\n            r = (r ^ 0x1b) & 0xFF;\n          }\n        }\n\n        for (var n = 0; n < 4; ++n) {\n          result[j] = t1 ^= result[j - 32];\n          j++;\n          result[j] = t2 ^= result[j - 32];\n          j++;\n          result[j] = t3 ^= result[j - 32];\n          j++;\n          result[j] = t4 ^= result[j - 32];\n          j++;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return AES256Cipher;\n}(AESBaseCipher);\n\nexports.AES256Cipher = AES256Cipher;\n\nvar PDF17 = function PDF17Closure() {\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function PDF17() {}\n\n  PDF17.prototype = {\n    checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n  };\n  return PDF17;\n}();\n\nexports.PDF17 = PDF17;\n\nvar PDF20 = function PDF20Closure() {\n  function concatArrays(array1, array2) {\n    var t = new Uint8Array(array1.length + array2.length);\n    t.set(array1, 0);\n    t.set(array2, array1.length);\n    return t;\n  }\n\n  function calculatePDF20Hash(password, input, userBytes) {\n    var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    var e = [0];\n    var i = 0;\n\n    while (i < 64 || e[e.length - 1] > i - 32) {\n      var arrayLength = password.length + k.length + userBytes.length;\n      var k1 = new Uint8Array(arrayLength * 64);\n      var array = concatArrays(password, k);\n      array = concatArrays(array, userBytes);\n\n      for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n        k1.set(array, pos);\n      }\n\n      var cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      var remainder = 0;\n\n      for (var z = 0; z < 16; z++) {\n        remainder *= 256 % 3;\n        remainder %= 3;\n        remainder += (e[z] >>> 0) % 3;\n        remainder %= 3;\n      }\n\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n\n      i++;\n    }\n\n    return k.subarray(0, 32);\n  }\n\n  function PDF20() {}\n\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  PDF20.prototype = {\n    hash: function PDF20_hash(password, concatBytes, userBytes) {\n      return calculatePDF20Hash(password, concatBytes, userBytes);\n    },\n    checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculatePDF20Hash(password, hashData, userBytes);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculatePDF20Hash(password, hashData, []);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculatePDF20Hash(password, hashData, userBytes);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      var key = calculatePDF20Hash(password, hashData, []);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n  };\n  return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nvar CipherTransform = function CipherTransformClosure() {\n  function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  CipherTransform.prototype = {\n    createStream: function CipherTransform_createStream(stream, length) {\n      var cipher = new this.StreamCipherConstructor();\n      return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n        return cipher.decryptBlock(data, finalize);\n      });\n    },\n    decryptString: function CipherTransform_decryptString(s) {\n      var cipher = new this.StringCipherConstructor();\n      var data = (0, _util.stringToBytes)(s);\n      data = cipher.decryptBlock(data, true);\n      return (0, _util.bytesToString)(data);\n    }\n  };\n  return CipherTransform;\n}();\n\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n  var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n  function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n    if (password) {\n      var passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n\n    var pdfAlgorithm;\n\n    if (revision === 6) {\n      pdfAlgorithm = new PDF20();\n    } else {\n      pdfAlgorithm = new PDF17();\n    }\n\n    if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n      return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n    }\n\n    return null;\n  }\n\n  function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n    var hashDataSize = 40 + ownerPassword.length + fileId.length;\n    var hashData = new Uint8Array(hashDataSize),\n        i = 0,\n        j,\n        n;\n\n    if (password) {\n      n = Math.min(32, password.length);\n\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n\n    hashData[i++] = flags & 0xFF;\n    hashData[i++] = flags >> 8 & 0xFF;\n    hashData[i++] = flags >> 16 & 0xFF;\n    hashData[i++] = flags >>> 24 & 0xFF;\n\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n    }\n\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n\n    var encryptionKey = hash.subarray(0, keyLengthInBytes);\n    var cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = defaultPasswordBytes[i];\n      }\n\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      var derivedKey = new Uint8Array(n),\n          k;\n\n      for (j = 1; j <= 19; ++j) {\n        for (k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n\n    return encryptionKey;\n  }\n\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    var hashData = new Uint8Array(32),\n        i = 0,\n        j,\n        n;\n    n = Math.min(32, password.length);\n\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    var cipher, userPassword;\n\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      var derivedKey = new Uint8Array(keyLengthInBytes),\n          k;\n\n      for (j = 19; j >= 0; j--) {\n        for (k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n\n    return userPassword;\n  }\n\n  var identityName = _primitives.Name.get('Identity');\n\n  function CipherTransformFactory(dict, fileId, password) {\n    var filter = dict.get('Filter');\n\n    if (!(0, _primitives.isName)(filter, 'Standard')) {\n      throw new _util.FormatError('unknown encryption method');\n    }\n\n    this.dict = dict;\n    var algorithm = dict.get('V');\n\n    if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n      throw new _util.FormatError('unsupported encryption algorithm');\n    }\n\n    this.algorithm = algorithm;\n    var keyLength = dict.get('Length');\n\n    if (!keyLength) {\n      if (algorithm <= 3) {\n        keyLength = 40;\n      } else {\n        var cfDict = dict.get('CF');\n        var streamCryptoName = dict.get('StmF');\n\n        if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n          cfDict.suppressEncryption = true;\n          var handlerDict = cfDict.get(streamCryptoName.name);\n          keyLength = handlerDict && handlerDict.get('Length') || 128;\n\n          if (keyLength < 40) {\n            keyLength <<= 3;\n          }\n        }\n      }\n    }\n\n    if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n      throw new _util.FormatError('invalid key length');\n    }\n\n    var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32);\n    var userPassword = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 32);\n    var flags = dict.get('P');\n    var revision = dict.get('R');\n    var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false;\n    this.encryptMetadata = encryptMetadata;\n    var fileIdBytes = (0, _util.stringToBytes)(fileId);\n    var passwordBytes;\n\n    if (password) {\n      if (revision === 6) {\n        try {\n          password = (0, _util.utf8StringToString)(password);\n        } catch (ex) {\n          (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.');\n        }\n      }\n\n      passwordBytes = (0, _util.stringToBytes)(password);\n    }\n\n    var encryptionKey;\n\n    if (algorithm !== 5) {\n      encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    } else {\n      var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40);\n      var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48);\n      var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48);\n      var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40);\n      var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48);\n      var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE'));\n      var userEncryption = (0, _util.stringToBytes)(dict.get('UE'));\n      var perms = (0, _util.stringToBytes)(dict.get('Perms'));\n      encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n    }\n\n    if (!encryptionKey && !password) {\n      throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD);\n    } else if (!encryptionKey && password) {\n      var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n      encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    }\n\n    if (!encryptionKey) {\n      throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD);\n    }\n\n    this.encryptionKey = encryptionKey;\n\n    if (algorithm >= 4) {\n      var cf = dict.get('CF');\n\n      if ((0, _primitives.isDict)(cf)) {\n        cf.suppressEncryption = true;\n      }\n\n      this.cf = cf;\n      this.stmf = dict.get('StmF') || identityName;\n      this.strf = dict.get('StrF') || identityName;\n      this.eff = dict.get('EFF') || this.stmf;\n    }\n  }\n\n  function buildObjectKey(num, gen, encryptionKey, isAes) {\n    var key = new Uint8Array(encryptionKey.length + 9),\n        i,\n        n;\n\n    for (i = 0, n = encryptionKey.length; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n\n    key[i++] = num & 0xFF;\n    key[i++] = num >> 8 & 0xFF;\n    key[i++] = num >> 16 & 0xFF;\n    key[i++] = gen & 0xFF;\n    key[i++] = gen >> 8 & 0xFF;\n\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6C;\n      key[i++] = 0x54;\n    }\n\n    var hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    if (!(0, _primitives.isName)(name)) {\n      throw new _util.FormatError('Invalid crypt filter name.');\n    }\n\n    var cryptFilter = cf.get(name.name);\n    var cfm;\n\n    if (cryptFilter !== null && cryptFilter !== undefined) {\n      cfm = cryptFilter.get('CFM');\n    }\n\n    if (!cfm || cfm.name === 'None') {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n\n    if (cfm.name === 'V2') {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n      };\n    }\n\n    if (cfm.name === 'AESV2') {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(buildObjectKey(num, gen, key, true));\n      };\n    }\n\n    if (cfm.name === 'AESV3') {\n      return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n        return new AES256Cipher(key);\n      };\n    }\n\n    throw new _util.FormatError('Unknown crypto method');\n  }\n\n  CipherTransformFactory.prototype = {\n    createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n      if (this.algorithm === 4 || this.algorithm === 5) {\n        return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n      }\n\n      var key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n      var cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    }\n  };\n  return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  var COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  var xRatio = w1 / w2;\n  var yRatio = h1 / h2;\n  var newIndex = 0,\n      oldIndex;\n  var xScaled = new Uint16Array(w2);\n  var w1Scanline = w1 * COMPONENTS;\n\n  for (var i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n\n  for (var _i = 0; _i < h2; _i++) {\n    var py = Math.floor(_i * yRatio) * w1Scanline;\n\n    for (var j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nvar ColorSpace =\n/*#__PURE__*/\nfunction () {\n  function ColorSpace(name, numComps) {\n    _classCallCheck(this, ColorSpace);\n\n    if (this.constructor === ColorSpace) {\n      (0, _util.unreachable)('Cannot initialize ColorSpace.');\n    }\n\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  _createClass(ColorSpace, [{\n    key: \"getRgb\",\n    value: function getRgb(src, srcOffset) {\n      var rgb = new Uint8ClampedArray(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    }\n  }, {\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      (0, _util.unreachable)('Should not call ColorSpace.getRgbItem');\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      (0, _util.unreachable)('Should not call ColorSpace.getRgbBuffer');\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      (0, _util.unreachable)('Should not call ColorSpace.getOutputLength');\n    }\n  }, {\n    key: \"isPassthrough\",\n    value: function isPassthrough(bits) {\n      return false;\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    }\n  }, {\n    key: \"fillRgb\",\n    value: function fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n      var count = originalWidth * originalHeight;\n      var rgbBuf = null;\n      var numComponentColors = 1 << bpc;\n      var needsResizing = originalHeight !== height || originalWidth !== width;\n\n      if (this.isPassthrough(bpc)) {\n        rgbBuf = comps;\n      } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n        var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n        for (var i = 0; i < numComponentColors; i++) {\n          allColors[i] = i;\n        }\n\n        var colorMap = new Uint8ClampedArray(numComponentColors * 3);\n        this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n        if (!needsResizing) {\n          var destPos = 0;\n\n          for (var _i2 = 0; _i2 < count; ++_i2) {\n            var key = comps[_i2] * 3;\n            dest[destPos++] = colorMap[key];\n            dest[destPos++] = colorMap[key + 1];\n            dest[destPos++] = colorMap[key + 2];\n            destPos += alpha01;\n          }\n        } else {\n          rgbBuf = new Uint8Array(count * 3);\n          var rgbPos = 0;\n\n          for (var _i3 = 0; _i3 < count; ++_i3) {\n            var _key = comps[_i3] * 3;\n\n            rgbBuf[rgbPos++] = colorMap[_key];\n            rgbBuf[rgbPos++] = colorMap[_key + 1];\n            rgbBuf[rgbPos++] = colorMap[_key + 2];\n          }\n        }\n      } else {\n        if (!needsResizing) {\n          this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n        } else {\n          rgbBuf = new Uint8ClampedArray(count * 3);\n          this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n        }\n      }\n\n      if (rgbBuf) {\n        if (needsResizing) {\n          resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n        } else {\n          var _destPos = 0,\n              _rgbPos = 0;\n\n          for (var _i4 = 0, ii = width * actualHeight; _i4 < ii; _i4++) {\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            _destPos += alpha01;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"usesZeroToOneRange\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'usesZeroToOneRange', true);\n    }\n  }], [{\n    key: \"parse\",\n    value: function parse(cs, xref, res, pdfFunctionFactory) {\n      var IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n      return this.fromIR(IR);\n    }\n  }, {\n    key: \"fromIR\",\n    value: function fromIR(IR) {\n      var name = Array.isArray(IR) ? IR[0] : IR;\n      var whitePoint, blackPoint, gamma;\n\n      switch (name) {\n        case 'DeviceGrayCS':\n          return this.singletons.gray;\n\n        case 'DeviceRgbCS':\n          return this.singletons.rgb;\n\n        case 'DeviceCmykCS':\n          return this.singletons.cmyk;\n\n        case 'CalGrayCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          gamma = IR[3];\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n        case 'CalRGBCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          gamma = IR[3];\n          var matrix = IR[4];\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n        case 'PatternCS':\n          var basePatternCS = IR[1];\n\n          if (basePatternCS) {\n            basePatternCS = this.fromIR(basePatternCS);\n          }\n\n          return new PatternCS(basePatternCS);\n\n        case 'IndexedCS':\n          var baseIndexedCS = IR[1];\n          var hiVal = IR[2];\n          var lookup = IR[3];\n          return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n\n        case 'AlternateCS':\n          var numComps = IR[1];\n          var alt = IR[2];\n          var tintFn = IR[3];\n          return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n\n        case 'LabCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          var range = IR[3];\n          return new LabCS(whitePoint, blackPoint, range);\n\n        default:\n          throw new _util.FormatError(\"Unknown colorspace name: \".concat(name));\n      }\n    }\n  }, {\n    key: \"parseToIR\",\n    value: function parseToIR(cs, xref) {\n      var res = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      var pdfFunctionFactory = arguments.length > 3 ? arguments[3] : undefined;\n      cs = xref.fetchIfRef(cs);\n\n      if ((0, _primitives.isName)(cs)) {\n        switch (cs.name) {\n          case 'DeviceGray':\n          case 'G':\n            return 'DeviceGrayCS';\n\n          case 'DeviceRGB':\n          case 'RGB':\n            return 'DeviceRgbCS';\n\n          case 'DeviceCMYK':\n          case 'CMYK':\n            return 'DeviceCmykCS';\n\n          case 'Pattern':\n            return ['PatternCS', null];\n\n          default:\n            if ((0, _primitives.isDict)(res)) {\n              var colorSpaces = res.get('ColorSpace');\n\n              if ((0, _primitives.isDict)(colorSpaces)) {\n                var resCS = colorSpaces.get(cs.name);\n\n                if (resCS) {\n                  if ((0, _primitives.isName)(resCS)) {\n                    return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n                  }\n\n                  cs = resCS;\n                  break;\n                }\n              }\n            }\n\n            throw new _util.FormatError(\"unrecognized colorspace \".concat(cs.name));\n        }\n      }\n\n      if (Array.isArray(cs)) {\n        var mode = xref.fetchIfRef(cs[0]).name;\n        var numComps, params, alt, whitePoint, blackPoint, gamma;\n\n        switch (mode) {\n          case 'DeviceGray':\n          case 'G':\n            return 'DeviceGrayCS';\n\n          case 'DeviceRGB':\n          case 'RGB':\n            return 'DeviceRgbCS';\n\n          case 'DeviceCMYK':\n          case 'CMYK':\n            return 'DeviceCmykCS';\n\n          case 'CalGray':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            gamma = params.get('Gamma');\n            return ['CalGrayCS', whitePoint, blackPoint, gamma];\n\n          case 'CalRGB':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            gamma = params.getArray('Gamma');\n            var matrix = params.getArray('Matrix');\n            return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix];\n\n          case 'ICCBased':\n            var stream = xref.fetchIfRef(cs[1]);\n            var dict = stream.dict;\n            numComps = dict.get('N');\n            alt = dict.get('Alternate');\n\n            if (alt) {\n              var altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n              var altCS = this.fromIR(altIR, pdfFunctionFactory);\n\n              if (altCS.numComps === numComps) {\n                return altIR;\n              }\n\n              (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');\n            }\n\n            if (numComps === 1) {\n              return 'DeviceGrayCS';\n            } else if (numComps === 3) {\n              return 'DeviceRgbCS';\n            } else if (numComps === 4) {\n              return 'DeviceCmykCS';\n            }\n\n            break;\n\n          case 'Pattern':\n            var basePatternCS = cs[1] || null;\n\n            if (basePatternCS) {\n              basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory);\n            }\n\n            return ['PatternCS', basePatternCS];\n\n          case 'Indexed':\n          case 'I':\n            var baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory);\n            var hiVal = xref.fetchIfRef(cs[2]) + 1;\n            var lookup = xref.fetchIfRef(cs[3]);\n\n            if ((0, _primitives.isStream)(lookup)) {\n              lookup = lookup.getBytes();\n            }\n\n            return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n\n          case 'Separation':\n          case 'DeviceN':\n            var name = xref.fetchIfRef(cs[1]);\n            numComps = Array.isArray(name) ? name.length : 1;\n            alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n            var tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n            return ['AlternateCS', numComps, alt, tintFn];\n\n          case 'Lab':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            var range = params.getArray('Range');\n            return ['LabCS', whitePoint, blackPoint, range];\n\n          default:\n            throw new _util.FormatError(\"unimplemented color space object \\\"\".concat(mode, \"\\\"\"));\n        }\n      }\n\n      throw new _util.FormatError(\"unrecognized color space object: \\\"\".concat(cs, \"\\\"\"));\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decode, numComps) {\n      if (!Array.isArray(decode)) {\n        return true;\n      }\n\n      if (numComps * 2 !== decode.length) {\n        (0, _util.warn)('The decode map is not the correct length');\n        return true;\n      }\n\n      for (var i = 0, ii = decode.length; i < ii; i += 2) {\n        if (decode[i] !== 0 || decode[i + 1] !== 1) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: \"singletons\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'singletons', {\n        get gray() {\n          return (0, _util.shadow)(this, 'gray', new DeviceGrayCS());\n        },\n\n        get rgb() {\n          return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS());\n        },\n\n        get cmyk() {\n          return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS());\n        }\n\n      });\n    }\n  }]);\n\n  return ColorSpace;\n}();\n\nexports.ColorSpace = ColorSpace;\n\nvar AlternateCS =\n/*#__PURE__*/\nfunction (_ColorSpace) {\n  _inherits(AlternateCS, _ColorSpace);\n\n  function AlternateCS(numComps, base, tintFn) {\n    var _this;\n\n    _classCallCheck(this, AlternateCS);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(AlternateCS).call(this, 'Alternate', numComps));\n    _this.base = base;\n    _this.tintFn = tintFn;\n    _this.tmpBuf = new Float32Array(base.numComps);\n    return _this;\n  }\n\n  _createClass(AlternateCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var tmpBuf = this.tmpBuf;\n      this.tintFn(src, srcOffset, tmpBuf, 0);\n      this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var tintFn = this.tintFn;\n      var base = this.base;\n      var scale = 1 / ((1 << bits) - 1);\n      var baseNumComps = base.numComps;\n      var usesZeroToOneRange = base.usesZeroToOneRange;\n      var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n      var pos = isPassthrough ? destOffset : 0;\n      var baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n      var numComps = this.numComps;\n      var scaled = new Float32Array(numComps);\n      var tinted = new Float32Array(baseNumComps);\n      var i, j;\n\n      for (i = 0; i < count; i++) {\n        for (j = 0; j < numComps; j++) {\n          scaled[j] = src[srcOffset++] * scale;\n        }\n\n        tintFn(scaled, 0, tinted, 0);\n\n        if (usesZeroToOneRange) {\n          for (j = 0; j < baseNumComps; j++) {\n            baseBuf[pos++] = tinted[j] * 255;\n          }\n        } else {\n          base.getRgbItem(tinted, 0, baseBuf, pos);\n          pos += baseNumComps;\n        }\n      }\n\n      if (!isPassthrough) {\n        base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n    }\n  }]);\n\n  return AlternateCS;\n}(ColorSpace);\n\nvar PatternCS =\n/*#__PURE__*/\nfunction (_ColorSpace2) {\n  _inherits(PatternCS, _ColorSpace2);\n\n  function PatternCS(baseCS) {\n    var _this2;\n\n    _classCallCheck(this, PatternCS);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(PatternCS).call(this, 'Pattern', null));\n    _this2.base = baseCS;\n    return _this2;\n  }\n\n  _createClass(PatternCS, [{\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      (0, _util.unreachable)('Should not call PatternCS.isDefaultDecode');\n    }\n  }]);\n\n  return PatternCS;\n}(ColorSpace);\n\nvar IndexedCS =\n/*#__PURE__*/\nfunction (_ColorSpace3) {\n  _inherits(IndexedCS, _ColorSpace3);\n\n  function IndexedCS(base, highVal, lookup) {\n    var _this3;\n\n    _classCallCheck(this, IndexedCS);\n\n    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(IndexedCS).call(this, 'Indexed', 1));\n    _this3.base = base;\n    _this3.highVal = highVal;\n    var baseNumComps = base.numComps;\n    var length = baseNumComps * highVal;\n\n    if ((0, _primitives.isStream)(lookup)) {\n      _this3.lookup = new Uint8Array(length);\n      var bytes = lookup.getBytes(length);\n\n      _this3.lookup.set(bytes);\n    } else if ((0, _util.isString)(lookup)) {\n      _this3.lookup = new Uint8Array(length);\n\n      for (var i = 0; i < length; ++i) {\n        _this3.lookup[i] = lookup.charCodeAt(i);\n      }\n    } else if (lookup instanceof Uint8Array) {\n      _this3.lookup = lookup;\n    } else {\n      throw new _util.FormatError(\"Unrecognized lookup table: \".concat(lookup));\n    }\n\n    return _this3;\n  }\n\n  _createClass(IndexedCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var numComps = this.base.numComps;\n      var start = src[srcOffset] * numComps;\n      this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var base = this.base;\n      var numComps = base.numComps;\n      var outputDelta = base.getOutputLength(numComps, alpha01);\n      var lookup = this.lookup;\n\n      for (var i = 0; i < count; ++i) {\n        var lookupPos = src[srcOffset++] * numComps;\n        base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n        destOffset += outputDelta;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      if (!Array.isArray(decodeMap)) {\n        return true;\n      }\n\n      if (decodeMap.length !== 2) {\n        (0, _util.warn)('Decode map length is not correct');\n        return true;\n      }\n\n      if (!Number.isInteger(bpc) || bpc < 1) {\n        (0, _util.warn)('Bits per component is not correct');\n        return true;\n      }\n\n      return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n    }\n  }]);\n\n  return IndexedCS;\n}(ColorSpace);\n\nvar DeviceGrayCS =\n/*#__PURE__*/\nfunction (_ColorSpace4) {\n  _inherits(DeviceGrayCS, _ColorSpace4);\n\n  function DeviceGrayCS() {\n    _classCallCheck(this, DeviceGrayCS);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(DeviceGrayCS).call(this, 'DeviceGray', 1));\n  }\n\n  _createClass(DeviceGrayCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var c = src[srcOffset] * 255;\n      dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset,\n          q = destOffset;\n\n      for (var i = 0; i < count; ++i) {\n        var c = scale * src[j++];\n        dest[q++] = c;\n        dest[q++] = c;\n        dest[q++] = c;\n        q += alpha01;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01);\n    }\n  }]);\n\n  return DeviceGrayCS;\n}(ColorSpace);\n\nvar DeviceRgbCS =\n/*#__PURE__*/\nfunction (_ColorSpace5) {\n  _inherits(DeviceRgbCS, _ColorSpace5);\n\n  function DeviceRgbCS() {\n    _classCallCheck(this, DeviceRgbCS);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(DeviceRgbCS).call(this, 'DeviceRGB', 3));\n  }\n\n  _createClass(DeviceRgbCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      dest[destOffset] = src[srcOffset] * 255;\n      dest[destOffset + 1] = src[srcOffset + 1] * 255;\n      dest[destOffset + 2] = src[srcOffset + 2] * 255;\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (bits === 8 && alpha01 === 0) {\n        dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n        return;\n      }\n\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset,\n          q = destOffset;\n\n      for (var i = 0; i < count; ++i) {\n        dest[q++] = scale * src[j++];\n        dest[q++] = scale * src[j++];\n        dest[q++] = scale * src[j++];\n        q += alpha01;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n  }, {\n    key: \"isPassthrough\",\n    value: function isPassthrough(bits) {\n      return bits === 8;\n    }\n  }]);\n\n  return DeviceRgbCS;\n}(ColorSpace);\n\nvar DeviceCmykCS = function DeviceCmykCSClosure() {\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    var c = src[srcOffset] * srcScale;\n    var m = src[srcOffset + 1] * srcScale;\n    var y = src[srcOffset + 2] * srcScale;\n    var k = src[srcOffset + 3] * srcScale;\n    dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n    dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n    dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  var DeviceCmykCS =\n  /*#__PURE__*/\n  function (_ColorSpace6) {\n    _inherits(DeviceCmykCS, _ColorSpace6);\n\n    function DeviceCmykCS() {\n      _classCallCheck(this, DeviceCmykCS);\n\n      return _possibleConstructorReturn(this, _getPrototypeOf(DeviceCmykCS).call(this, 'DeviceCMYK', 4));\n    }\n\n    _createClass(DeviceCmykCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(src, srcOffset, 1, dest, destOffset);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; i++) {\n          convertToRgb(src, srcOffset, scale, dest, destOffset);\n          srcOffset += 4;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength / 4 * (3 + alpha01) | 0;\n      }\n    }]);\n\n    return DeviceCmykCS;\n  }(ColorSpace);\n\n  return DeviceCmykCS;\n}();\n\nvar CalGrayCS = function CalGrayCSClosure() {\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    var A = src[srcOffset] * scale;\n    var AG = Math.pow(A, cs.G);\n    var L = cs.YW * AG;\n    var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  var CalGrayCS =\n  /*#__PURE__*/\n  function (_ColorSpace7) {\n    _inherits(CalGrayCS, _ColorSpace7);\n\n    function CalGrayCS(whitePoint, blackPoint, gamma) {\n      var _this4;\n\n      _classCallCheck(this, CalGrayCS);\n\n      _this4 = _possibleConstructorReturn(this, _getPrototypeOf(CalGrayCS).call(this, 'CalGray', 1));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space CalGray');\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      gamma = gamma || 1;\n      _this4.XW = whitePoint[0];\n      _this4.YW = whitePoint[1];\n      _this4.ZW = whitePoint[2];\n      _this4.XB = blackPoint[0];\n      _this4.YB = blackPoint[1];\n      _this4.ZB = blackPoint[2];\n      _this4.G = gamma;\n\n      if (_this4.XW < 0 || _this4.ZW < 0 || _this4.YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components for \".concat(_this4.name) + ', no fallback available');\n      }\n\n      if (_this4.XB < 0 || _this4.YB < 0 || _this4.ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint for \".concat(_this4.name, \", falling back to default.\"));\n        _this4.XB = _this4.YB = _this4.ZB = 0;\n      }\n\n      if (_this4.XB !== 0 || _this4.YB !== 0 || _this4.ZB !== 0) {\n        (0, _util.warn)(\"\".concat(_this4.name, \", BlackPoint: XB: \").concat(_this4.XB, \", YB: \").concat(_this4.YB, \", \") + \"ZB: \".concat(_this4.ZB, \", only default values are supported.\"));\n      }\n\n      if (_this4.G < 1) {\n        (0, _util.info)(\"Invalid Gamma: \".concat(_this4.G, \" for \").concat(_this4.name, \", \") + 'falling back to default.');\n        _this4.G = 1;\n      }\n\n      return _this4;\n    }\n\n    _createClass(CalGrayCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; ++i) {\n          convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n          srcOffset += 1;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01);\n      }\n    }]);\n\n    return CalGrayCS;\n  }(ColorSpace);\n\n  return CalGrayCS;\n}();\n\nvar CalRGBCS = function CalRGBCSClosure() {\n  var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n  var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n  var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n  var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n  var tempNormalizeMatrix = new Float32Array(3);\n  var tempConvertMatrix1 = new Float32Array(3);\n  var tempConvertMatrix2 = new Float32Array(3);\n  var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0;\n\n  function matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  function convertToFlat(sourceWhitePoint, LMS, result) {\n    result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n    result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n    result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n  }\n\n  function convertToD65(sourceWhitePoint, LMS, result) {\n    var D65X = 0.95047;\n    var D65Y = 1;\n    var D65Z = 1.08883;\n    result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n    result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n    result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n  }\n\n  function sRGBTransferFunction(color) {\n    if (color <= 0.0031308) {\n      return adjustToRange(0, 1, 12.92 * color);\n    }\n\n    return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055);\n  }\n\n  function adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  function decodeL(L) {\n    if (L < 0) {\n      return -decodeL(-L);\n    }\n\n    if (L > 8.0) {\n      return Math.pow((L + 16) / 116, 3);\n    }\n\n    return L * DECODE_L_CONSTANT;\n  }\n\n  function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    var zeroDecodeL = decodeL(0);\n    var X_DST = zeroDecodeL;\n    var X_SRC = decodeL(sourceBlackPoint[0]);\n    var Y_DST = zeroDecodeL;\n    var Y_SRC = decodeL(sourceBlackPoint[1]);\n    var Z_DST = zeroDecodeL;\n    var Z_SRC = decodeL(sourceBlackPoint[2]);\n    var X_Scale = (1 - X_DST) / (1 - X_SRC);\n    var X_Offset = 1 - X_Scale;\n    var Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    var Y_Offset = 1 - Y_Scale;\n    var Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    var Z_Offset = 1 - Z_Scale;\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    var LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    var LMS_Flat = tempNormalizeMatrix;\n    convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n\n  function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    var LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    var LMS_D65 = tempNormalizeMatrix;\n    convertToD65(sourceWhitePoint, LMS, LMS_D65);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    var A = adjustToRange(0, 1, src[srcOffset] * scale);\n    var B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    var C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n    var AGR = Math.pow(A, cs.GR);\n    var BGG = Math.pow(B, cs.GG);\n    var CGB = Math.pow(C, cs.GB);\n    var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n    var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n    var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n    var XYZ = tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    var XYZ_Flat = tempConvertMatrix2;\n    normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n    var XYZ_Black = tempConvertMatrix1;\n    compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n    var XYZ_D65 = tempConvertMatrix2;\n    normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n    var SRGB = tempConvertMatrix1;\n    matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n    dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  var CalRGBCS =\n  /*#__PURE__*/\n  function (_ColorSpace8) {\n    _inherits(CalRGBCS, _ColorSpace8);\n\n    function CalRGBCS(whitePoint, blackPoint, gamma, matrix) {\n      var _this5;\n\n      _classCallCheck(this, CalRGBCS);\n\n      _this5 = _possibleConstructorReturn(this, _getPrototypeOf(CalRGBCS).call(this, 'CalRGB', 3));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space CalRGB');\n      }\n\n      blackPoint = blackPoint || new Float32Array(3);\n      gamma = gamma || new Float32Array([1, 1, 1]);\n      matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n      var XW = whitePoint[0];\n      var YW = whitePoint[1];\n      var ZW = whitePoint[2];\n      _this5.whitePoint = whitePoint;\n      var XB = blackPoint[0];\n      var YB = blackPoint[1];\n      var ZB = blackPoint[2];\n      _this5.blackPoint = blackPoint;\n      _this5.GR = gamma[0];\n      _this5.GG = gamma[1];\n      _this5.GB = gamma[2];\n      _this5.MXA = matrix[0];\n      _this5.MYA = matrix[1];\n      _this5.MZA = matrix[2];\n      _this5.MXB = matrix[3];\n      _this5.MYB = matrix[4];\n      _this5.MZB = matrix[5];\n      _this5.MXC = matrix[6];\n      _this5.MYC = matrix[7];\n      _this5.MZC = matrix[8];\n\n      if (XW < 0 || ZW < 0 || YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components for \".concat(_this5.name) + ', no fallback available');\n      }\n\n      if (XB < 0 || YB < 0 || ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint for \".concat(_this5.name, \" [\").concat(XB, \", \").concat(YB, \", \").concat(ZB, \"], \") + 'falling back to default.');\n        _this5.blackPoint = new Float32Array(3);\n      }\n\n      if (_this5.GR < 0 || _this5.GG < 0 || _this5.GB < 0) {\n        (0, _util.info)(\"Invalid Gamma [\".concat(_this5.GR, \", \").concat(_this5.GG, \", \").concat(_this5.GB, \"] for \") + \"\".concat(_this5.name, \", falling back to default.\"));\n        _this5.GR = _this5.GG = _this5.GB = 1;\n      }\n\n      return _this5;\n    }\n\n    _createClass(CalRGBCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; ++i) {\n          convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n          srcOffset += 3;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01) / 3 | 0;\n      }\n    }]);\n\n    return CalRGBCS;\n  }(ColorSpace);\n\n  return CalRGBCS;\n}();\n\nvar LabCS = function LabCSClosure() {\n  function fn_g(x) {\n    var result;\n\n    if (x >= 6 / 29) {\n      result = x * x * x;\n    } else {\n      result = 108 / 841 * (x - 4 / 29);\n    }\n\n    return result;\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + value * (high2 - low2) / high1;\n  }\n\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    var Ls = src[srcOffset];\n    var as = src[srcOffset + 1];\n    var bs = src[srcOffset + 2];\n\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n    bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n    var M = (Ls + 16) / 116;\n    var L = M + as / 500;\n    var N = M - bs / 200;\n    var X = cs.XW * fn_g(L);\n    var Y = cs.YW * fn_g(M);\n    var Z = cs.ZW * fn_g(N);\n    var r, g, b;\n\n    if (cs.ZW < 1) {\n      r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n      b = X * 0.0720 + Y * -0.2290 + Z * 1.4057;\n    } else {\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.2040 + Z * 1.0570;\n    }\n\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  var LabCS =\n  /*#__PURE__*/\n  function (_ColorSpace9) {\n    _inherits(LabCS, _ColorSpace9);\n\n    function LabCS(whitePoint, blackPoint, range) {\n      var _this6;\n\n      _classCallCheck(this, LabCS);\n\n      _this6 = _possibleConstructorReturn(this, _getPrototypeOf(LabCS).call(this, 'Lab', 3));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space Lab');\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      range = range || [-100, 100, -100, 100];\n      _this6.XW = whitePoint[0];\n      _this6.YW = whitePoint[1];\n      _this6.ZW = whitePoint[2];\n      _this6.amin = range[0];\n      _this6.amax = range[1];\n      _this6.bmin = range[2];\n      _this6.bmax = range[3];\n      _this6.XB = blackPoint[0];\n      _this6.YB = blackPoint[1];\n      _this6.ZB = blackPoint[2];\n\n      if (_this6.XW < 0 || _this6.ZW < 0 || _this6.YW !== 1) {\n        throw new _util.FormatError('Invalid WhitePoint components, no fallback available');\n      }\n\n      if (_this6.XB < 0 || _this6.YB < 0 || _this6.ZB < 0) {\n        (0, _util.info)('Invalid BlackPoint, falling back to default');\n        _this6.XB = _this6.YB = _this6.ZB = 0;\n      }\n\n      if (_this6.amin > _this6.amax || _this6.bmin > _this6.bmax) {\n        (0, _util.info)('Invalid Range, falling back to defaults');\n        _this6.amin = -100;\n        _this6.amax = 100;\n        _this6.bmin = -100;\n        _this6.bmax = 100;\n      }\n\n      return _this6;\n    }\n\n    _createClass(LabCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, false, dest, destOffset);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var maxVal = (1 << bits) - 1;\n\n        for (var i = 0; i < count; i++) {\n          convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n          srcOffset += 3;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01) / 3 | 0;\n      }\n    }, {\n      key: \"isDefaultDecode\",\n      value: function isDefaultDecode(decodeMap, bpc) {\n        return true;\n      }\n    }, {\n      key: \"usesZeroToOneRange\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'usesZeroToOneRange', false);\n      }\n    }]);\n\n    return LabCS;\n  }(ColorSpace);\n\n  return LabCS;\n}();\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _obj = __w_pdfjs_require__(154);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AnnotationFactory =\n/*#__PURE__*/\nfunction () {\n  function AnnotationFactory() {\n    _classCallCheck(this, AnnotationFactory);\n  }\n\n  _createClass(AnnotationFactory, null, [{\n    key: \"create\",\n    value: function create(xref, ref, pdfManager, idFactory) {\n      return pdfManager.ensure(this, '_create', [xref, ref, pdfManager, idFactory]);\n    }\n  }, {\n    key: \"_create\",\n    value: function _create(xref, ref, pdfManager, idFactory) {\n      var dict = xref.fetchIfRef(ref);\n\n      if (!(0, _primitives.isDict)(dict)) {\n        return;\n      }\n\n      var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();\n      var subtype = dict.get('Subtype');\n      subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n      var parameters = {\n        xref: xref,\n        dict: dict,\n        ref: (0, _primitives.isRef)(ref) ? ref : null,\n        subtype: subtype,\n        id: id,\n        pdfManager: pdfManager\n      };\n\n      switch (subtype) {\n        case 'Link':\n          return new LinkAnnotation(parameters);\n\n        case 'Text':\n          return new TextAnnotation(parameters);\n\n        case 'Widget':\n          var fieldType = (0, _util.getInheritableProperty)({\n            dict: dict,\n            key: 'FT'\n          });\n          fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n\n          switch (fieldType) {\n            case 'Tx':\n              return new TextWidgetAnnotation(parameters);\n\n            case 'Btn':\n              return new ButtonWidgetAnnotation(parameters);\n\n            case 'Ch':\n              return new ChoiceWidgetAnnotation(parameters);\n          }\n\n          (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + 'falling back to base field type.');\n          return new WidgetAnnotation(parameters);\n\n        case 'Popup':\n          return new PopupAnnotation(parameters);\n\n        case 'Line':\n          return new LineAnnotation(parameters);\n\n        case 'Square':\n          return new SquareAnnotation(parameters);\n\n        case 'Circle':\n          return new CircleAnnotation(parameters);\n\n        case 'PolyLine':\n          return new PolylineAnnotation(parameters);\n\n        case 'Polygon':\n          return new PolygonAnnotation(parameters);\n\n        case 'Ink':\n          return new InkAnnotation(parameters);\n\n        case 'Highlight':\n          return new HighlightAnnotation(parameters);\n\n        case 'Underline':\n          return new UnderlineAnnotation(parameters);\n\n        case 'Squiggly':\n          return new SquigglyAnnotation(parameters);\n\n        case 'StrikeOut':\n          return new StrikeOutAnnotation(parameters);\n\n        case 'Stamp':\n          return new StampAnnotation(parameters);\n\n        case 'FileAttachment':\n          return new FileAttachmentAnnotation(parameters);\n\n        default:\n          if (!subtype) {\n            (0, _util.warn)('Annotation is missing the required /Subtype.');\n          } else {\n            (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + 'falling back to base annotation.');\n          }\n\n          return new Annotation(parameters);\n      }\n    }\n  }]);\n\n  return AnnotationFactory;\n}();\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n  var minX = bounds[0];\n  var minY = bounds[1];\n  var maxX = bounds[2];\n  var maxY = bounds[3];\n\n  if (minX === maxX || minY === maxY) {\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nvar Annotation =\n/*#__PURE__*/\nfunction () {\n  function Annotation(params) {\n    _classCallCheck(this, Annotation);\n\n    var dict = params.dict;\n    this.setFlags(dict.get('F'));\n    this.setRectangle(dict.getArray('Rect'));\n    this.setColor(dict.getArray('C'));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      rect: this.rectangle,\n      subtype: params.subtype\n    };\n  }\n\n  _createClass(Annotation, [{\n    key: \"_hasFlag\",\n    value: function _hasFlag(flags, flag) {\n      return !!(flags & flag);\n    }\n  }, {\n    key: \"_isViewable\",\n    value: function _isViewable(flags) {\n      return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n    }\n  }, {\n    key: \"_isPrintable\",\n    value: function _isPrintable(flags) {\n      return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n    }\n  }, {\n    key: \"setFlags\",\n    value: function setFlags(flags) {\n      this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n    }\n  }, {\n    key: \"hasFlag\",\n    value: function hasFlag(flag) {\n      return this._hasFlag(this.flags, flag);\n    }\n  }, {\n    key: \"setRectangle\",\n    value: function setRectangle(rectangle) {\n      if (Array.isArray(rectangle) && rectangle.length === 4) {\n        this.rectangle = _util.Util.normalizeRect(rectangle);\n      } else {\n        this.rectangle = [0, 0, 0, 0];\n      }\n    }\n  }, {\n    key: \"setColor\",\n    value: function setColor(color) {\n      var rgbColor = new Uint8ClampedArray(3);\n\n      if (!Array.isArray(color)) {\n        this.color = rgbColor;\n        return;\n      }\n\n      switch (color.length) {\n        case 0:\n          this.color = null;\n          break;\n\n        case 1:\n          _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        case 3:\n          _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        case 4:\n          _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        default:\n          this.color = rgbColor;\n          break;\n      }\n    }\n  }, {\n    key: \"setBorderStyle\",\n    value: function setBorderStyle(borderStyle) {\n      this.borderStyle = new AnnotationBorderStyle();\n\n      if (!(0, _primitives.isDict)(borderStyle)) {\n        return;\n      }\n\n      if (borderStyle.has('BS')) {\n        var dict = borderStyle.get('BS');\n        var dictType = dict.get('Type');\n\n        if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {\n          this.borderStyle.setWidth(dict.get('W'));\n          this.borderStyle.setStyle(dict.get('S'));\n          this.borderStyle.setDashArray(dict.getArray('D'));\n        }\n      } else if (borderStyle.has('Border')) {\n        var array = borderStyle.getArray('Border');\n\n        if (Array.isArray(array) && array.length >= 3) {\n          this.borderStyle.setHorizontalCornerRadius(array[0]);\n          this.borderStyle.setVerticalCornerRadius(array[1]);\n          this.borderStyle.setWidth(array[2]);\n\n          if (array.length === 4) {\n            this.borderStyle.setDashArray(array[3]);\n          }\n        }\n      } else {\n        this.borderStyle.setWidth(0);\n      }\n    }\n  }, {\n    key: \"setAppearance\",\n    value: function setAppearance(dict) {\n      this.appearance = null;\n      var appearanceStates = dict.get('AP');\n\n      if (!(0, _primitives.isDict)(appearanceStates)) {\n        return;\n      }\n\n      var normalAppearanceState = appearanceStates.get('N');\n\n      if ((0, _primitives.isStream)(normalAppearanceState)) {\n        this.appearance = normalAppearanceState;\n        return;\n      }\n\n      if (!(0, _primitives.isDict)(normalAppearanceState)) {\n        return;\n      }\n\n      var as = dict.get('AS');\n\n      if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n        return;\n      }\n\n      this.appearance = normalAppearanceState.get(as.name);\n    }\n  }, {\n    key: \"_preparePopup\",\n    value: function _preparePopup(dict) {\n      if (!dict.has('C')) {\n        this.data.color = null;\n      }\n\n      this.data.hasPopup = dict.has('Popup');\n      this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');\n      this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(keys) {\n      return this.appearance.dict.getAsync('Resources').then(function (resources) {\n        if (!resources) {\n          return;\n        }\n\n        var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n        return objectLoader.load().then(function () {\n          return resources;\n        });\n      });\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      var _this = this;\n\n      if (!this.appearance) {\n        return Promise.resolve(new _operator_list.OperatorList());\n      }\n\n      var data = this.data;\n      var appearanceDict = this.appearance.dict;\n      var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n      var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];\n      var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];\n      var transform = getTransformMatrix(data.rect, bbox, matrix);\n      return resourcesPromise.then(function (resources) {\n        var opList = new _operator_list.OperatorList();\n        opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n        return evaluator.getOperatorList({\n          stream: _this.appearance,\n          task: task,\n          resources: resources,\n          operatorList: opList\n        }).then(function () {\n          opList.addOp(_util.OPS.endAnnotation, []);\n\n          _this.appearance.reset();\n\n          return opList;\n        });\n      });\n    }\n  }, {\n    key: \"viewable\",\n    get: function get() {\n      if (this.flags === 0) {\n        return true;\n      }\n\n      return this._isViewable(this.flags);\n    }\n  }, {\n    key: \"printable\",\n    get: function get() {\n      if (this.flags === 0) {\n        return false;\n      }\n\n      return this._isPrintable(this.flags);\n    }\n  }]);\n\n  return Annotation;\n}();\n\nexports.Annotation = Annotation;\n\nvar AnnotationBorderStyle =\n/*#__PURE__*/\nfunction () {\n  function AnnotationBorderStyle() {\n    _classCallCheck(this, AnnotationBorderStyle);\n\n    this.width = 1;\n    this.style = _util.AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  _createClass(AnnotationBorderStyle, [{\n    key: \"setWidth\",\n    value: function setWidth(width) {\n      if ((0, _primitives.isName)(width)) {\n        this.width = 0;\n        return;\n      }\n\n      if (Number.isInteger(width)) {\n        this.width = width;\n      }\n    }\n  }, {\n    key: \"setStyle\",\n    value: function setStyle(style) {\n      if (!(0, _primitives.isName)(style)) {\n        return;\n      }\n\n      switch (style.name) {\n        case 'S':\n          this.style = _util.AnnotationBorderStyleType.SOLID;\n          break;\n\n        case 'D':\n          this.style = _util.AnnotationBorderStyleType.DASHED;\n          break;\n\n        case 'B':\n          this.style = _util.AnnotationBorderStyleType.BEVELED;\n          break;\n\n        case 'I':\n          this.style = _util.AnnotationBorderStyleType.INSET;\n          break;\n\n        case 'U':\n          this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n          break;\n\n        default:\n          break;\n      }\n    }\n  }, {\n    key: \"setDashArray\",\n    value: function setDashArray(dashArray) {\n      if (Array.isArray(dashArray) && dashArray.length > 0) {\n        var isValid = true;\n        var allZeros = true;\n\n        for (var i = 0, len = dashArray.length; i < len; i++) {\n          var element = dashArray[i];\n          var validNumber = +element >= 0;\n\n          if (!validNumber) {\n            isValid = false;\n            break;\n          } else if (element > 0) {\n            allZeros = false;\n          }\n        }\n\n        if (isValid && !allZeros) {\n          this.dashArray = dashArray;\n        } else {\n          this.width = 0;\n        }\n      } else if (dashArray) {\n        this.width = 0;\n      }\n    }\n  }, {\n    key: \"setHorizontalCornerRadius\",\n    value: function setHorizontalCornerRadius(radius) {\n      if (Number.isInteger(radius)) {\n        this.horizontalCornerRadius = radius;\n      }\n    }\n  }, {\n    key: \"setVerticalCornerRadius\",\n    value: function setVerticalCornerRadius(radius) {\n      if (Number.isInteger(radius)) {\n        this.verticalCornerRadius = radius;\n      }\n    }\n  }]);\n\n  return AnnotationBorderStyle;\n}();\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nvar WidgetAnnotation =\n/*#__PURE__*/\nfunction (_Annotation) {\n  _inherits(WidgetAnnotation, _Annotation);\n\n  function WidgetAnnotation(params) {\n    var _this2;\n\n    _classCallCheck(this, WidgetAnnotation);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params));\n    var dict = params.dict;\n    var data = _this2.data;\n    data.annotationType = _util.AnnotationType.WIDGET;\n    data.fieldName = _this2._constructFieldName(dict);\n    data.fieldValue = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'V',\n      getArray: true\n    });\n    data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');\n    data.defaultAppearance = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'DA'\n    }) || '';\n    var fieldType = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'FT'\n    });\n    data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n    _this2.fieldResources = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'DR'\n    }) || _primitives.Dict.empty;\n    data.fieldFlags = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'Ff'\n    });\n\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = _this2.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n\n    if (data.fieldType === 'Sig') {\n      data.fieldValue = null;\n\n      _this2.setFlags(_util.AnnotationFlag.HIDDEN);\n    }\n\n    return _this2;\n  }\n\n  _createClass(WidgetAnnotation, [{\n    key: \"_constructFieldName\",\n    value: function _constructFieldName(dict) {\n      if (!dict.has('T') && !dict.has('Parent')) {\n        (0, _util.warn)('Unknown field name, falling back to empty field name.');\n        return '';\n      }\n\n      if (!dict.has('Parent')) {\n        return (0, _util.stringToPDFString)(dict.get('T'));\n      }\n\n      var fieldName = [];\n\n      if (dict.has('T')) {\n        fieldName.unshift((0, _util.stringToPDFString)(dict.get('T')));\n      }\n\n      var loopDict = dict;\n\n      while (loopDict.has('Parent')) {\n        loopDict = loopDict.get('Parent');\n\n        if (!(0, _primitives.isDict)(loopDict)) {\n          break;\n        }\n\n        if (loopDict.has('T')) {\n          fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T')));\n        }\n      }\n\n      return fieldName.join('.');\n    }\n  }, {\n    key: \"hasFieldFlag\",\n    value: function hasFieldFlag(flag) {\n      return !!(this.data.fieldFlags & flag);\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      if (renderForms) {\n        return Promise.resolve(new _operator_list.OperatorList());\n      }\n\n      return _get(_getPrototypeOf(WidgetAnnotation.prototype), \"getOperatorList\", this).call(this, evaluator, task, renderForms);\n    }\n  }]);\n\n  return WidgetAnnotation;\n}(Annotation);\n\nvar TextWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation) {\n  _inherits(TextWidgetAnnotation, _WidgetAnnotation);\n\n  function TextWidgetAnnotation(params) {\n    var _this3;\n\n    _classCallCheck(this, TextWidgetAnnotation);\n\n    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params));\n    var dict = params.dict;\n    _this3.data.fieldValue = (0, _util.stringToPDFString)(_this3.data.fieldValue || '');\n    var alignment = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'Q'\n    });\n\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n\n    _this3.data.textAlignment = alignment;\n    var maximumLength = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'MaxLen'\n    });\n\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = null;\n    }\n\n    _this3.data.maxLen = maximumLength;\n    _this3.data.multiLine = _this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n    _this3.data.comb = _this3.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this3.data.maxLen !== null;\n    return _this3;\n  }\n\n  _createClass(TextWidgetAnnotation, [{\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      if (renderForms || this.appearance) {\n        return _get(_getPrototypeOf(TextWidgetAnnotation.prototype), \"getOperatorList\", this).call(this, evaluator, task, renderForms);\n      }\n\n      var operatorList = new _operator_list.OperatorList();\n\n      if (!this.data.defaultAppearance) {\n        return Promise.resolve(operatorList);\n      }\n\n      var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n      return evaluator.getOperatorList({\n        stream: stream,\n        task: task,\n        resources: this.fieldResources,\n        operatorList: operatorList\n      }).then(function () {\n        return operatorList;\n      });\n    }\n  }]);\n\n  return TextWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ButtonWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation2) {\n  _inherits(ButtonWidgetAnnotation, _WidgetAnnotation2);\n\n  function ButtonWidgetAnnotation(params) {\n    var _this4;\n\n    _classCallCheck(this, ButtonWidgetAnnotation);\n\n    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params));\n    _this4.data.checkBox = !_this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    _this4.data.radioButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    _this4.data.pushButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n\n    if (_this4.data.checkBox) {\n      _this4._processCheckBox(params);\n    } else if (_this4.data.radioButton) {\n      _this4._processRadioButton(params);\n    } else if (_this4.data.pushButton) {\n      _this4._processPushButton(params);\n    } else {\n      (0, _util.warn)('Invalid field flags for button widget annotation');\n    }\n\n    return _this4;\n  }\n\n  _createClass(ButtonWidgetAnnotation, [{\n    key: \"_processCheckBox\",\n    value: function _processCheckBox(params) {\n      if ((0, _primitives.isName)(this.data.fieldValue)) {\n        this.data.fieldValue = this.data.fieldValue.name;\n      }\n\n      var customAppearance = params.dict.get('AP');\n\n      if (!(0, _primitives.isDict)(customAppearance)) {\n        return;\n      }\n\n      var exportValueOptionsDict = customAppearance.get('D');\n\n      if (!(0, _primitives.isDict)(exportValueOptionsDict)) {\n        return;\n      }\n\n      var exportValues = exportValueOptionsDict.getKeys();\n      var hasCorrectOptionCount = exportValues.length === 2;\n\n      if (!hasCorrectOptionCount) {\n        return;\n      }\n\n      this.data.exportValue = exportValues[0] === 'Off' ? exportValues[1] : exportValues[0];\n    }\n  }, {\n    key: \"_processRadioButton\",\n    value: function _processRadioButton(params) {\n      this.data.fieldValue = this.data.buttonValue = null;\n      var fieldParent = params.dict.get('Parent');\n\n      if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) {\n        var fieldParentValue = fieldParent.get('V');\n\n        if ((0, _primitives.isName)(fieldParentValue)) {\n          this.data.fieldValue = fieldParentValue.name;\n        }\n      }\n\n      var appearanceStates = params.dict.get('AP');\n\n      if (!(0, _primitives.isDict)(appearanceStates)) {\n        return;\n      }\n\n      var normalAppearanceState = appearanceStates.get('N');\n\n      if (!(0, _primitives.isDict)(normalAppearanceState)) {\n        return;\n      }\n\n      var keys = normalAppearanceState.getKeys();\n\n      for (var i = 0, ii = keys.length; i < ii; i++) {\n        if (keys[i] !== 'Off') {\n          this.data.buttonValue = keys[i];\n          break;\n        }\n      }\n    }\n  }, {\n    key: \"_processPushButton\",\n    value: function _processPushButton(params) {\n      if (!params.dict.has('A')) {\n        (0, _util.warn)('Push buttons without action dictionaries are not supported');\n        return;\n      }\n\n      _obj.Catalog.parseDestDictionary({\n        destDict: params.dict,\n        resultObj: this.data,\n        docBaseUrl: params.pdfManager.docBaseUrl\n      });\n    }\n  }]);\n\n  return ButtonWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ChoiceWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation3) {\n  _inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3);\n\n  function ChoiceWidgetAnnotation(params) {\n    var _this5;\n\n    _classCallCheck(this, ChoiceWidgetAnnotation);\n\n    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params));\n    _this5.data.options = [];\n    var options = (0, _util.getInheritableProperty)({\n      dict: params.dict,\n      key: 'Opt'\n    });\n\n    if (Array.isArray(options)) {\n      var xref = params.xref;\n\n      for (var i = 0, ii = options.length; i < ii; i++) {\n        var option = xref.fetchIfRef(options[i]);\n        var isOptionArray = Array.isArray(option);\n        _this5.data.options[i] = {\n          exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n          displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n        };\n      }\n    }\n\n    if (!Array.isArray(_this5.data.fieldValue)) {\n      _this5.data.fieldValue = [_this5.data.fieldValue];\n    }\n\n    _this5.data.combo = _this5.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n    _this5.data.multiSelect = _this5.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n    return _this5;\n  }\n\n  return ChoiceWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar TextAnnotation =\n/*#__PURE__*/\nfunction (_Annotation2) {\n  _inherits(TextAnnotation, _Annotation2);\n\n  function TextAnnotation(parameters) {\n    var _this6;\n\n    _classCallCheck(this, TextAnnotation);\n\n    var DEFAULT_ICON_SIZE = 22;\n    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters));\n    _this6.data.annotationType = _util.AnnotationType.TEXT;\n\n    if (_this6.data.hasAppearance) {\n      _this6.data.name = 'NoIcon';\n    } else {\n      _this6.data.rect[1] = _this6.data.rect[3] - DEFAULT_ICON_SIZE;\n      _this6.data.rect[2] = _this6.data.rect[0] + DEFAULT_ICON_SIZE;\n      _this6.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';\n    }\n\n    _this6._preparePopup(parameters.dict);\n\n    return _this6;\n  }\n\n  return TextAnnotation;\n}(Annotation);\n\nvar LinkAnnotation =\n/*#__PURE__*/\nfunction (_Annotation3) {\n  _inherits(LinkAnnotation, _Annotation3);\n\n  function LinkAnnotation(params) {\n    var _this7;\n\n    _classCallCheck(this, LinkAnnotation);\n\n    _this7 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params));\n    _this7.data.annotationType = _util.AnnotationType.LINK;\n\n    _obj.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: _this7.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n\n    return _this7;\n  }\n\n  return LinkAnnotation;\n}(Annotation);\n\nvar PopupAnnotation =\n/*#__PURE__*/\nfunction (_Annotation4) {\n  _inherits(PopupAnnotation, _Annotation4);\n\n  function PopupAnnotation(parameters) {\n    var _this8;\n\n    _classCallCheck(this, PopupAnnotation);\n\n    _this8 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters));\n    _this8.data.annotationType = _util.AnnotationType.POPUP;\n    var dict = parameters.dict;\n    var parentItem = dict.get('Parent');\n\n    if (!parentItem) {\n      (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');\n      return _possibleConstructorReturn(_this8);\n    }\n\n    var parentSubtype = parentItem.get('Subtype');\n    _this8.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n    _this8.data.parentId = dict.getRaw('Parent').toString();\n    _this8.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');\n    _this8.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');\n\n    if (!parentItem.has('C')) {\n      _this8.data.color = null;\n    } else {\n      _this8.setColor(parentItem.getArray('C'));\n\n      _this8.data.color = _this8.color;\n    }\n\n    if (!_this8.viewable) {\n      var parentFlags = parentItem.get('F');\n\n      if (_this8._isViewable(parentFlags)) {\n        _this8.setFlags(parentFlags);\n      }\n    }\n\n    return _this8;\n  }\n\n  return PopupAnnotation;\n}(Annotation);\n\nvar LineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation5) {\n  _inherits(LineAnnotation, _Annotation5);\n\n  function LineAnnotation(parameters) {\n    var _this9;\n\n    _classCallCheck(this, LineAnnotation);\n\n    _this9 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters));\n    _this9.data.annotationType = _util.AnnotationType.LINE;\n    var dict = parameters.dict;\n    _this9.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));\n\n    _this9._preparePopup(dict);\n\n    return _this9;\n  }\n\n  return LineAnnotation;\n}(Annotation);\n\nvar SquareAnnotation =\n/*#__PURE__*/\nfunction (_Annotation6) {\n  _inherits(SquareAnnotation, _Annotation6);\n\n  function SquareAnnotation(parameters) {\n    var _this10;\n\n    _classCallCheck(this, SquareAnnotation);\n\n    _this10 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters));\n    _this10.data.annotationType = _util.AnnotationType.SQUARE;\n\n    _this10._preparePopup(parameters.dict);\n\n    return _this10;\n  }\n\n  return SquareAnnotation;\n}(Annotation);\n\nvar CircleAnnotation =\n/*#__PURE__*/\nfunction (_Annotation7) {\n  _inherits(CircleAnnotation, _Annotation7);\n\n  function CircleAnnotation(parameters) {\n    var _this11;\n\n    _classCallCheck(this, CircleAnnotation);\n\n    _this11 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters));\n    _this11.data.annotationType = _util.AnnotationType.CIRCLE;\n\n    _this11._preparePopup(parameters.dict);\n\n    return _this11;\n  }\n\n  return CircleAnnotation;\n}(Annotation);\n\nvar PolylineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation8) {\n  _inherits(PolylineAnnotation, _Annotation8);\n\n  function PolylineAnnotation(parameters) {\n    var _this12;\n\n    _classCallCheck(this, PolylineAnnotation);\n\n    _this12 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters));\n    _this12.data.annotationType = _util.AnnotationType.POLYLINE;\n    var dict = parameters.dict;\n    var rawVertices = dict.getArray('Vertices');\n    _this12.data.vertices = [];\n\n    for (var i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      _this12.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1]\n      });\n    }\n\n    _this12._preparePopup(dict);\n\n    return _this12;\n  }\n\n  return PolylineAnnotation;\n}(Annotation);\n\nvar PolygonAnnotation =\n/*#__PURE__*/\nfunction (_PolylineAnnotation) {\n  _inherits(PolygonAnnotation, _PolylineAnnotation);\n\n  function PolygonAnnotation(parameters) {\n    var _this13;\n\n    _classCallCheck(this, PolygonAnnotation);\n\n    _this13 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters));\n    _this13.data.annotationType = _util.AnnotationType.POLYGON;\n    return _this13;\n  }\n\n  return PolygonAnnotation;\n}(PolylineAnnotation);\n\nvar InkAnnotation =\n/*#__PURE__*/\nfunction (_Annotation9) {\n  _inherits(InkAnnotation, _Annotation9);\n\n  function InkAnnotation(parameters) {\n    var _this14;\n\n    _classCallCheck(this, InkAnnotation);\n\n    _this14 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters));\n    _this14.data.annotationType = _util.AnnotationType.INK;\n    var dict = parameters.dict;\n    var xref = parameters.xref;\n    var originalInkLists = dict.getArray('InkList');\n    _this14.data.inkLists = [];\n\n    for (var i = 0, ii = originalInkLists.length; i < ii; ++i) {\n      _this14.data.inkLists.push([]);\n\n      for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n        _this14.data.inkLists[i].push({\n          x: xref.fetchIfRef(originalInkLists[i][j]),\n          y: xref.fetchIfRef(originalInkLists[i][j + 1])\n        });\n      }\n    }\n\n    _this14._preparePopup(dict);\n\n    return _this14;\n  }\n\n  return InkAnnotation;\n}(Annotation);\n\nvar HighlightAnnotation =\n/*#__PURE__*/\nfunction (_Annotation10) {\n  _inherits(HighlightAnnotation, _Annotation10);\n\n  function HighlightAnnotation(parameters) {\n    var _this15;\n\n    _classCallCheck(this, HighlightAnnotation);\n\n    _this15 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters));\n    _this15.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n\n    _this15._preparePopup(parameters.dict);\n\n    return _this15;\n  }\n\n  return HighlightAnnotation;\n}(Annotation);\n\nvar UnderlineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation11) {\n  _inherits(UnderlineAnnotation, _Annotation11);\n\n  function UnderlineAnnotation(parameters) {\n    var _this16;\n\n    _classCallCheck(this, UnderlineAnnotation);\n\n    _this16 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters));\n    _this16.data.annotationType = _util.AnnotationType.UNDERLINE;\n\n    _this16._preparePopup(parameters.dict);\n\n    return _this16;\n  }\n\n  return UnderlineAnnotation;\n}(Annotation);\n\nvar SquigglyAnnotation =\n/*#__PURE__*/\nfunction (_Annotation12) {\n  _inherits(SquigglyAnnotation, _Annotation12);\n\n  function SquigglyAnnotation(parameters) {\n    var _this17;\n\n    _classCallCheck(this, SquigglyAnnotation);\n\n    _this17 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters));\n    _this17.data.annotationType = _util.AnnotationType.SQUIGGLY;\n\n    _this17._preparePopup(parameters.dict);\n\n    return _this17;\n  }\n\n  return SquigglyAnnotation;\n}(Annotation);\n\nvar StrikeOutAnnotation =\n/*#__PURE__*/\nfunction (_Annotation13) {\n  _inherits(StrikeOutAnnotation, _Annotation13);\n\n  function StrikeOutAnnotation(parameters) {\n    var _this18;\n\n    _classCallCheck(this, StrikeOutAnnotation);\n\n    _this18 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters));\n    _this18.data.annotationType = _util.AnnotationType.STRIKEOUT;\n\n    _this18._preparePopup(parameters.dict);\n\n    return _this18;\n  }\n\n  return StrikeOutAnnotation;\n}(Annotation);\n\nvar StampAnnotation =\n/*#__PURE__*/\nfunction (_Annotation14) {\n  _inherits(StampAnnotation, _Annotation14);\n\n  function StampAnnotation(parameters) {\n    var _this19;\n\n    _classCallCheck(this, StampAnnotation);\n\n    _this19 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters));\n    _this19.data.annotationType = _util.AnnotationType.STAMP;\n\n    _this19._preparePopup(parameters.dict);\n\n    return _this19;\n  }\n\n  return StampAnnotation;\n}(Annotation);\n\nvar FileAttachmentAnnotation =\n/*#__PURE__*/\nfunction (_Annotation15) {\n  _inherits(FileAttachmentAnnotation, _Annotation15);\n\n  function FileAttachmentAnnotation(parameters) {\n    var _this20;\n\n    _classCallCheck(this, FileAttachmentAnnotation);\n\n    _this20 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters));\n    var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);\n    _this20.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n    _this20.data.file = file.serializable;\n\n    _this20._preparePopup(parameters.dict);\n\n    return _this20;\n  }\n\n  return FileAttachmentAnnotation;\n}(Annotation);\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n  function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n    var state = parentState;\n\n    for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n      var item = pattern[i];\n      state = state[item] || (state[item] = []);\n    }\n\n    state[pattern[pattern.length - 1]] = {\n      checkFn: checkFn,\n      iterateFn: iterateFn,\n      processFn: processFn\n    };\n  }\n\n  function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n    var iFirstPIMXO = iFirstSave + 2;\n\n    for (var i = 0; i < count; i++) {\n      var arg = argsArray[iFirstPIMXO + 4 * i];\n      var imageMask = arg.length === 1 && arg[0];\n\n      if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n        fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n        continue;\n      }\n\n      break;\n    }\n\n    return count - i;\n  }\n\n  var InitialState = [];\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n    var fnArray = context.fnArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        return fnArray[i] === _util.OPS.transform;\n\n      case 2:\n        return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function foundInlineImageGroup(context, i) {\n    var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n    var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n    var MAX_WIDTH = 1000;\n    var IMAGE_PADDING = 1;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIIXO = curr - 1;\n    var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n    if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var maxX = 0;\n    var map = [],\n        maxLineHeight = 0;\n    var currentX = IMAGE_PADDING,\n        currentY = IMAGE_PADDING;\n    var q;\n\n    for (q = 0; q < count; q++) {\n      var transform = argsArray[iFirstTransform + (q << 2)];\n      var img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n      if (currentX + img.width > MAX_WIDTH) {\n        maxX = Math.max(maxX, currentX);\n        currentY += maxLineHeight + 2 * IMAGE_PADDING;\n        currentX = 0;\n        maxLineHeight = 0;\n      }\n\n      map.push({\n        transform: transform,\n        x: currentX,\n        y: currentY,\n        w: img.width,\n        h: img.height\n      });\n      currentX += img.width + 2 * IMAGE_PADDING;\n      maxLineHeight = Math.max(maxLineHeight, img.height);\n    }\n\n    var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n    var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n    var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n    var imgRowSize = imgWidth << 2;\n\n    for (q = 0; q < count; q++) {\n      var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n      var rowSize = map[q].w << 2;\n      var dataOffset = 0;\n      var offset = map[q].x + map[q].y * imgWidth << 2;\n      imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n      for (var k = 0, kk = map[q].h; k < kk; k++) {\n        imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n        dataOffset += rowSize;\n        offset += imgRowSize;\n      }\n\n      imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n      while (offset >= 0) {\n        data[offset - 4] = data[offset];\n        data[offset - 3] = data[offset + 1];\n        data[offset - 2] = data[offset + 2];\n        data[offset - 1] = data[offset + 3];\n        data[offset + rowSize] = data[offset + rowSize - 4];\n        data[offset + rowSize + 1] = data[offset + rowSize - 3];\n        data[offset + rowSize + 2] = data[offset + rowSize - 2];\n        data[offset + rowSize + 3] = data[offset + rowSize - 1];\n        offset -= imgRowSize;\n      }\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [{\n      width: imgWidth,\n      height: imgHeight,\n      kind: _util.ImageKind.RGBA_32BPP,\n      data: imgData\n    }, map]);\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n    var fnArray = context.fnArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        return fnArray[i] === _util.OPS.transform;\n\n      case 2:\n        return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function foundImageMaskGroup(context, i) {\n    var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n    var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n    var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIMXO = curr - 1;\n    var count = Math.floor((i - iFirstSave) / 4);\n    count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n\n    if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var q;\n    var isSameImage = false;\n    var iTransform, transformArgs;\n    var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n\n    if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n      isSameImage = true;\n      var firstTransformArg0 = argsArray[iFirstTransform][0];\n      var firstTransformArg3 = argsArray[iFirstTransform][3];\n      iTransform = iFirstTransform + 4;\n      var iPIMXO = iFirstPIMXO + 4;\n\n      for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n        transformArgs = argsArray[iTransform];\n\n        if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n          if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n            isSameImage = false;\n          } else {\n            count = q;\n          }\n\n          break;\n        }\n      }\n    }\n\n    if (isSameImage) {\n      count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n      var positions = new Float32Array(count * 2);\n      iTransform = iFirstTransform;\n\n      for (q = 0; q < count; q++, iTransform += 4) {\n        transformArgs = argsArray[iTransform];\n        positions[q << 1] = transformArgs[4];\n        positions[(q << 1) + 1] = transformArgs[5];\n      }\n\n      fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n      argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n    } else {\n      count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n      var images = [];\n\n      for (q = 0; q < count; q++) {\n        transformArgs = argsArray[iFirstTransform + (q << 2)];\n        var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n        images.push({\n          data: maskParams.data,\n          width: maskParams.width,\n          height: maskParams.height,\n          transform: transformArgs\n        });\n      }\n\n      fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n      argsArray.splice(iFirstSave, count * 4, [images]);\n    }\n\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n    var argsArray = context.argsArray;\n    var iFirstTransform = context.iCurr - 2;\n    return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n  }, function (context, i) {\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        if (fnArray[i] !== _util.OPS.transform) {\n          return false;\n        }\n\n        var iFirstTransform = context.iCurr - 2;\n        var firstTransformArg0 = argsArray[iFirstTransform][0];\n        var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n        if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n          return false;\n        }\n\n        return true;\n\n      case 2:\n        if (fnArray[i] !== _util.OPS.paintImageXObject) {\n          return false;\n        }\n\n        var iFirstPIXO = context.iCurr - 1;\n        var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n        if (argsArray[i][0] !== firstPIXOArg0) {\n          return false;\n        }\n\n        return true;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function (context, i) {\n    var MIN_IMAGES_IN_BLOCK = 3;\n    var MAX_IMAGES_IN_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIXO = curr - 1;\n    var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n    var firstTransformArg0 = argsArray[iFirstTransform][0];\n    var firstTransformArg3 = argsArray[iFirstTransform][3];\n    var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n    if (count < MIN_IMAGES_IN_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var positions = new Float32Array(count * 2);\n    var iTransform = iFirstTransform;\n\n    for (var q = 0; q < count; q++, iTransform += 4) {\n      var transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n\n    var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, args);\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) {\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var iFirstSave = context.iCurr - 4;\n    var pos = (i - iFirstSave) % 5;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.beginText;\n\n      case 1:\n        return fnArray[i] === _util.OPS.setFont;\n\n      case 2:\n        return fnArray[i] === _util.OPS.setTextMatrix;\n\n      case 3:\n        if (fnArray[i] !== _util.OPS.showText) {\n          return false;\n        }\n\n        var iFirstSetFont = context.iCurr - 3;\n        var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n        var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n        if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n          return false;\n        }\n\n        return true;\n\n      case 4:\n        return fnArray[i] === _util.OPS.endText;\n    }\n  }, function (context, i) {\n    var MIN_CHARS_IN_BLOCK = 3;\n    var MAX_CHARS_IN_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstBeginText = curr - 4;\n    var iFirstSetFont = curr - 3;\n    var iFirstSetTextMatrix = curr - 2;\n    var iFirstShowText = curr - 1;\n    var iFirstEndText = curr;\n    var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n    var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n    var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n    if (count < MIN_CHARS_IN_BLOCK) {\n      return i - (i - iFirstBeginText) % 5;\n    }\n\n    var iFirst = iFirstBeginText;\n\n    if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n      count++;\n      iFirst -= 5;\n    }\n\n    var iEndText = iFirst + 4;\n\n    for (var q = 1; q < count; q++) {\n      fnArray.splice(iEndText, 3);\n      argsArray.splice(iEndText, 3);\n      iEndText += 2;\n    }\n\n    return iEndText + 1;\n  });\n\n  function QueueOptimizer(queue) {\n    this.queue = queue;\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  QueueOptimizer.prototype = {\n    _optimize: function _optimize() {\n      var fnArray = this.queue.fnArray;\n      var i = this.lastProcessed,\n          ii = fnArray.length;\n      var state = this.state;\n      var match = this.match;\n\n      if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n        this.lastProcessed = ii;\n        return;\n      }\n\n      var context = this.context;\n\n      while (i < ii) {\n        if (match) {\n          var iterate = (0, match.iterateFn)(context, i);\n\n          if (iterate) {\n            i++;\n            continue;\n          }\n\n          i = (0, match.processFn)(context, i + 1);\n          ii = fnArray.length;\n          match = null;\n          state = null;\n\n          if (i >= ii) {\n            break;\n          }\n        }\n\n        state = (state || InitialState)[fnArray[i]];\n\n        if (!state || Array.isArray(state)) {\n          i++;\n          continue;\n        }\n\n        context.iCurr = i;\n        i++;\n\n        if (state.checkFn && !(0, state.checkFn)(context)) {\n          state = null;\n          continue;\n        }\n\n        match = state;\n        state = null;\n      }\n\n      this.state = state;\n      this.match = match;\n      this.lastProcessed = i;\n    },\n    push: function push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n\n      this._optimize();\n    },\n    flush: function flush() {\n      while (this.match) {\n        var length = this.queue.fnArray.length;\n        this.lastProcessed = (0, this.match.processFn)(this.context, length);\n        this.match = null;\n        this.state = null;\n\n        this._optimize();\n      }\n    },\n    reset: function reset() {\n      this.state = null;\n      this.match = null;\n      this.lastProcessed = 0;\n    }\n  };\n  return QueueOptimizer;\n}();\n\nvar NullOptimizer = function NullOptimizerClosure() {\n  function NullOptimizer(queue) {\n    this.queue = queue;\n  }\n\n  NullOptimizer.prototype = {\n    push: function push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n    },\n    flush: function flush() {}\n  };\n  return NullOptimizer;\n}();\n\nvar OperatorList = function OperatorListClosure() {\n  var CHUNK_SIZE = 1000;\n  var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n\n  function getTransfers(queue) {\n    var transfers = [];\n    var fnArray = queue.fnArray,\n        argsArray = queue.argsArray;\n\n    for (var i = 0, ii = queue.length; i < ii; i++) {\n      switch (fnArray[i]) {\n        case _util.OPS.paintInlineImageXObject:\n        case _util.OPS.paintInlineImageXObjectGroup:\n        case _util.OPS.paintImageMaskXObject:\n          var arg = argsArray[i][0];\n          ;\n\n          if (!arg.cached) {\n            transfers.push(arg.data.buffer);\n          }\n\n          break;\n      }\n    }\n\n    return transfers;\n  }\n\n  function OperatorList(intent, messageHandler, pageIndex) {\n    this.messageHandler = messageHandler;\n    this.fnArray = [];\n    this.argsArray = [];\n\n    if (messageHandler && this.intent !== 'oplist') {\n      this.optimizer = new QueueOptimizer(this);\n    } else {\n      this.optimizer = new NullOptimizer(this);\n    }\n\n    this.dependencies = Object.create(null);\n    this._totalLength = 0;\n    this.pageIndex = pageIndex;\n    this.intent = intent;\n    this.weight = 0;\n  }\n\n  OperatorList.prototype = {\n    get length() {\n      return this.argsArray.length;\n    },\n\n    get totalLength() {\n      return this._totalLength + this.length;\n    },\n\n    addOp: function addOp(fn, args) {\n      this.optimizer.push(fn, args);\n      this.weight++;\n\n      if (this.messageHandler) {\n        if (this.weight >= CHUNK_SIZE) {\n          this.flush();\n        } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n          this.flush();\n        }\n      }\n    },\n    addDependency: function addDependency(dependency) {\n      if (dependency in this.dependencies) {\n        return;\n      }\n\n      this.dependencies[dependency] = true;\n      this.addOp(_util.OPS.dependency, [dependency]);\n    },\n    addDependencies: function addDependencies(dependencies) {\n      for (var key in dependencies) {\n        this.addDependency(key);\n      }\n    },\n    addOpList: function addOpList(opList) {\n      Object.assign(this.dependencies, opList.dependencies);\n\n      for (var i = 0, ii = opList.length; i < ii; i++) {\n        this.addOp(opList.fnArray[i], opList.argsArray[i]);\n      }\n    },\n    getIR: function getIR() {\n      return {\n        fnArray: this.fnArray,\n        argsArray: this.argsArray,\n        length: this.length\n      };\n    },\n    flush: function flush(lastChunk) {\n      this.optimizer.flush();\n      var transfers = getTransfers(this);\n      var length = this.length;\n      this._totalLength += length;\n      this.messageHandler.send('RenderPageChunk', {\n        operatorList: {\n          fnArray: this.fnArray,\n          argsArray: this.argsArray,\n          lastChunk: lastChunk,\n          length: length\n        },\n        pageIndex: this.pageIndex,\n        intent: this.intent\n      }, transfers);\n      this.dependencies = Object.create(null);\n      this.fnArray.length = 0;\n      this.argsArray.length = 0;\n      this.weight = 0;\n      this.optimizer.reset();\n    }\n  };\n  return OperatorList;\n}();\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PartialEvaluator = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cmap = __w_pdfjs_require__(172);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _fonts = __w_pdfjs_require__(173);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _unicode = __w_pdfjs_require__(179);\n\nvar _standard_fonts = __w_pdfjs_require__(178);\n\nvar _pattern = __w_pdfjs_require__(182);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _bidi = __w_pdfjs_require__(183);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _metrics = __w_pdfjs_require__(184);\n\nvar _function = __w_pdfjs_require__(185);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _murmurhash = __w_pdfjs_require__(187);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _image = __w_pdfjs_require__(188);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n  var DefaultPartialEvaluatorOptions = {\n    forceDataSchema: false,\n    maxImageSize: -1,\n    disableFontFace: false,\n    nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,\n    ignoreErrors: false,\n    isEvalSupported: true\n  };\n\n  function NativeImageDecoder(_ref) {\n    var xref = _ref.xref,\n        resources = _ref.resources,\n        handler = _ref.handler,\n        _ref$forceDataSchema = _ref.forceDataSchema,\n        forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n    this.xref = xref;\n    this.resources = resources;\n    this.handler = handler;\n    this.forceDataSchema = forceDataSchema;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n  }\n\n  NativeImageDecoder.prototype = {\n    canDecode: function canDecode(image) {\n      return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory);\n    },\n    decode: function decode(image) {\n      var dict = image.dict;\n      var colorSpace = dict.get('ColorSpace', 'CS');\n      colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory);\n      return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) {\n        var data = _ref2.data,\n            width = _ref2.width,\n            height = _ref2.height;\n        return new _stream.Stream(data, 0, data.length, image.dict);\n      });\n    }\n  };\n\n  NativeImageDecoder.isSupported = function (image, xref, res, pdfFunctionFactory) {\n    var dict = image.dict;\n\n    if (dict.has('DecodeParms') || dict.has('DP')) {\n      return false;\n    }\n\n    var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n\n    return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n  };\n\n  NativeImageDecoder.isDecodable = function (image, xref, res, pdfFunctionFactory) {\n    var dict = image.dict;\n\n    if (dict.has('DecodeParms') || dict.has('DP')) {\n      return false;\n    }\n\n    var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n\n    var bpc = dict.get('BitsPerComponent', 'BPC') || 1;\n    return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc);\n  };\n\n  function PartialEvaluator(_ref3) {\n    var _this = this;\n\n    var pdfManager = _ref3.pdfManager,\n        xref = _ref3.xref,\n        handler = _ref3.handler,\n        pageIndex = _ref3.pageIndex,\n        idFactory = _ref3.idFactory,\n        fontCache = _ref3.fontCache,\n        builtInCMapCache = _ref3.builtInCMapCache,\n        _ref3$options = _ref3.options,\n        options = _ref3$options === void 0 ? null : _ref3$options,\n        pdfFunctionFactory = _ref3.pdfFunctionFactory;\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n\n    this.fetchBuiltInCMap =\n    /*#__PURE__*/\n    function () {\n      var _ref4 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(name) {\n        var data;\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (!_this.builtInCMapCache.has(name)) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\", _this.builtInCMapCache.get(name));\n\n              case 2:\n                _context.next = 4;\n                return _this.handler.sendWithPromise('FetchBuiltInCMap', {\n                  name: name\n                });\n\n              case 4:\n                data = _context.sent;\n\n                if (data.compressionType !== _util.CMapCompressionType.NONE) {\n                  _this.builtInCMapCache.set(name, data);\n                }\n\n                return _context.abrupt(\"return\", data);\n\n              case 7:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      return function (_x) {\n        return _ref4.apply(this, arguments);\n      };\n    }();\n  }\n\n  var TIME_SLOT_DURATION_MS = 20;\n  var CHECK_TIME_EVERY = 100;\n\n  function TimeSlotManager() {\n    this.reset();\n  }\n\n  TimeSlotManager.prototype = {\n    check: function TimeSlotManager_check() {\n      if (++this.checked < CHECK_TIME_EVERY) {\n        return false;\n      }\n\n      this.checked = 0;\n      return this.endTime <= Date.now();\n    },\n    reset: function TimeSlotManager_reset() {\n      this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n      this.checked = 0;\n    }\n  };\n\n  function normalizeBlendMode(value) {\n    if (!(0, _primitives.isName)(value)) {\n      return 'source-over';\n    }\n\n    switch (value.name) {\n      case 'Normal':\n      case 'Compatible':\n        return 'source-over';\n\n      case 'Multiply':\n        return 'multiply';\n\n      case 'Screen':\n        return 'screen';\n\n      case 'Overlay':\n        return 'overlay';\n\n      case 'Darken':\n        return 'darken';\n\n      case 'Lighten':\n        return 'lighten';\n\n      case 'ColorDodge':\n        return 'color-dodge';\n\n      case 'ColorBurn':\n        return 'color-burn';\n\n      case 'HardLight':\n        return 'hard-light';\n\n      case 'SoftLight':\n        return 'soft-light';\n\n      case 'Difference':\n        return 'difference';\n\n      case 'Exclusion':\n        return 'exclusion';\n\n      case 'Hue':\n        return 'hue';\n\n      case 'Saturation':\n        return 'saturation';\n\n      case 'Color':\n        return 'color';\n\n      case 'Luminosity':\n        return 'luminosity';\n    }\n\n    (0, _util.warn)('Unsupported blend mode: ' + value.name);\n    return 'source-over';\n  }\n\n  var deferred = Promise.resolve();\n  var TILING_PATTERN = 1,\n      SHADING_PATTERN = 2;\n  PartialEvaluator.prototype = {\n    clone: function clone() {\n      var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions;\n      var newEvaluator = Object.create(this);\n      newEvaluator.options = newOptions;\n      return newEvaluator;\n    },\n    hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n      if (!(0, _primitives.isDict)(resources)) {\n        return false;\n      }\n\n      var processed = Object.create(null);\n\n      if (resources.objId) {\n        processed[resources.objId] = true;\n      }\n\n      var nodes = [resources],\n          xref = this.xref;\n\n      while (nodes.length) {\n        var key, i, ii;\n        var node = nodes.shift();\n        var graphicStates = node.get('ExtGState');\n\n        if ((0, _primitives.isDict)(graphicStates)) {\n          var graphicStatesKeys = graphicStates.getKeys();\n\n          for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n            key = graphicStatesKeys[i];\n            var graphicState = graphicStates.get(key);\n            var bm = graphicState.get('BM');\n\n            if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') {\n              return true;\n            }\n          }\n        }\n\n        var xObjects = node.get('XObject');\n\n        if (!(0, _primitives.isDict)(xObjects)) {\n          continue;\n        }\n\n        var xObjectsKeys = xObjects.getKeys();\n\n        for (i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n          key = xObjectsKeys[i];\n          var xObject = xObjects.getRaw(key);\n\n          if ((0, _primitives.isRef)(xObject)) {\n            if (processed[xObject.toString()]) {\n              continue;\n            }\n\n            xObject = xref.fetch(xObject);\n          }\n\n          if (!(0, _primitives.isStream)(xObject)) {\n            continue;\n          }\n\n          if (xObject.dict.objId) {\n            if (processed[xObject.dict.objId]) {\n              continue;\n            }\n\n            processed[xObject.dict.objId] = true;\n          }\n\n          var xResources = xObject.dict.get('Resources');\n\n          if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) {\n            nodes.push(xResources);\n\n            if (xResources.objId) {\n              processed[xResources.objId] = true;\n            }\n          }\n        }\n      }\n\n      return false;\n    },\n    buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n      var dict = xobj.dict;\n      var matrix = dict.getArray('Matrix');\n      var bbox = dict.getArray('BBox');\n\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        bbox = _util.Util.normalizeRect(bbox);\n      } else {\n        bbox = null;\n      }\n\n      var group = dict.get('Group');\n\n      if (group) {\n        var groupOptions = {\n          matrix: matrix,\n          bbox: bbox,\n          smask: smask,\n          isolated: false,\n          knockout: false\n        };\n        var groupSubtype = group.get('S');\n        var colorSpace = null;\n\n        if ((0, _primitives.isName)(groupSubtype, 'Transparency')) {\n          groupOptions.isolated = group.get('I') || false;\n          groupOptions.knockout = group.get('K') || false;\n\n          if (group.has('CS')) {\n            colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory);\n          }\n        }\n\n        if (smask && smask.backdrop) {\n          colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n          smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n        }\n\n        operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n      }\n\n      operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n      return this.getOperatorList({\n        stream: xobj,\n        task: task,\n        resources: dict.get('Resources') || resources,\n        operatorList: operatorList,\n        initialState: initialState\n      }).then(function () {\n        operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n        if (group) {\n          operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n        }\n      });\n    },\n    buildPaintImageXObject: function buildPaintImageXObject(_ref5) {\n      var _this2 = this;\n\n      var resources = _ref5.resources,\n          image = _ref5.image,\n          _ref5$isInline = _ref5.isInline,\n          isInline = _ref5$isInline === void 0 ? false : _ref5$isInline,\n          operatorList = _ref5.operatorList,\n          cacheKey = _ref5.cacheKey,\n          imageCache = _ref5.imageCache,\n          _ref5$forceDisableNat = _ref5.forceDisableNativeImageDecoder,\n          forceDisableNativeImageDecoder = _ref5$forceDisableNat === void 0 ? false : _ref5$forceDisableNat;\n      var dict = image.dict;\n      var w = dict.get('Width', 'W');\n      var h = dict.get('Height', 'H');\n\n      if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n        (0, _util.warn)('Image dimensions are missing, or not numbers.');\n        return Promise.resolve();\n      }\n\n      var maxImageSize = this.options.maxImageSize;\n\n      if (maxImageSize !== -1 && w * h > maxImageSize) {\n        (0, _util.warn)('Image exceeded maximum allowed size and was removed.');\n        return Promise.resolve();\n      }\n\n      var imageMask = dict.get('ImageMask', 'IM') || false;\n      var imgData, args;\n\n      if (imageMask) {\n        var width = dict.get('Width', 'W');\n        var height = dict.get('Height', 'H');\n        var bitStrideLength = width + 7 >> 3;\n        var imgArray = image.getBytes(bitStrideLength * height, true);\n        var decode = dict.getArray('Decode', 'D');\n        imgData = _image.PDFImage.createMask({\n          imgArray: imgArray,\n          width: width,\n          height: height,\n          imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n          inverseDecode: !!decode && decode[0] > 0\n        });\n        imgData.cached = true;\n        args = [imgData];\n        operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n\n        if (cacheKey) {\n          imageCache[cacheKey] = {\n            fn: _util.OPS.paintImageMaskXObject,\n            args: args\n          };\n        }\n\n        return Promise.resolve();\n      }\n\n      var softMask = dict.get('SMask', 'SM') || false;\n      var mask = dict.get('Mask') || false;\n      var SMALL_IMAGE_DIMENSIONS = 200;\n\n      if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {\n        var imageObj = new _image.PDFImage({\n          xref: this.xref,\n          res: resources,\n          image: image,\n          isInline: isInline,\n          pdfFunctionFactory: this.pdfFunctionFactory\n        });\n        imgData = imageObj.createImageData(true);\n        operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n        return Promise.resolve();\n      }\n\n      var nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport;\n      var objId = 'img_' + this.idFactory.createObjId();\n\n      if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory)) {\n        return this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () {\n          operatorList.addDependency(objId);\n          args = [objId, w, h];\n          operatorList.addOp(_util.OPS.paintJpegXObject, args);\n\n          if (cacheKey) {\n            imageCache[cacheKey] = {\n              fn: _util.OPS.paintJpegXObject,\n              args: args\n            };\n          }\n        }, function (reason) {\n          (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message));\n          return _this2.buildPaintImageXObject({\n            resources: resources,\n            image: image,\n            isInline: isInline,\n            operatorList: operatorList,\n            cacheKey: cacheKey,\n            imageCache: imageCache,\n            forceDisableNativeImageDecoder: true\n          });\n        });\n      }\n\n      var nativeImageDecoder = null;\n\n      if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) {\n        nativeImageDecoder = new NativeImageDecoder({\n          xref: this.xref,\n          resources: resources,\n          handler: this.handler,\n          forceDataSchema: this.options.forceDataSchema,\n          pdfFunctionFactory: this.pdfFunctionFactory\n        });\n      }\n\n      operatorList.addDependency(objId);\n      args = [objId, w, h];\n\n      _image.PDFImage.buildImage({\n        handler: this.handler,\n        xref: this.xref,\n        res: resources,\n        image: image,\n        isInline: isInline,\n        nativeDecoder: nativeImageDecoder,\n        pdfFunctionFactory: this.pdfFunctionFactory\n      }).then(function (imageObj) {\n        var imgData = imageObj.createImageData(false);\n\n        _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);\n      }).catch(function (reason) {\n        (0, _util.warn)('Unable to decode image: ' + reason);\n\n        _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);\n      });\n\n      operatorList.addOp(_util.OPS.paintImageXObject, args);\n\n      if (cacheKey) {\n        imageCache[cacheKey] = {\n          fn: _util.OPS.paintImageXObject,\n          args: args\n        };\n      }\n\n      return Promise.resolve();\n    },\n    handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n      var smaskContent = smask.get('G');\n      var smaskOptions = {\n        subtype: smask.get('S').name,\n        backdrop: smask.get('BC')\n      };\n      var transferObj = smask.get('TR');\n\n      if ((0, _function.isPDFFunction)(transferObj)) {\n        var transferFn = this.pdfFunctionFactory.create(transferObj);\n        var transferMap = new Uint8Array(256);\n        var tmp = new Float32Array(1);\n\n        for (var i = 0; i < 256; i++) {\n          tmp[0] = i / 255;\n          transferFn(tmp, 0, tmp, 0);\n          transferMap[i] = tmp[0] * 255 | 0;\n        }\n\n        smaskOptions.transferMap = transferMap;\n      }\n\n      return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n    },\n    handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n      var _this3 = this;\n\n      var tilingOpList = new _operator_list.OperatorList();\n      var resourcesArray = [patternDict.get('Resources'), resources];\n\n      var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n\n      return this.getOperatorList({\n        stream: pattern,\n        task: task,\n        resources: patternResources,\n        operatorList: tilingOpList\n      }).then(function () {\n        return (0, _pattern.getTilingPatternIR)({\n          fnArray: tilingOpList.fnArray,\n          argsArray: tilingOpList.argsArray\n        }, patternDict, args);\n      }).then(function (tilingPatternIR) {\n        operatorList.addDependencies(tilingOpList.dependencies);\n        operatorList.addOp(fn, tilingPatternIR);\n      }, function (reason) {\n        if (_this3.options.ignoreErrors) {\n          _this3.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n\n          (0, _util.warn)(\"handleTilingType - ignoring pattern: \\\"\".concat(reason, \"\\\".\"));\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n      var _this4 = this;\n\n      var fontName;\n\n      if (fontArgs) {\n        fontArgs = fontArgs.slice();\n        fontName = fontArgs[0].name;\n      }\n\n      return this.loadFont(fontName, fontRef, resources).then(function (translated) {\n        if (!translated.font.isType3Font) {\n          return translated;\n        }\n\n        return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {\n          return translated;\n        }).catch(function (reason) {\n          _this4.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.font\n          });\n\n          return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font);\n        });\n      }).then(function (translated) {\n        state.font = translated.font;\n        translated.send(_this4.handler);\n        return translated.loadedName;\n      });\n    },\n    handleText: function handleText(chars, state) {\n      var font = state.font;\n      var glyphs = font.charsToGlyphs(chars);\n\n      if (font.data) {\n        var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n        if (isAddToPathSet || state.fillColorSpace.name === 'Pattern' || font.disableFontFace || this.options.disableFontFace) {\n          PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n        }\n      }\n\n      return glyphs;\n    },\n    setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n      var _this5 = this;\n\n      var gStateObj = [];\n      var gStateKeys = gState.getKeys();\n      var promise = Promise.resolve();\n\n      var _loop = function _loop() {\n        var key = gStateKeys[i];\n        var value = gState.get(key);\n\n        switch (key) {\n          case 'Type':\n            break;\n\n          case 'LW':\n          case 'LC':\n          case 'LJ':\n          case 'ML':\n          case 'D':\n          case 'RI':\n          case 'FL':\n          case 'CA':\n          case 'ca':\n            gStateObj.push([key, value]);\n            break;\n\n          case 'Font':\n            promise = promise.then(function () {\n              return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n                operatorList.addDependency(loadedName);\n                gStateObj.push([key, [loadedName, value[1]]]);\n              });\n            });\n            break;\n\n          case 'BM':\n            gStateObj.push([key, normalizeBlendMode(value)]);\n            break;\n\n          case 'SMask':\n            if ((0, _primitives.isName)(value, 'None')) {\n              gStateObj.push([key, false]);\n              break;\n            }\n\n            if ((0, _primitives.isDict)(value)) {\n              promise = promise.then(function () {\n                return _this5.handleSMask(value, resources, operatorList, task, stateManager);\n              });\n              gStateObj.push([key, true]);\n            } else {\n              (0, _util.warn)('Unsupported SMask type');\n            }\n\n            break;\n\n          case 'OP':\n          case 'op':\n          case 'OPM':\n          case 'BG':\n          case 'BG2':\n          case 'UCR':\n          case 'UCR2':\n          case 'TR':\n          case 'TR2':\n          case 'HT':\n          case 'SM':\n          case 'SA':\n          case 'AIS':\n          case 'TK':\n            (0, _util.info)('graphic state operator ' + key);\n            break;\n\n          default:\n            (0, _util.info)('Unknown graphic state operator ' + key);\n            break;\n        }\n      };\n\n      for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n        _loop();\n      }\n\n      return promise.then(function () {\n        if (gStateObj.length > 0) {\n          operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n        }\n      });\n    },\n    loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n      var _this6 = this;\n\n      function errorFont() {\n        return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font));\n      }\n\n      var fontRef,\n          xref = this.xref;\n\n      if (font) {\n        if (!(0, _primitives.isRef)(font)) {\n          throw new Error('The \"font\" object should be a reference.');\n        }\n\n        fontRef = font;\n      } else {\n        var fontRes = resources.get('Font');\n\n        if (fontRes) {\n          fontRef = fontRes.getRaw(fontName);\n        } else {\n          (0, _util.warn)('fontRes not available');\n          return errorFont();\n        }\n      }\n\n      if (!fontRef) {\n        (0, _util.warn)('fontRef not available');\n        return errorFont();\n      }\n\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n\n      font = xref.fetchIfRef(fontRef);\n\n      if (!(0, _primitives.isDict)(font)) {\n        return errorFont();\n      }\n\n      if (font.translated) {\n        return font.translated;\n      }\n\n      var fontCapability = (0, _util.createPromiseCapability)();\n      var preEvaluatedFont = this.preEvaluateFont(font);\n      var descriptor = preEvaluatedFont.descriptor;\n      var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n          fontID;\n\n      if (fontRefIsRef) {\n        fontID = fontRef.toString();\n      }\n\n      if ((0, _primitives.isDict)(descriptor)) {\n        if (!descriptor.fontAliases) {\n          descriptor.fontAliases = Object.create(null);\n        }\n\n        var fontAliases = descriptor.fontAliases;\n        var hash = preEvaluatedFont.hash;\n\n        if (fontAliases[hash]) {\n          var aliasFontRef = fontAliases[hash].aliasRef;\n\n          if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n            this.fontCache.putAlias(fontRef, aliasFontRef);\n            return this.fontCache.get(fontRef);\n          }\n        } else {\n          fontAliases[hash] = {\n            fontID: _fonts.Font.getFontID()\n          };\n        }\n\n        if (fontRefIsRef) {\n          fontAliases[hash].aliasRef = fontRef;\n        }\n\n        fontID = fontAliases[hash].fontID;\n      }\n\n      if (fontRefIsRef) {\n        this.fontCache.put(fontRef, fontCapability.promise);\n      } else {\n        if (!fontID) {\n          fontID = this.idFactory.createObjId();\n        }\n\n        this.fontCache.put('id_' + fontID, fontCapability.promise);\n      }\n\n      (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n      font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;\n      font.translated = fontCapability.promise;\n      var translatedPromise;\n\n      try {\n        translatedPromise = this.translateFont(preEvaluatedFont);\n      } catch (e) {\n        translatedPromise = Promise.reject(e);\n      }\n\n      translatedPromise.then(function (translatedFont) {\n        if (translatedFont.fontType !== undefined) {\n          var xrefFontStats = xref.stats.fontTypes;\n          xrefFontStats[translatedFont.fontType] = true;\n        }\n\n        fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));\n      }).catch(function (reason) {\n        _this6.handler.send('UnsupportedFeature', {\n          featureId: _util.UNSUPPORTED_FEATURES.font\n        });\n\n        try {\n          var descriptor = preEvaluatedFont.descriptor;\n          var fontFile3 = descriptor && descriptor.get('FontFile3');\n          var subtype = fontFile3 && fontFile3.get('Subtype');\n          var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n          var xrefFontStats = xref.stats.fontTypes;\n          xrefFontStats[fontType] = true;\n        } catch (ex) {}\n\n        fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font));\n      });\n      return fontCapability.promise;\n    },\n    buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {\n      var lastIndex = operatorList.length - 1;\n\n      if (!args) {\n        args = [];\n      }\n\n      if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n        operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n      } else {\n        var opArgs = operatorList.argsArray[lastIndex];\n        opArgs[0].push(fn);\n        Array.prototype.push.apply(opArgs[1], args);\n      }\n    },\n    handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n      var patternName = args[args.length - 1];\n      var pattern;\n\n      if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n        var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n        var typeNum = dict.get('PatternType');\n\n        if (typeNum === TILING_PATTERN) {\n          var color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n        } else if (typeNum === SHADING_PATTERN) {\n          var shading = dict.get('Shading');\n          var matrix = dict.getArray('Matrix');\n          pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);\n          operatorList.addOp(fn, pattern.getIR());\n          return Promise.resolve();\n        }\n\n        return Promise.reject(new Error('Unknown PatternType: ' + typeNum));\n      }\n\n      operatorList.addOp(fn, args);\n      return Promise.resolve();\n    },\n    getOperatorList: function getOperatorList(_ref6) {\n      var _this7 = this;\n\n      var stream = _ref6.stream,\n          task = _ref6.task,\n          resources = _ref6.resources,\n          operatorList = _ref6.operatorList,\n          _ref6$initialState = _ref6.initialState,\n          initialState = _ref6$initialState === void 0 ? null : _ref6$initialState;\n      resources = resources || _primitives.Dict.empty;\n      initialState = initialState || new EvalState();\n\n      if (!operatorList) {\n        throw new Error('getOperatorList: missing \"operatorList\" parameter');\n      }\n\n      var self = this;\n      var xref = this.xref;\n      var imageCache = Object.create(null);\n\n      var xobjs = resources.get('XObject') || _primitives.Dict.empty;\n\n      var patterns = resources.get('Pattern') || _primitives.Dict.empty;\n\n      var stateManager = new StateManager(initialState);\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n      var timeSlotManager = new TimeSlotManager();\n\n      function closePendingRestoreOPS(argument) {\n        for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n          operatorList.addOp(_util.OPS.restore, []);\n        }\n      }\n\n      return new Promise(function promiseBody(resolve, reject) {\n        var next = function next(promise) {\n          promise.then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n            operation = {},\n            i,\n            ii,\n            cs;\n\n        while (!(stop = timeSlotManager.check())) {\n          operation.args = null;\n\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n\n          var args = operation.args;\n          var fn = operation.fn;\n\n          switch (fn | 0) {\n            case _util.OPS.paintXObject:\n              var name = args[0].name;\n\n              if (name && imageCache[name] !== undefined) {\n                operatorList.addOp(imageCache[name].fn, imageCache[name].args);\n                args = null;\n                continue;\n              }\n\n              next(new Promise(function (resolveXObject, rejectXObject) {\n                if (!name) {\n                  throw new _util.FormatError('XObject must be referred to by name.');\n                }\n\n                var xobj = xobjs.get(name);\n\n                if (!xobj) {\n                  operatorList.addOp(fn, args);\n                  resolveXObject();\n                  return;\n                }\n\n                if (!(0, _primitives.isStream)(xobj)) {\n                  throw new _util.FormatError('XObject should be a stream');\n                }\n\n                var type = xobj.dict.get('Subtype');\n\n                if (!(0, _primitives.isName)(type)) {\n                  throw new _util.FormatError('XObject should have a Name subtype');\n                }\n\n                if (type.name === 'Form') {\n                  stateManager.save();\n                  self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n                    stateManager.restore();\n                    resolveXObject();\n                  }, rejectXObject);\n                  return;\n                } else if (type.name === 'Image') {\n                  self.buildPaintImageXObject({\n                    resources: resources,\n                    image: xobj,\n                    operatorList: operatorList,\n                    cacheKey: name,\n                    imageCache: imageCache\n                  }).then(resolveXObject, rejectXObject);\n                  return;\n                } else if (type.name === 'PS') {\n                  (0, _util.info)('Ignored XObject subtype PS');\n                } else {\n                  throw new _util.FormatError(\"Unhandled XObject subtype \".concat(type.name));\n                }\n\n                resolveXObject();\n              }).catch(function (reason) {\n                if (self.options.ignoreErrors) {\n                  self.handler.send('UnsupportedFeature', {\n                    featureId: _util.UNSUPPORTED_FEATURES.unknown\n                  });\n                  (0, _util.warn)(\"getOperatorList - ignoring XObject: \\\"\".concat(reason, \"\\\".\"));\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n\n            case _util.OPS.setFont:\n              var fontSize = args[1];\n              next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n                operatorList.addDependency(loadedName);\n                operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n              }));\n              return;\n\n            case _util.OPS.endInlineImage:\n              var cacheKey = args[0].cacheKey;\n\n              if (cacheKey) {\n                var cacheEntry = imageCache[cacheKey];\n\n                if (cacheEntry !== undefined) {\n                  operatorList.addOp(cacheEntry.fn, cacheEntry.args);\n                  args = null;\n                  continue;\n                }\n              }\n\n              next(self.buildPaintImageXObject({\n                resources: resources,\n                image: args[0],\n                isInline: true,\n                operatorList: operatorList,\n                cacheKey: cacheKey,\n                imageCache: imageCache\n              }));\n              return;\n\n            case _util.OPS.showText:\n              args[0] = self.handleText(args[0], stateManager.state);\n              break;\n\n            case _util.OPS.showSpacedText:\n              var arr = args[0];\n              var combinedGlyphs = [];\n              var arrLength = arr.length;\n              var state = stateManager.state;\n\n              for (i = 0; i < arrLength; ++i) {\n                var arrItem = arr[i];\n\n                if ((0, _util.isString)(arrItem)) {\n                  Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n                } else if ((0, _util.isNum)(arrItem)) {\n                  combinedGlyphs.push(arrItem);\n                }\n              }\n\n              args[0] = combinedGlyphs;\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.nextLineShowText:\n              operatorList.addOp(_util.OPS.nextLine);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.nextLineSetSpacingShowText:\n              operatorList.addOp(_util.OPS.nextLine);\n              operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n              operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.setTextRenderingMode:\n              stateManager.state.textRenderingMode = args[0];\n              break;\n\n            case _util.OPS.setFillColorSpace:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n              continue;\n\n            case _util.OPS.setStrokeColorSpace:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n              continue;\n\n            case _util.OPS.setFillColor:\n              cs = stateManager.state.fillColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeColor:\n              cs = stateManager.state.strokeColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillGray:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n              args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeGray:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n              args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillCMYKColor:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n              args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeCMYKColor:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n              args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillRGBColor:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n              args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n\n            case _util.OPS.setStrokeRGBColor:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n              args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n\n            case _util.OPS.setFillColorN:\n              cs = stateManager.state.fillColorSpace;\n\n              if (cs.name === 'Pattern') {\n                next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n                return;\n              }\n\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeColorN:\n              cs = stateManager.state.strokeColorSpace;\n\n              if (cs.name === 'Pattern') {\n                next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n                return;\n              }\n\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.shadingFill:\n              var shadingRes = resources.get('Shading');\n\n              if (!shadingRes) {\n                throw new _util.FormatError('No shading resource found');\n              }\n\n              var shading = shadingRes.get(args[0].name);\n\n              if (!shading) {\n                throw new _util.FormatError('No shading object found');\n              }\n\n              var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory);\n\n              var patternIR = shadingFill.getIR();\n              args = [patternIR];\n              fn = _util.OPS.shadingFill;\n              break;\n\n            case _util.OPS.setGState:\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n                break;\n              }\n\n              var gState = extGState.get(dictName.name);\n              next(self.setGState(resources, gState, operatorList, task, stateManager));\n              return;\n\n            case _util.OPS.moveTo:\n            case _util.OPS.lineTo:\n            case _util.OPS.curveTo:\n            case _util.OPS.curveTo2:\n            case _util.OPS.curveTo3:\n            case _util.OPS.closePath:\n              self.buildPath(operatorList, fn, args);\n              continue;\n\n            case _util.OPS.rectangle:\n              self.buildPath(operatorList, fn, args);\n              continue;\n\n            case _util.OPS.markPoint:\n            case _util.OPS.markPointProps:\n            case _util.OPS.beginMarkedContent:\n            case _util.OPS.beginMarkedContentProps:\n            case _util.OPS.endMarkedContent:\n            case _util.OPS.beginCompat:\n            case _util.OPS.endCompat:\n              continue;\n\n            default:\n              if (args !== null) {\n                for (i = 0, ii = args.length; i < ii; i++) {\n                  if (args[i] instanceof _primitives.Dict) {\n                    break;\n                  }\n                }\n\n                if (i < ii) {\n                  (0, _util.warn)('getOperatorList - ignoring operator: ' + fn);\n                  continue;\n                }\n              }\n\n          }\n\n          operatorList.addOp(fn, args);\n        }\n\n        if (stop) {\n          next(deferred);\n          return;\n        }\n\n        closePendingRestoreOPS();\n        resolve();\n      }).catch(function (reason) {\n        if (_this7.options.ignoreErrors) {\n          _this7.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n\n          (0, _util.warn)(\"getOperatorList - ignoring errors during \\\"\".concat(task.name, \"\\\" \") + \"task: \\\"\".concat(reason, \"\\\".\"));\n          closePendingRestoreOPS();\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    getTextContent: function getTextContent(_ref7) {\n      var _this8 = this;\n\n      var stream = _ref7.stream,\n          task = _ref7.task,\n          resources = _ref7.resources,\n          _ref7$stateManager = _ref7.stateManager,\n          stateManager = _ref7$stateManager === void 0 ? null : _ref7$stateManager,\n          _ref7$normalizeWhites = _ref7.normalizeWhitespace,\n          normalizeWhitespace = _ref7$normalizeWhites === void 0 ? false : _ref7$normalizeWhites,\n          _ref7$combineTextItem = _ref7.combineTextItems,\n          combineTextItems = _ref7$combineTextItem === void 0 ? false : _ref7$combineTextItem,\n          sink = _ref7.sink,\n          _ref7$seenStyles = _ref7.seenStyles,\n          seenStyles = _ref7$seenStyles === void 0 ? Object.create(null) : _ref7$seenStyles;\n      resources = resources || _primitives.Dict.empty;\n      stateManager = stateManager || new StateManager(new TextState());\n      var WhitespaceRegexp = /\\s/g;\n      var textContent = {\n        items: [],\n        styles: Object.create(null)\n      };\n      var textContentItem = {\n        initialized: false,\n        str: [],\n        width: 0,\n        height: 0,\n        vertical: false,\n        lastAdvanceWidth: 0,\n        lastAdvanceHeight: 0,\n        textAdvanceScale: 0,\n        spaceWidth: 0,\n        fakeSpaceMin: Infinity,\n        fakeMultiSpaceMin: Infinity,\n        fakeMultiSpaceMax: -0,\n        textRunBreakAllowed: false,\n        transform: null,\n        fontName: null\n      };\n      var SPACE_FACTOR = 0.3;\n      var MULTI_SPACE_FACTOR = 1.5;\n      var MULTI_SPACE_FACTOR_MAX = 4;\n      var self = this;\n      var xref = this.xref;\n      var xobjs = null;\n      var skipEmptyXObjs = Object.create(null);\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n      var textState;\n\n      function ensureTextContentItem() {\n        if (textContentItem.initialized) {\n          return textContentItem;\n        }\n\n        var font = textState.font;\n\n        if (!(font.loadedName in seenStyles)) {\n          seenStyles[font.loadedName] = true;\n          textContent.styles[font.loadedName] = {\n            fontFamily: font.fallbackName,\n            ascent: font.ascent,\n            descent: font.descent,\n            vertical: !!font.vertical\n          };\n        }\n\n        textContentItem.fontName = font.loadedName;\n        var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n        if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {\n          var glyphHeight = font.bbox[3] - font.bbox[1];\n\n          if (glyphHeight > 0) {\n            glyphHeight = glyphHeight * textState.fontMatrix[3];\n            tsm[3] *= glyphHeight;\n          }\n        }\n\n        var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n\n        textContentItem.transform = trm;\n\n        if (!font.vertical) {\n          textContentItem.width = 0;\n          textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n          textContentItem.vertical = false;\n        } else {\n          textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n          textContentItem.height = 0;\n          textContentItem.vertical = true;\n        }\n\n        var a = textState.textLineMatrix[0];\n        var b = textState.textLineMatrix[1];\n        var scaleLineX = Math.sqrt(a * a + b * b);\n        a = textState.ctm[0];\n        b = textState.ctm[1];\n        var scaleCtmX = Math.sqrt(a * a + b * b);\n        textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n        textContentItem.lastAdvanceWidth = 0;\n        textContentItem.lastAdvanceHeight = 0;\n        var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n\n        if (spaceWidth) {\n          textContentItem.spaceWidth = spaceWidth;\n          textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n          textContentItem.textRunBreakAllowed = !font.isMonospace;\n        } else {\n          textContentItem.spaceWidth = 0;\n          textContentItem.fakeSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMax = 0;\n          textContentItem.textRunBreakAllowed = false;\n        }\n\n        textContentItem.initialized = true;\n        return textContentItem;\n      }\n\n      function replaceWhitespace(str) {\n        var i = 0,\n            ii = str.length,\n            code;\n\n        while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) {\n          i++;\n        }\n\n        return i < ii ? str.replace(WhitespaceRegexp, ' ') : str;\n      }\n\n      function runBidiTransform(textChunk) {\n        var str = textChunk.str.join('');\n        var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n        return {\n          str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n          dir: bidiResult.dir,\n          width: textChunk.width,\n          height: textChunk.height,\n          transform: textChunk.transform,\n          fontName: textChunk.fontName\n        };\n      }\n\n      function handleSetFont(fontName, fontRef) {\n        return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n          textState.font = translated.font;\n          textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n        });\n      }\n\n      function buildTextContentItem(chars) {\n        var font = textState.font;\n        var textChunk = ensureTextContentItem();\n        var width = 0;\n        var height = 0;\n        var glyphs = font.charsToGlyphs(chars);\n\n        for (var i = 0; i < glyphs.length; i++) {\n          var glyph = glyphs[i];\n          var glyphWidth = null;\n\n          if (font.vertical && glyph.vmetric) {\n            glyphWidth = glyph.vmetric[0];\n          } else {\n            glyphWidth = glyph.width;\n          }\n\n          var glyphUnicode = glyph.unicode;\n          var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n\n          if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n            glyphUnicode = NormalizedUnicodes[glyphUnicode];\n          }\n\n          glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n          var charSpacing = textState.charSpacing;\n\n          if (glyph.isSpace) {\n            var wordSpacing = textState.wordSpacing;\n            charSpacing += wordSpacing;\n\n            if (wordSpacing > 0) {\n              addFakeSpaces(wordSpacing, textChunk.str);\n            }\n          }\n\n          var tx = 0;\n          var ty = 0;\n\n          if (!font.vertical) {\n            var w0 = glyphWidth * textState.fontMatrix[0];\n            tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n            width += tx;\n          } else {\n            var w1 = glyphWidth * textState.fontMatrix[0];\n            ty = w1 * textState.fontSize + charSpacing;\n            height += ty;\n          }\n\n          textState.translateTextMatrix(tx, ty);\n          textChunk.str.push(glyphUnicode);\n        }\n\n        if (!font.vertical) {\n          textChunk.lastAdvanceWidth = width;\n          textChunk.width += width;\n        } else {\n          textChunk.lastAdvanceHeight = height;\n          textChunk.height += Math.abs(height);\n        }\n\n        return textChunk;\n      }\n\n      function addFakeSpaces(width, strBuf) {\n        if (width < textContentItem.fakeSpaceMin) {\n          return;\n        }\n\n        if (width < textContentItem.fakeMultiSpaceMin) {\n          strBuf.push(' ');\n          return;\n        }\n\n        var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n\n        while (fakeSpaces-- > 0) {\n          strBuf.push(' ');\n        }\n      }\n\n      function flushTextContentItem() {\n        if (!textContentItem.initialized) {\n          return;\n        }\n\n        if (!textContentItem.vertical) {\n          textContentItem.width *= textContentItem.textAdvanceScale;\n        } else {\n          textContentItem.height *= textContentItem.textAdvanceScale;\n        }\n\n        textContent.items.push(runBidiTransform(textContentItem));\n        textContentItem.initialized = false;\n        textContentItem.str.length = 0;\n      }\n\n      function enqueueChunk() {\n        var length = textContent.items.length;\n\n        if (length > 0) {\n          sink.enqueue(textContent, length);\n          textContent.items = [];\n          textContent.styles = Object.create(null);\n        }\n      }\n\n      var timeSlotManager = new TimeSlotManager();\n      return new Promise(function promiseBody(resolve, reject) {\n        var next = function next(promise) {\n          enqueueChunk();\n          Promise.all([promise, sink.ready]).then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n            operation = {},\n            args = [];\n\n        while (!(stop = timeSlotManager.check())) {\n          args.length = 0;\n          operation.args = args;\n\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n\n          textState = stateManager.state;\n          var fn = operation.fn;\n          args = operation.args;\n          var advance, diff;\n\n          switch (fn | 0) {\n            case _util.OPS.setFont:\n              var fontNameArg = args[0].name,\n                  fontSizeArg = args[1];\n\n              if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n                break;\n              }\n\n              flushTextContentItem();\n              textState.fontName = fontNameArg;\n              textState.fontSize = fontSizeArg;\n              next(handleSetFont(fontNameArg, null));\n              return;\n\n            case _util.OPS.setTextRise:\n              flushTextContentItem();\n              textState.textRise = args[0];\n              break;\n\n            case _util.OPS.setHScale:\n              flushTextContentItem();\n              textState.textHScale = args[0] / 100;\n              break;\n\n            case _util.OPS.setLeading:\n              flushTextContentItem();\n              textState.leading = args[0];\n              break;\n\n            case _util.OPS.moveText:\n              var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n              advance = args[0] - args[1];\n\n              if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n                textState.translateTextLineMatrix(args[0], args[1]);\n                textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n                textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n                diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n\n            case _util.OPS.setLeadingMoveText:\n              flushTextContentItem();\n              textState.leading = -args[1];\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n\n            case _util.OPS.nextLine:\n              flushTextContentItem();\n              textState.carriageReturn();\n              break;\n\n            case _util.OPS.setTextMatrix:\n              advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n              if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n                textState.translateTextLineMatrix(advance.width, advance.height);\n                textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n                textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n                diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n              textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n              break;\n\n            case _util.OPS.setCharSpacing:\n              textState.charSpacing = args[0];\n              break;\n\n            case _util.OPS.setWordSpacing:\n              textState.wordSpacing = args[0];\n              break;\n\n            case _util.OPS.beginText:\n              flushTextContentItem();\n              textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n              textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n              break;\n\n            case _util.OPS.showSpacedText:\n              var items = args[0];\n              var offset;\n\n              for (var j = 0, jj = items.length; j < jj; j++) {\n                if (typeof items[j] === 'string') {\n                  buildTextContentItem(items[j]);\n                } else if ((0, _util.isNum)(items[j])) {\n                  ensureTextContentItem();\n                  advance = items[j] * textState.fontSize / 1000;\n                  var breakTextRun = false;\n\n                  if (textState.font.vertical) {\n                    offset = advance;\n                    textState.translateTextMatrix(0, offset);\n                    breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n                    if (!breakTextRun) {\n                      textContentItem.height += offset;\n                    }\n                  } else {\n                    advance = -advance;\n                    offset = advance * textState.textHScale;\n                    textState.translateTextMatrix(offset, 0);\n                    breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n                    if (!breakTextRun) {\n                      textContentItem.width += offset;\n                    }\n                  }\n\n                  if (breakTextRun) {\n                    flushTextContentItem();\n                  } else if (advance > 0) {\n                    addFakeSpaces(advance, textContentItem.str);\n                  }\n                }\n              }\n\n              break;\n\n            case _util.OPS.showText:\n              buildTextContentItem(args[0]);\n              break;\n\n            case _util.OPS.nextLineShowText:\n              flushTextContentItem();\n              textState.carriageReturn();\n              buildTextContentItem(args[0]);\n              break;\n\n            case _util.OPS.nextLineSetSpacingShowText:\n              flushTextContentItem();\n              textState.wordSpacing = args[0];\n              textState.charSpacing = args[1];\n              textState.carriageReturn();\n              buildTextContentItem(args[2]);\n              break;\n\n            case _util.OPS.paintXObject:\n              flushTextContentItem();\n\n              if (!xobjs) {\n                xobjs = resources.get('XObject') || _primitives.Dict.empty;\n              }\n\n              var name = args[0].name;\n\n              if (name && skipEmptyXObjs[name] !== undefined) {\n                break;\n              }\n\n              next(new Promise(function (resolveXObject, rejectXObject) {\n                if (!name) {\n                  throw new _util.FormatError('XObject must be referred to by name.');\n                }\n\n                var xobj = xobjs.get(name);\n\n                if (!xobj) {\n                  resolveXObject();\n                  return;\n                }\n\n                if (!(0, _primitives.isStream)(xobj)) {\n                  throw new _util.FormatError('XObject should be a stream');\n                }\n\n                var type = xobj.dict.get('Subtype');\n\n                if (!(0, _primitives.isName)(type)) {\n                  throw new _util.FormatError('XObject should have a Name subtype');\n                }\n\n                if (type.name !== 'Form') {\n                  skipEmptyXObjs[name] = true;\n                  resolveXObject();\n                  return;\n                }\n\n                var currentState = stateManager.state.clone();\n                var xObjStateManager = new StateManager(currentState);\n                var matrix = xobj.dict.getArray('Matrix');\n\n                if (Array.isArray(matrix) && matrix.length === 6) {\n                  xObjStateManager.transform(matrix);\n                }\n\n                enqueueChunk();\n                var sinkWrapper = {\n                  enqueueInvoked: false,\n                  enqueue: function enqueue(chunk, size) {\n                    this.enqueueInvoked = true;\n                    sink.enqueue(chunk, size);\n                  },\n\n                  get desiredSize() {\n                    return sink.desiredSize;\n                  },\n\n                  get ready() {\n                    return sink.ready;\n                  }\n\n                };\n                self.getTextContent({\n                  stream: xobj,\n                  task: task,\n                  resources: xobj.dict.get('Resources') || resources,\n                  stateManager: xObjStateManager,\n                  normalizeWhitespace: normalizeWhitespace,\n                  combineTextItems: combineTextItems,\n                  sink: sinkWrapper,\n                  seenStyles: seenStyles\n                }).then(function () {\n                  if (!sinkWrapper.enqueueInvoked) {\n                    skipEmptyXObjs[name] = true;\n                  }\n\n                  resolveXObject();\n                }, rejectXObject);\n              }).catch(function (reason) {\n                if (reason instanceof _util.AbortException) {\n                  return;\n                }\n\n                if (self.options.ignoreErrors) {\n                  (0, _util.warn)(\"getTextContent - ignoring XObject: \\\"\".concat(reason, \"\\\".\"));\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n\n            case _util.OPS.setGState:\n              flushTextContentItem();\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n                break;\n              }\n\n              var gState = extGState.get(dictName.name);\n\n              if (!(0, _primitives.isDict)(gState)) {\n                break;\n              }\n\n              var gStateFont = gState.get('Font');\n\n              if (gStateFont) {\n                textState.fontName = null;\n                textState.fontSize = gStateFont[1];\n                next(handleSetFont(null, gStateFont[0]));\n                return;\n              }\n\n              break;\n          }\n\n          if (textContent.items.length >= sink.desiredSize) {\n            stop = true;\n            break;\n          }\n        }\n\n        if (stop) {\n          next(deferred);\n          return;\n        }\n\n        flushTextContentItem();\n        enqueueChunk();\n        resolve();\n      }).catch(function (reason) {\n        if (reason instanceof _util.AbortException) {\n          return;\n        }\n\n        if (_this8.options.ignoreErrors) {\n          (0, _util.warn)(\"getTextContent - ignoring errors during \\\"\".concat(task.name, \"\\\" \") + \"task: \\\"\".concat(reason, \"\\\".\"));\n          flushTextContentItem();\n          enqueueChunk();\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n      var _this9 = this;\n\n      var xref = this.xref;\n      var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n      var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n\n      if (properties.composite) {\n        var cidSystemInfo = dict.get('CIDSystemInfo');\n\n        if ((0, _primitives.isDict)(cidSystemInfo)) {\n          properties.cidSystemInfo = {\n            registry: (0, _util.stringToPDFString)(cidSystemInfo.get('Registry')),\n            ordering: (0, _util.stringToPDFString)(cidSystemInfo.get('Ordering')),\n            supplement: cidSystemInfo.get('Supplement')\n          };\n        }\n\n        var cidToGidMap = dict.get('CIDToGIDMap');\n\n        if ((0, _primitives.isStream)(cidToGidMap)) {\n          properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n        }\n      }\n\n      var differences = [];\n      var baseEncodingName = null;\n      var encoding;\n\n      if (dict.has('Encoding')) {\n        encoding = dict.get('Encoding');\n\n        if ((0, _primitives.isDict)(encoding)) {\n          baseEncodingName = encoding.get('BaseEncoding');\n          baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n\n          if (encoding.has('Differences')) {\n            var diffEncoding = encoding.get('Differences');\n            var index = 0;\n\n            for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n              var data = xref.fetchIfRef(diffEncoding[j]);\n\n              if ((0, _util.isNum)(data)) {\n                index = data;\n              } else if ((0, _primitives.isName)(data)) {\n                differences[index++] = data.name;\n              } else {\n                throw new _util.FormatError(\"Invalid entry in 'Differences' array: \".concat(data));\n              }\n            }\n          }\n        } else if ((0, _primitives.isName)(encoding)) {\n          baseEncodingName = encoding.name;\n        } else {\n          throw new _util.FormatError('Encoding is not a Name nor a Dict');\n        }\n\n        if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') {\n          baseEncodingName = null;\n        }\n      }\n\n      if (baseEncodingName) {\n        properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n      } else {\n        var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n        var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n        encoding = _encodings.StandardEncoding;\n\n        if (properties.type === 'TrueType' && !isNonsymbolicFont) {\n          encoding = _encodings.WinAnsiEncoding;\n        }\n\n        if (isSymbolicFont) {\n          encoding = _encodings.MacRomanEncoding;\n\n          if (!properties.file) {\n            if (/Symbol/i.test(properties.name)) {\n              encoding = _encodings.SymbolSetEncoding;\n            } else if (/Dingbats/i.test(properties.name)) {\n              encoding = _encodings.ZapfDingbatsEncoding;\n            }\n          }\n        }\n\n        properties.defaultEncoding = encoding;\n      }\n\n      properties.differences = differences;\n      properties.baseEncodingName = baseEncodingName;\n      properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n      properties.dict = dict;\n      return toUnicodePromise.then(function (toUnicode) {\n        properties.toUnicode = toUnicode;\n        return _this9.buildToUnicode(properties);\n      }).then(function (toUnicode) {\n        properties.toUnicode = toUnicode;\n        return properties;\n      });\n    },\n    _buildSimpleFontToUnicode: function _buildSimpleFontToUnicode(properties) {\n      (0, _util.assert)(!properties.composite, 'Must be a simple font.');\n      var toUnicode = [],\n          charcode,\n          glyphName;\n      var encoding = properties.defaultEncoding.slice();\n      var baseEncodingName = properties.baseEncodingName;\n      var differences = properties.differences;\n\n      for (charcode in differences) {\n        glyphName = differences[charcode];\n\n        if (glyphName === '.notdef') {\n          continue;\n        }\n\n        encoding[charcode] = glyphName;\n      }\n\n      var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n      for (charcode in encoding) {\n        glyphName = encoding[charcode];\n\n        if (glyphName === '') {\n          continue;\n        } else if (glyphsUnicodeMap[glyphName] === undefined) {\n          var code = 0;\n\n          switch (glyphName[0]) {\n            case 'G':\n              if (glyphName.length === 3) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n\n              break;\n\n            case 'g':\n              if (glyphName.length === 5) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n\n              break;\n\n            case 'C':\n            case 'c':\n              if (glyphName.length >= 3) {\n                code = +glyphName.substring(1);\n              }\n\n              break;\n\n            default:\n              var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n              if (unicode !== -1) {\n                code = unicode;\n              }\n\n          }\n\n          if (code) {\n            if (baseEncodingName && code === +charcode) {\n              var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n              if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n                toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n                continue;\n              }\n            }\n\n            toUnicode[charcode] = String.fromCodePoint(code);\n          }\n\n          continue;\n        }\n\n        toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n      }\n\n      return new _fonts.ToUnicodeMap(toUnicode);\n    },\n    buildToUnicode: function buildToUnicode(properties) {\n      properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n      if (properties.hasIncludedToUnicodeMap) {\n        if (!properties.composite && properties.hasEncoding) {\n          properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n        }\n\n        return Promise.resolve(properties.toUnicode);\n      }\n\n      if (!properties.composite) {\n        return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n      }\n\n      if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) {\n        var registry = properties.cidSystemInfo.registry;\n        var ordering = properties.cidSystemInfo.ordering;\n\n        var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2');\n\n        return _cmap.CMapFactory.create({\n          encoding: ucs2CMapName,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (ucs2CMap) {\n          var cMap = properties.cMap;\n          var toUnicode = [];\n          cMap.forEach(function (charcode, cid) {\n            if (cid > 0xffff) {\n              throw new _util.FormatError('Max size of CID is 65,535');\n            }\n\n            var ucs2 = ucs2CMap.lookup(cid);\n\n            if (ucs2) {\n              toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n            }\n          });\n          return new _fonts.ToUnicodeMap(toUnicode);\n        });\n      }\n\n      return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n    },\n    readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n      var cmapObj = toUnicode;\n\n      if ((0, _primitives.isName)(cmapObj)) {\n        return _cmap.CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cmap) {\n          if (cmap instanceof _cmap.IdentityCMap) {\n            return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n          }\n\n          return new _fonts.ToUnicodeMap(cmap.getMap());\n        });\n      } else if ((0, _primitives.isStream)(cmapObj)) {\n        return _cmap.CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cmap) {\n          if (cmap instanceof _cmap.IdentityCMap) {\n            return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n          }\n\n          var map = new Array(cmap.length);\n          cmap.forEach(function (charCode, token) {\n            var str = [];\n\n            for (var k = 0; k < token.length; k += 2) {\n              var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n              if ((w1 & 0xF800) !== 0xD800) {\n                str.push(w1);\n                continue;\n              }\n\n              k += 2;\n              var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n              str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n            }\n\n            map[charCode] = String.fromCodePoint.apply(String, str);\n          });\n          return new _fonts.ToUnicodeMap(map);\n        });\n      }\n\n      return Promise.resolve(null);\n    },\n    readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n      var glyphsData = cidToGidStream.getBytes();\n      var result = [];\n\n      for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n        var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n\n        if (glyphID === 0) {\n          continue;\n        }\n\n        var code = j >> 1;\n        result[code] = glyphID;\n      }\n\n      return result;\n    },\n    extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n      var xref = this.xref;\n      var glyphsWidths = [];\n      var defaultWidth = 0;\n      var glyphsVMetrics = [];\n      var defaultVMetrics;\n      var i, ii, j, jj, start, code, widths;\n\n      if (properties.composite) {\n        defaultWidth = dict.has('DW') ? dict.get('DW') : 1000;\n        widths = dict.get('W');\n\n        if (widths) {\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            start = xref.fetchIfRef(widths[i++]);\n            code = xref.fetchIfRef(widths[i]);\n\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n              }\n            } else {\n              var width = xref.fetchIfRef(widths[++i]);\n\n              for (j = start; j <= code; j++) {\n                glyphsWidths[j] = width;\n              }\n            }\n          }\n        }\n\n        if (properties.vertical) {\n          var vmetrics = dict.getArray('DW2') || [880, -1000];\n          defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n          vmetrics = dict.get('W2');\n\n          if (vmetrics) {\n            for (i = 0, ii = vmetrics.length; i < ii; i++) {\n              start = xref.fetchIfRef(vmetrics[i++]);\n              code = xref.fetchIfRef(vmetrics[i]);\n\n              if (Array.isArray(code)) {\n                for (j = 0, jj = code.length; j < jj; j++) {\n                  glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n                }\n              } else {\n                var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n                for (j = start; j <= code; j++) {\n                  glyphsVMetrics[j] = vmetric;\n                }\n              }\n            }\n          }\n        }\n      } else {\n        var firstChar = properties.firstChar;\n        widths = dict.get('Widths');\n\n        if (widths) {\n          j = firstChar;\n\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n          }\n\n          defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n        } else {\n          var baseFontName = dict.get('BaseFont');\n\n          if ((0, _primitives.isName)(baseFontName)) {\n            var metrics = this.getBaseFontMetrics(baseFontName.name);\n            glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n            defaultWidth = metrics.defaultWidth;\n          }\n        }\n      }\n\n      var isMonospace = true;\n      var firstWidth = defaultWidth;\n\n      for (var glyph in glyphsWidths) {\n        var glyphWidth = glyphsWidths[glyph];\n\n        if (!glyphWidth) {\n          continue;\n        }\n\n        if (!firstWidth) {\n          firstWidth = glyphWidth;\n          continue;\n        }\n\n        if (firstWidth !== glyphWidth) {\n          isMonospace = false;\n          break;\n        }\n      }\n\n      if (isMonospace) {\n        properties.flags |= _fonts.FontFlags.FixedPitch;\n      }\n\n      properties.defaultWidth = defaultWidth;\n      properties.widths = glyphsWidths;\n      properties.defaultVMetrics = defaultVMetrics;\n      properties.vmetrics = glyphsVMetrics;\n    },\n    isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n      var fontNameWoStyle = baseFontName.split('-')[0];\n      return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n    },\n    getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n      var defaultWidth = 0;\n      var widths = [];\n      var monospace = false;\n      var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n      var lookupName = stdFontMap[name] || name;\n      var Metrics = (0, _metrics.getMetrics)();\n\n      if (!(lookupName in Metrics)) {\n        if (this.isSerifFont(name)) {\n          lookupName = 'Times-Roman';\n        } else {\n          lookupName = 'Helvetica';\n        }\n      }\n\n      var glyphWidths = Metrics[lookupName];\n\n      if ((0, _util.isNum)(glyphWidths)) {\n        defaultWidth = glyphWidths;\n        monospace = true;\n      } else {\n        widths = glyphWidths();\n      }\n\n      return {\n        defaultWidth: defaultWidth,\n        monospace: monospace,\n        widths: widths\n      };\n    },\n    buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n      var widths = Object.create(null);\n      var differences = properties.differences;\n      var encoding = properties.defaultEncoding;\n\n      for (var charCode = 0; charCode < 256; charCode++) {\n        if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n          widths[charCode] = widthsByGlyphName[differences[charCode]];\n          continue;\n        }\n\n        if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n          widths[charCode] = widthsByGlyphName[encoding[charCode]];\n          continue;\n        }\n      }\n\n      return widths;\n    },\n    preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n      var baseDict = dict;\n      var type = dict.get('Subtype');\n\n      if (!(0, _primitives.isName)(type)) {\n        throw new _util.FormatError('invalid font Subtype');\n      }\n\n      var composite = false;\n      var uint8array;\n\n      if (type.name === 'Type0') {\n        var df = dict.get('DescendantFonts');\n\n        if (!df) {\n          throw new _util.FormatError('Descendant fonts are not specified');\n        }\n\n        dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n        type = dict.get('Subtype');\n\n        if (!(0, _primitives.isName)(type)) {\n          throw new _util.FormatError('invalid font Subtype');\n        }\n\n        composite = true;\n      }\n\n      var descriptor = dict.get('FontDescriptor');\n\n      if (descriptor) {\n        var hash = new _murmurhash.MurmurHash3_64();\n        var encoding = baseDict.getRaw('Encoding');\n\n        if ((0, _primitives.isName)(encoding)) {\n          hash.update(encoding.name);\n        } else if ((0, _primitives.isRef)(encoding)) {\n          hash.update(encoding.toString());\n        } else if ((0, _primitives.isDict)(encoding)) {\n          var keys = encoding.getKeys();\n\n          for (var i = 0, ii = keys.length; i < ii; i++) {\n            var entry = encoding.getRaw(keys[i]);\n\n            if ((0, _primitives.isName)(entry)) {\n              hash.update(entry.name);\n            } else if ((0, _primitives.isRef)(entry)) {\n              hash.update(entry.toString());\n            } else if (Array.isArray(entry)) {\n              var diffLength = entry.length,\n                  diffBuf = new Array(diffLength);\n\n              for (var j = 0; j < diffLength; j++) {\n                var diffEntry = entry[j];\n\n                if ((0, _primitives.isName)(diffEntry)) {\n                  diffBuf[j] = diffEntry.name;\n                } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n                  diffBuf[j] = diffEntry.toString();\n                }\n              }\n\n              hash.update(diffBuf.join());\n            }\n          }\n        }\n\n        var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n\n        if ((0, _primitives.isStream)(toUnicode)) {\n          var stream = toUnicode.str || toUnicode;\n          uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n          hash.update(uint8array);\n        } else if ((0, _primitives.isName)(toUnicode)) {\n          hash.update(toUnicode.name);\n        }\n\n        var widths = dict.get('Widths') || baseDict.get('Widths');\n\n        if (widths) {\n          uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n          hash.update(uint8array);\n        }\n      }\n\n      return {\n        descriptor: descriptor,\n        dict: dict,\n        baseDict: baseDict,\n        composite: composite,\n        type: type.name,\n        hash: hash ? hash.hexdigest() : ''\n      };\n    },\n    translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n      var _this10 = this;\n\n      var baseDict = preEvaluatedFont.baseDict;\n      var dict = preEvaluatedFont.dict;\n      var composite = preEvaluatedFont.composite;\n      var descriptor = preEvaluatedFont.descriptor;\n      var type = preEvaluatedFont.type;\n      var maxCharIndex = composite ? 0xFFFF : 0xFF;\n      var properties;\n\n      if (!descriptor) {\n        if (type === 'Type3') {\n          descriptor = new _primitives.Dict(null);\n          descriptor.set('FontName', _primitives.Name.get(type));\n          descriptor.set('FontBBox', dict.getArray('FontBBox'));\n        } else {\n          var baseFontName = dict.get('BaseFont');\n\n          if (!(0, _primitives.isName)(baseFontName)) {\n            throw new _util.FormatError('Base font is not specified');\n          }\n\n          baseFontName = baseFontName.name.replace(/[,_]/g, '-');\n          var metrics = this.getBaseFontMetrics(baseFontName);\n          var fontNameWoStyle = baseFontName.split('-')[0];\n          var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n          properties = {\n            type: type,\n            name: baseFontName,\n            widths: metrics.widths,\n            defaultWidth: metrics.defaultWidth,\n            flags: flags,\n            firstChar: 0,\n            lastChar: maxCharIndex\n          };\n          return this.extractDataStructures(dict, dict, properties).then(function (properties) {\n            properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties);\n            return new _fonts.Font(baseFontName, null, properties);\n          });\n        }\n      }\n\n      var firstChar = dict.get('FirstChar') || 0;\n      var lastChar = dict.get('LastChar') || maxCharIndex;\n      var fontName = descriptor.get('FontName');\n      var baseFont = dict.get('BaseFont');\n\n      if ((0, _util.isString)(fontName)) {\n        fontName = _primitives.Name.get(fontName);\n      }\n\n      if ((0, _util.isString)(baseFont)) {\n        baseFont = _primitives.Name.get(baseFont);\n      }\n\n      if (type !== 'Type3') {\n        var fontNameStr = fontName && fontName.name;\n        var baseFontStr = baseFont && baseFont.name;\n\n        if (fontNameStr !== baseFontStr) {\n          (0, _util.info)(\"The FontDescriptor's FontName is \\\"\".concat(fontNameStr, \"\\\" but \") + \"should be the same as the Font's BaseFont \\\"\".concat(baseFontStr, \"\\\".\"));\n\n          if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n            fontName = baseFont;\n          }\n        }\n      }\n\n      fontName = fontName || baseFont;\n\n      if (!(0, _primitives.isName)(fontName)) {\n        throw new _util.FormatError('invalid font name');\n      }\n\n      var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n\n      if (fontFile) {\n        if (fontFile.dict) {\n          var subtype = fontFile.dict.get('Subtype');\n\n          if (subtype) {\n            subtype = subtype.name;\n          }\n\n          var length1 = fontFile.dict.get('Length1');\n          var length2 = fontFile.dict.get('Length2');\n          var length3 = fontFile.dict.get('Length3');\n        }\n      }\n\n      properties = {\n        type: type,\n        name: fontName.name,\n        subtype: subtype,\n        file: fontFile,\n        length1: length1,\n        length2: length2,\n        length3: length3,\n        loadedName: baseDict.loadedName,\n        composite: composite,\n        wideChars: composite,\n        fixedPitch: false,\n        fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX,\n        firstChar: firstChar || 0,\n        lastChar: lastChar || maxCharIndex,\n        bbox: descriptor.getArray('FontBBox'),\n        ascent: descriptor.get('Ascent'),\n        descent: descriptor.get('Descent'),\n        xHeight: descriptor.get('XHeight'),\n        capHeight: descriptor.get('CapHeight'),\n        flags: descriptor.get('Flags'),\n        italicAngle: descriptor.get('ItalicAngle'),\n        isType3Font: false\n      };\n      var cMapPromise;\n\n      if (composite) {\n        var cidEncoding = baseDict.get('Encoding');\n\n        if ((0, _primitives.isName)(cidEncoding)) {\n          properties.cidEncoding = cidEncoding.name;\n        }\n\n        cMapPromise = _cmap.CMapFactory.create({\n          encoding: cidEncoding,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cMap) {\n          properties.cMap = cMap;\n          properties.vertical = properties.cMap.vertical;\n        });\n      } else {\n        cMapPromise = Promise.resolve(undefined);\n      }\n\n      return cMapPromise.then(function () {\n        return _this10.extractDataStructures(dict, baseDict, properties);\n      }).then(function (properties) {\n        _this10.extractWidths(dict, descriptor, properties);\n\n        if (type === 'Type3') {\n          properties.isType3Font = true;\n        }\n\n        return new _fonts.Font(fontName.name, fontFile, properties);\n      });\n    }\n  };\n\n  PartialEvaluator.buildFontPaths = function (font, glyphs, handler) {\n    function buildPath(fontChar) {\n      if (font.renderer.hasBuiltPath(fontChar)) {\n        return;\n      }\n\n      handler.send('commonobj', [\"\".concat(font.loadedName, \"_path_\").concat(fontChar), 'FontPath', font.renderer.getPathJs(fontChar)]);\n    }\n\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n      for (var _iterator = glyphs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n        var glyph = _step.value;\n        buildPath(glyph.fontChar);\n        var accent = glyph.accent;\n\n        if (accent && accent.fontChar) {\n          buildPath(accent.fontChar);\n        }\n      }\n    } catch (err) {\n      _didIteratorError = true;\n      _iteratorError = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion && _iterator.return != null) {\n          _iterator.return();\n        }\n      } finally {\n        if (_didIteratorError) {\n          throw _iteratorError;\n        }\n      }\n    }\n  };\n\n  return PartialEvaluator;\n}();\n\nexports.PartialEvaluator = PartialEvaluator;\n\nvar TranslatedFont = function TranslatedFontClosure() {\n  function TranslatedFont(loadedName, font, dict) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this.type3Loaded = null;\n    this.sent = false;\n  }\n\n  TranslatedFont.prototype = {\n    send: function send(handler) {\n      if (this.sent) {\n        return;\n      }\n\n      this.sent = true;\n      handler.send('commonobj', [this.loadedName, 'Font', this.font.exportData()]);\n    },\n    fallback: function fallback(handler) {\n      if (!this.font.data) {\n        return;\n      }\n\n      this.font.disableFontFace = true;\n      var glyphs = this.font.glyphCacheValues;\n      PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n    },\n    loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) {\n      if (!this.font.isType3Font) {\n        throw new Error('Must be a Type3 font.');\n      }\n\n      if (this.type3Loaded) {\n        return this.type3Loaded;\n      }\n\n      var type3Options = Object.create(evaluator.options);\n      type3Options.ignoreErrors = false;\n      var type3Evaluator = evaluator.clone(type3Options);\n      var translatedFont = this.font;\n      var loadCharProcsPromise = Promise.resolve();\n      var charProcs = this.dict.get('CharProcs');\n      var fontResources = this.dict.get('Resources') || resources;\n      var charProcKeys = charProcs.getKeys();\n      var charProcOperatorList = Object.create(null);\n\n      var _loop2 = function _loop2() {\n        var key = charProcKeys[i];\n        loadCharProcsPromise = loadCharProcsPromise.then(function () {\n          var glyphStream = charProcs.get(key);\n          var operatorList = new _operator_list.OperatorList();\n          return type3Evaluator.getOperatorList({\n            stream: glyphStream,\n            task: task,\n            resources: fontResources,\n            operatorList: operatorList\n          }).then(function () {\n            charProcOperatorList[key] = operatorList.getIR();\n            parentOperatorList.addDependencies(operatorList.dependencies);\n          }).catch(function (reason) {\n            (0, _util.warn)(\"Type3 font resource \\\"\".concat(key, \"\\\" is not available.\"));\n            var operatorList = new _operator_list.OperatorList();\n            charProcOperatorList[key] = operatorList.getIR();\n          });\n        });\n      };\n\n      for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n        _loop2();\n      }\n\n      this.type3Loaded = loadCharProcsPromise.then(function () {\n        translatedFont.charProcOperatorList = charProcOperatorList;\n      });\n      return this.type3Loaded;\n    }\n  };\n  return TranslatedFont;\n}();\n\nvar StateManager = function StateManagerClosure() {\n  function StateManager(initialState) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n\n  StateManager.prototype = {\n    save: function save() {\n      var old = this.state;\n      this.stateStack.push(this.state);\n      this.state = old.clone();\n    },\n    restore: function restore() {\n      var prev = this.stateStack.pop();\n\n      if (prev) {\n        this.state = prev;\n      }\n    },\n    transform: function transform(args) {\n      this.state.ctm = _util.Util.transform(this.state.ctm, args);\n    }\n  };\n  return StateManager;\n}();\n\nvar TextState = function TextStateClosure() {\n  function TextState() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.font = null;\n    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n    this.textMatrix = _util.IDENTITY_MATRIX.slice();\n    this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  TextState.prototype = {\n    setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textLineMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textLineMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n      var font = this.font;\n\n      if (!font) {\n        return null;\n      }\n\n      var m = this.textLineMatrix;\n\n      if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n        return null;\n      }\n\n      var txDiff = e - m[4],\n          tyDiff = f - m[5];\n\n      if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n        return null;\n      }\n\n      var tx,\n          ty,\n          denominator = a * d - b * c;\n\n      if (font.vertical) {\n        tx = -tyDiff * c / denominator;\n        ty = tyDiff * a / denominator;\n      } else {\n        tx = txDiff * d / denominator;\n        ty = -txDiff * b / denominator;\n      }\n\n      return {\n        width: tx,\n        height: ty,\n        value: font.vertical ? ty : tx\n      };\n    },\n    calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n      var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n      return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n    },\n    carriageReturn: function TextState_carriageReturn() {\n      this.translateTextLineMatrix(0, -this.leading);\n      this.textMatrix = this.textLineMatrix.slice();\n    },\n    clone: function TextState_clone() {\n      var clone = Object.create(this);\n      clone.textMatrix = this.textMatrix.slice();\n      clone.textLineMatrix = this.textLineMatrix.slice();\n      clone.fontMatrix = this.fontMatrix.slice();\n      return clone;\n    }\n  };\n  return TextState;\n}();\n\nvar EvalState = function EvalStateClosure() {\n  function EvalState() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = _util.TextRenderingMode.FILL;\n    this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n    this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n  }\n\n  EvalState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    }\n  };\n  return EvalState;\n}();\n\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n  var getOPMap = (0, _util.getLookupTableFactory)(function (t) {\n    t['w'] = {\n      id: _util.OPS.setLineWidth,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['J'] = {\n      id: _util.OPS.setLineCap,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['j'] = {\n      id: _util.OPS.setLineJoin,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['M'] = {\n      id: _util.OPS.setMiterLimit,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['d'] = {\n      id: _util.OPS.setDash,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['ri'] = {\n      id: _util.OPS.setRenderingIntent,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['i'] = {\n      id: _util.OPS.setFlatness,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['gs'] = {\n      id: _util.OPS.setGState,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['q'] = {\n      id: _util.OPS.save,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Q'] = {\n      id: _util.OPS.restore,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['cm'] = {\n      id: _util.OPS.transform,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['m'] = {\n      id: _util.OPS.moveTo,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['l'] = {\n      id: _util.OPS.lineTo,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['c'] = {\n      id: _util.OPS.curveTo,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['v'] = {\n      id: _util.OPS.curveTo2,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['y'] = {\n      id: _util.OPS.curveTo3,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['h'] = {\n      id: _util.OPS.closePath,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['re'] = {\n      id: _util.OPS.rectangle,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['S'] = {\n      id: _util.OPS.stroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['s'] = {\n      id: _util.OPS.closeStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['f'] = {\n      id: _util.OPS.fill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['F'] = {\n      id: _util.OPS.fill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['f*'] = {\n      id: _util.OPS.eoFill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['B'] = {\n      id: _util.OPS.fillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['B*'] = {\n      id: _util.OPS.eoFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['b'] = {\n      id: _util.OPS.closeFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['b*'] = {\n      id: _util.OPS.closeEOFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['n'] = {\n      id: _util.OPS.endPath,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['W'] = {\n      id: _util.OPS.clip,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['W*'] = {\n      id: _util.OPS.eoClip,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BT'] = {\n      id: _util.OPS.beginText,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['ET'] = {\n      id: _util.OPS.endText,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Tc'] = {\n      id: _util.OPS.setCharSpacing,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tw'] = {\n      id: _util.OPS.setWordSpacing,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tz'] = {\n      id: _util.OPS.setHScale,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['TL'] = {\n      id: _util.OPS.setLeading,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tf'] = {\n      id: _util.OPS.setFont,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['Tr'] = {\n      id: _util.OPS.setTextRenderingMode,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Ts'] = {\n      id: _util.OPS.setTextRise,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Td'] = {\n      id: _util.OPS.moveText,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['TD'] = {\n      id: _util.OPS.setLeadingMoveText,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['Tm'] = {\n      id: _util.OPS.setTextMatrix,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['T*'] = {\n      id: _util.OPS.nextLine,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Tj'] = {\n      id: _util.OPS.showText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['TJ'] = {\n      id: _util.OPS.showSpacedText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['\\''] = {\n      id: _util.OPS.nextLineShowText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['\"'] = {\n      id: _util.OPS.nextLineSetSpacingShowText,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['d0'] = {\n      id: _util.OPS.setCharWidth,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['d1'] = {\n      id: _util.OPS.setCharWidthAndBounds,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['CS'] = {\n      id: _util.OPS.setStrokeColorSpace,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['cs'] = {\n      id: _util.OPS.setFillColorSpace,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['SC'] = {\n      id: _util.OPS.setStrokeColor,\n      numArgs: 4,\n      variableArgs: true\n    };\n    t['SCN'] = {\n      id: _util.OPS.setStrokeColorN,\n      numArgs: 33,\n      variableArgs: true\n    };\n    t['sc'] = {\n      id: _util.OPS.setFillColor,\n      numArgs: 4,\n      variableArgs: true\n    };\n    t['scn'] = {\n      id: _util.OPS.setFillColorN,\n      numArgs: 33,\n      variableArgs: true\n    };\n    t['G'] = {\n      id: _util.OPS.setStrokeGray,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['g'] = {\n      id: _util.OPS.setFillGray,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['RG'] = {\n      id: _util.OPS.setStrokeRGBColor,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['rg'] = {\n      id: _util.OPS.setFillRGBColor,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['K'] = {\n      id: _util.OPS.setStrokeCMYKColor,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['k'] = {\n      id: _util.OPS.setFillCMYKColor,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['sh'] = {\n      id: _util.OPS.shadingFill,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['BI'] = {\n      id: _util.OPS.beginInlineImage,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['ID'] = {\n      id: _util.OPS.beginImageData,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['EI'] = {\n      id: _util.OPS.endInlineImage,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Do'] = {\n      id: _util.OPS.paintXObject,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['MP'] = {\n      id: _util.OPS.markPoint,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['DP'] = {\n      id: _util.OPS.markPointProps,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['BMC'] = {\n      id: _util.OPS.beginMarkedContent,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['BDC'] = {\n      id: _util.OPS.beginMarkedContentProps,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['EMC'] = {\n      id: _util.OPS.endMarkedContent,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BX'] = {\n      id: _util.OPS.beginCompat,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['EX'] = {\n      id: _util.OPS.endCompat,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BM'] = null;\n    t['BD'] = null;\n    t['true'] = null;\n    t['fa'] = null;\n    t['fal'] = null;\n    t['fals'] = null;\n    t['false'] = null;\n    t['nu'] = null;\n    t['nul'] = null;\n    t['null'] = null;\n  });\n  var MAX_INVALID_PATH_OPS = 20;\n\n  function EvaluatorPreprocessor(stream, xref, stateManager) {\n    this.opMap = getOPMap();\n    this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._numInvalidPathOPS = 0;\n  }\n\n  EvaluatorPreprocessor.prototype = {\n    get savedStatesDepth() {\n      return this.stateManager.stateStack.length;\n    },\n\n    read: function EvaluatorPreprocessor_read(operation) {\n      var args = operation.args;\n\n      while (true) {\n        var obj = this.parser.getObj();\n\n        if ((0, _primitives.isCmd)(obj)) {\n          var cmd = obj.cmd;\n          var opSpec = this.opMap[cmd];\n\n          if (!opSpec) {\n            (0, _util.warn)(\"Unknown command \\\"\".concat(cmd, \"\\\".\"));\n            continue;\n          }\n\n          var fn = opSpec.id;\n          var numArgs = opSpec.numArgs;\n          var argsLength = args !== null ? args.length : 0;\n\n          if (!opSpec.variableArgs) {\n            if (argsLength !== numArgs) {\n              var nonProcessedArgs = this.nonProcessedArgs;\n\n              while (argsLength > numArgs) {\n                nonProcessedArgs.push(args.shift());\n                argsLength--;\n              }\n\n              while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n                if (args === null) {\n                  args = [];\n                }\n\n                args.unshift(nonProcessedArgs.pop());\n                argsLength++;\n              }\n            }\n\n            if (argsLength < numArgs) {\n              var partialMsg = \"command \".concat(cmd, \": expected \").concat(numArgs, \" args, \") + \"but received \".concat(argsLength, \" args.\");\n\n              if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) {\n                throw new _util.FormatError(\"Invalid \".concat(partialMsg));\n              }\n\n              (0, _util.warn)(\"Skipping \".concat(partialMsg));\n\n              if (args !== null) {\n                args.length = 0;\n              }\n\n              continue;\n            }\n          } else if (argsLength > numArgs) {\n            (0, _util.info)(\"Command \".concat(cmd, \": expected [0, \").concat(numArgs, \"] args, \") + \"but received \".concat(argsLength, \" args.\"));\n          }\n\n          this.preprocessCommand(fn, args);\n          operation.fn = fn;\n          operation.args = args;\n          return true;\n        }\n\n        if ((0, _primitives.isEOF)(obj)) {\n          return false;\n        }\n\n        if (obj !== null) {\n          if (args === null) {\n            args = [];\n          }\n\n          args.push(obj);\n\n          if (args.length > 33) {\n            throw new _util.FormatError('Too many arguments');\n          }\n        }\n      }\n    },\n    preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n      switch (fn | 0) {\n        case _util.OPS.save:\n          this.stateManager.save();\n          break;\n\n        case _util.OPS.restore:\n          this.stateManager.restore();\n          break;\n\n        case _util.OPS.transform:\n          this.stateManager.transform(args);\n          break;\n      }\n    }\n  };\n  return EvaluatorPreprocessor;\n}();\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol'];\n\nvar CMap =\n/*#__PURE__*/\nfunction () {\n  function CMap() {\n    var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    _classCallCheck(this, CMap);\n\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    this._map = [];\n    this.name = '';\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  _createClass(CMap, [{\n    key: \"addCodespaceRange\",\n    value: function addCodespaceRange(n, low, high) {\n      this.codespaceRanges[n - 1].push(low, high);\n      this.numCodespaceRanges++;\n    }\n  }, {\n    key: \"mapCidRange\",\n    value: function mapCidRange(low, high, dstLow) {\n      while (low <= high) {\n        this._map[low++] = dstLow++;\n      }\n    }\n  }, {\n    key: \"mapBfRange\",\n    value: function mapBfRange(low, high, dstLow) {\n      var lastByte = dstLow.length - 1;\n\n      while (low <= high) {\n        this._map[low++] = dstLow;\n        dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n      }\n    }\n  }, {\n    key: \"mapBfRangeToArray\",\n    value: function mapBfRangeToArray(low, high, array) {\n      var i = 0,\n          ii = array.length;\n\n      while (low <= high && i < ii) {\n        this._map[low] = array[i++];\n        ++low;\n      }\n    }\n  }, {\n    key: \"mapOne\",\n    value: function mapOne(src, dst) {\n      this._map[src] = dst;\n    }\n  }, {\n    key: \"lookup\",\n    value: function lookup(code) {\n      return this._map[code];\n    }\n  }, {\n    key: \"contains\",\n    value: function contains(code) {\n      return this._map[code] !== undefined;\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      var map = this._map;\n      var length = map.length;\n\n      if (length <= 0x10000) {\n        for (var i = 0; i < length; i++) {\n          if (map[i] !== undefined) {\n            callback(i, map[i]);\n          }\n        }\n      } else {\n        for (var _i in map) {\n          callback(_i, map[_i]);\n        }\n      }\n    }\n  }, {\n    key: \"charCodeOf\",\n    value: function charCodeOf(value) {\n      var map = this._map;\n\n      if (map.length <= 0x10000) {\n        return map.indexOf(value);\n      }\n\n      for (var charCode in map) {\n        if (map[charCode] === value) {\n          return charCode | 0;\n        }\n      }\n\n      return -1;\n    }\n  }, {\n    key: \"getMap\",\n    value: function getMap() {\n      return this._map;\n    }\n  }, {\n    key: \"readCharCode\",\n    value: function readCharCode(str, offset, out) {\n      var c = 0;\n      var codespaceRanges = this.codespaceRanges;\n\n      for (var n = 0, nn = codespaceRanges.length; n < nn; n++) {\n        c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n        var codespaceRange = codespaceRanges[n];\n\n        for (var k = 0, kk = codespaceRange.length; k < kk;) {\n          var low = codespaceRange[k++];\n          var high = codespaceRange[k++];\n\n          if (c >= low && c <= high) {\n            out.charcode = c;\n            out.length = n + 1;\n            return;\n          }\n        }\n      }\n\n      out.charcode = 0;\n      out.length = 1;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._map.length;\n    }\n  }, {\n    key: \"isIdentityCMap\",\n    get: function get() {\n      if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {\n        return false;\n      }\n\n      if (this._map.length !== 0x10000) {\n        return false;\n      }\n\n      for (var i = 0; i < 0x10000; i++) {\n        if (this._map[i] !== i) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n  }]);\n\n  return CMap;\n}();\n\nexports.CMap = CMap;\n\nvar IdentityCMap =\n/*#__PURE__*/\nfunction (_CMap) {\n  _inherits(IdentityCMap, _CMap);\n\n  function IdentityCMap(vertical, n) {\n    var _this;\n\n    _classCallCheck(this, IdentityCMap);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(IdentityCMap).call(this));\n    _this.vertical = vertical;\n\n    _this.addCodespaceRange(n, 0, 0xffff);\n\n    return _this;\n  }\n\n  _createClass(IdentityCMap, [{\n    key: \"mapCidRange\",\n    value: function mapCidRange(low, high, dstLow) {\n      (0, _util.unreachable)('should not call mapCidRange');\n    }\n  }, {\n    key: \"mapBfRange\",\n    value: function mapBfRange(low, high, dstLow) {\n      (0, _util.unreachable)('should not call mapBfRange');\n    }\n  }, {\n    key: \"mapBfRangeToArray\",\n    value: function mapBfRangeToArray(low, high, array) {\n      (0, _util.unreachable)('should not call mapBfRangeToArray');\n    }\n  }, {\n    key: \"mapOne\",\n    value: function mapOne(src, dst) {\n      (0, _util.unreachable)('should not call mapCidOne');\n    }\n  }, {\n    key: \"lookup\",\n    value: function lookup(code) {\n      return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n    }\n  }, {\n    key: \"contains\",\n    value: function contains(code) {\n      return Number.isInteger(code) && code <= 0xffff;\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      for (var i = 0; i <= 0xffff; i++) {\n        callback(i, i);\n      }\n    }\n  }, {\n    key: \"charCodeOf\",\n    value: function charCodeOf(value) {\n      return Number.isInteger(value) && value <= 0xffff ? value : -1;\n    }\n  }, {\n    key: \"getMap\",\n    value: function getMap() {\n      var map = new Array(0x10000);\n\n      for (var i = 0; i <= 0xffff; i++) {\n        map[i] = i;\n      }\n\n      return map;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return 0x10000;\n    }\n  }, {\n    key: \"isIdentityCMap\",\n    get: function get() {\n      (0, _util.unreachable)('should not access .isIdentityCMap');\n    }\n  }]);\n\n  return IdentityCMap;\n}(CMap);\n\nexports.IdentityCMap = IdentityCMap;\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n  function hexToInt(a, size) {\n    var n = 0;\n\n    for (var i = 0; i <= size; i++) {\n      n = n << 8 | a[i];\n    }\n\n    return n >>> 0;\n  }\n\n  function hexToStr(a, size) {\n    if (size === 1) {\n      return String.fromCharCode(a[0], a[1]);\n    }\n\n    if (size === 3) {\n      return String.fromCharCode(a[0], a[1], a[2], a[3]);\n    }\n\n    return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n  }\n\n  function addHex(a, b, size) {\n    var c = 0;\n\n    for (var i = size; i >= 0; i--) {\n      c += a[i] + b[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  function incHex(a, size) {\n    var c = 1;\n\n    for (var i = size; i >= 0 && c > 0; i--) {\n      c += a[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  var MAX_NUM_SIZE = 16;\n  var MAX_ENCODED_NUM_SIZE = 19;\n\n  function BinaryCMapStream(data) {\n    this.buffer = data;\n    this.pos = 0;\n    this.end = data.length;\n    this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n  }\n\n  BinaryCMapStream.prototype = {\n    readByte: function readByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.buffer[this.pos++];\n    },\n    readNumber: function readNumber() {\n      var n = 0;\n      var last;\n\n      do {\n        var b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError('unexpected EOF in bcmap');\n        }\n\n        last = !(b & 0x80);\n        n = n << 7 | b & 0x7F;\n      } while (!last);\n\n      return n;\n    },\n    readSigned: function readSigned() {\n      var n = this.readNumber();\n      return n & 1 ? ~(n >>> 1) : n >>> 1;\n    },\n    readHex: function readHex(num, size) {\n      num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n      this.pos += size + 1;\n    },\n    readHexNumber: function readHexNumber(num, size) {\n      var last;\n      var stack = this.tmpBuf,\n          sp = 0;\n\n      do {\n        var b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError('unexpected EOF in bcmap');\n        }\n\n        last = !(b & 0x80);\n        stack[sp++] = b & 0x7F;\n      } while (!last);\n\n      var i = size,\n          buffer = 0,\n          bufferSize = 0;\n\n      while (i >= 0) {\n        while (bufferSize < 8 && stack.length > 0) {\n          buffer = stack[--sp] << bufferSize | buffer;\n          bufferSize += 7;\n        }\n\n        num[i] = buffer & 255;\n        i--;\n        buffer >>= 8;\n        bufferSize -= 8;\n      }\n    },\n    readHexSigned: function readHexSigned(num, size) {\n      this.readHexNumber(num, size);\n      var sign = num[size] & 1 ? 255 : 0;\n      var c = 0;\n\n      for (var i = 0; i <= size; i++) {\n        c = (c & 1) << 8 | num[i];\n        num[i] = c >> 1 ^ sign;\n      }\n    },\n    readString: function readString() {\n      var len = this.readNumber();\n      var s = '';\n\n      for (var i = 0; i < len; i++) {\n        s += String.fromCharCode(this.readNumber());\n      }\n\n      return s;\n    }\n  };\n\n  function processBinaryCMap(data, cMap, extend) {\n    return new Promise(function (resolve, reject) {\n      var stream = new BinaryCMapStream(data);\n      var header = stream.readByte();\n      cMap.vertical = !!(header & 1);\n      var useCMap = null;\n      var start = new Uint8Array(MAX_NUM_SIZE);\n      var end = new Uint8Array(MAX_NUM_SIZE);\n      var char = new Uint8Array(MAX_NUM_SIZE);\n      var charCode = new Uint8Array(MAX_NUM_SIZE);\n      var tmp = new Uint8Array(MAX_NUM_SIZE);\n      var code;\n      var b;\n\n      while ((b = stream.readByte()) >= 0) {\n        var type = b >> 5;\n\n        if (type === 7) {\n          switch (b & 0x1F) {\n            case 0:\n              stream.readString();\n              break;\n\n            case 1:\n              useCMap = stream.readString();\n              break;\n          }\n\n          continue;\n        }\n\n        var sequence = !!(b & 0x10);\n        var dataSize = b & 15;\n\n        if (dataSize + 1 > MAX_NUM_SIZE) {\n          throw new Error('processBinaryCMap: Invalid dataSize.');\n        }\n\n        var ucs2DataSize = 1;\n        var subitemsCount = stream.readNumber();\n        var i;\n\n        switch (type) {\n          case 0:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n            }\n\n            break;\n\n          case 1:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber();\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              stream.readNumber();\n            }\n\n            break;\n\n          case 2:\n            stream.readHex(char, dataSize);\n            code = stream.readNumber();\n            cMap.mapOne(hexToInt(char, dataSize), code);\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, dataSize);\n                addHex(char, tmp, dataSize);\n              }\n\n              code = stream.readSigned() + (code + 1);\n              cMap.mapOne(hexToInt(char, dataSize), code);\n            }\n\n            break;\n\n          case 3:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, dataSize);\n                addHex(start, end, dataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              code = stream.readNumber();\n              cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n            }\n\n            break;\n\n          case 4:\n            stream.readHex(char, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, ucs2DataSize);\n                addHex(char, tmp, ucs2DataSize);\n              }\n\n              incHex(charCode, dataSize);\n              stream.readHexSigned(tmp, dataSize);\n              addHex(charCode, tmp, dataSize);\n              cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          case 5:\n            stream.readHex(start, ucs2DataSize);\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, ucs2DataSize);\n                addHex(start, end, ucs2DataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, ucs2DataSize);\n              addHex(end, start, ucs2DataSize);\n              stream.readHex(charCode, dataSize);\n              cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          default:\n            reject(new Error('processBinaryCMap: Unknown type: ' + type));\n            return;\n        }\n      }\n\n      if (useCMap) {\n        resolve(extend(useCMap));\n        return;\n      }\n\n      resolve(cMap);\n    });\n  }\n\n  function BinaryCMapReader() {}\n\n  BinaryCMapReader.prototype = {\n    process: processBinaryCMap\n  };\n  return BinaryCMapReader;\n}();\n\nvar CMapFactory = function CMapFactoryClosure() {\n  function strToInt(str) {\n    var a = 0;\n\n    for (var i = 0; i < str.length; i++) {\n      a = a << 8 | str.charCodeAt(i);\n    }\n\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (!(0, _util.isString)(obj)) {\n      throw new _util.FormatError('Malformed CMap: expected string.');\n    }\n  }\n\n  function expectInt(obj) {\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError('Malformed CMap: expected int.');\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endbfchar')) {\n        return;\n      }\n\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endbfrange')) {\n        return;\n      }\n\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (Number.isInteger(obj) || (0, _util.isString)(obj)) {\n        var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapBfRange(low, high, dstLow);\n      } else if ((0, _primitives.isCmd)(obj, '[')) {\n        obj = lexer.getObj();\n        var array = [];\n\n        while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n\n        cMap.mapBfRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n\n    throw new _util.FormatError('Invalid bf range.');\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcidchar')) {\n        return;\n      }\n\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcidrange')) {\n        return;\n      }\n\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dstLow = obj;\n      cMap.mapCidRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {\n        return;\n      }\n\n      if (!(0, _util.isString)(obj)) {\n        break;\n      }\n\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (!(0, _util.isString)(obj)) {\n        break;\n      }\n\n      var high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n\n    throw new _util.FormatError('Invalid codespace range.');\n  }\n\n  function parseWMode(cMap, lexer) {\n    var obj = lexer.getObj();\n\n    if (Number.isInteger(obj)) {\n      cMap.vertical = !!obj;\n    }\n  }\n\n  function parseCMapName(cMap, lexer) {\n    var obj = lexer.getObj();\n\n    if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n      cMap.name = obj.name;\n    }\n  }\n\n  function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n    var previous;\n    var embeddedUseCMap;\n\n    objLoop: while (true) {\n      try {\n        var obj = lexer.getObj();\n\n        if ((0, _primitives.isEOF)(obj)) {\n          break;\n        } else if ((0, _primitives.isName)(obj)) {\n          if (obj.name === 'WMode') {\n            parseWMode(cMap, lexer);\n          } else if (obj.name === 'CMapName') {\n            parseCMapName(cMap, lexer);\n          }\n\n          previous = obj;\n        } else if ((0, _primitives.isCmd)(obj)) {\n          switch (obj.cmd) {\n            case 'endcmap':\n              break objLoop;\n\n            case 'usecmap':\n              if ((0, _primitives.isName)(previous)) {\n                embeddedUseCMap = previous.name;\n              }\n\n              break;\n\n            case 'begincodespacerange':\n              parseCodespaceRange(cMap, lexer);\n              break;\n\n            case 'beginbfchar':\n              parseBfChar(cMap, lexer);\n              break;\n\n            case 'begincidchar':\n              parseCidChar(cMap, lexer);\n              break;\n\n            case 'beginbfrange':\n              parseBfRange(cMap, lexer);\n              break;\n\n            case 'begincidrange':\n              parseCidRange(cMap, lexer);\n              break;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Invalid cMap data: ' + ex);\n        continue;\n      }\n    }\n\n    if (!useCMap && embeddedUseCMap) {\n      useCMap = embeddedUseCMap;\n    }\n\n    if (useCMap) {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    }\n\n    return Promise.resolve(cMap);\n  }\n\n  function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n    return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n      cMap.useCMap = newCMap;\n\n      if (cMap.numCodespaceRanges === 0) {\n        var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n        for (var i = 0; i < useCodespaceRanges.length; i++) {\n          cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n        }\n\n        cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n      }\n\n      cMap.useCMap.forEach(function (key, value) {\n        if (!cMap.contains(key)) {\n          cMap.mapOne(key, cMap.useCMap.lookup(key));\n        }\n      });\n      return cMap;\n    });\n  }\n\n  function createBuiltInCMap(name, fetchBuiltInCMap) {\n    if (name === 'Identity-H') {\n      return Promise.resolve(new IdentityCMap(false, 2));\n    } else if (name === 'Identity-V') {\n      return Promise.resolve(new IdentityCMap(true, 2));\n    }\n\n    if (!BUILT_IN_CMAPS.includes(name)) {\n      return Promise.reject(new Error('Unknown CMap name: ' + name));\n    }\n\n    if (!fetchBuiltInCMap) {\n      return Promise.reject(new Error('Built-in CMap parameters are not provided.'));\n    }\n\n    return fetchBuiltInCMap(name).then(function (data) {\n      var cMapData = data.cMapData,\n          compressionType = data.compressionType;\n      var cMap = new CMap(true);\n\n      if (compressionType === _util.CMapCompressionType.BINARY) {\n        return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n          return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n        });\n      }\n\n      if (compressionType === _util.CMapCompressionType.NONE) {\n        var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n      }\n\n      return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));\n    });\n  }\n\n  return {\n    create: function create(params) {\n      var encoding = params.encoding;\n      var fetchBuiltInCMap = params.fetchBuiltInCMap;\n      var useCMap = params.useCMap;\n\n      if ((0, _primitives.isName)(encoding)) {\n        return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n      } else if ((0, _primitives.isStream)(encoding)) {\n        var cMap = new CMap();\n        var lexer = new _parser.Lexer(encoding);\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n          if (parsedCMap.isIdentityCMap) {\n            return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n          }\n\n          return parsedCMap;\n        });\n      }\n\n      return Promise.reject(new Error('Encoding required.'));\n    }\n  };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getFontType = getFontType;\nexports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cff_parser = __w_pdfjs_require__(174);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _standard_fonts = __w_pdfjs_require__(178);\n\nvar _unicode = __w_pdfjs_require__(179);\n\nvar _font_renderer = __w_pdfjs_require__(180);\n\nvar _cmap = __w_pdfjs_require__(172);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _type1_parser = __w_pdfjs_require__(181);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar PRIVATE_USE_AREAS = [[0xE000, 0xF8FF], [0x100000, 0x10FFFD]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nvar FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nvar MacStandardGlyphOrdering = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n\n  if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n\n  var scale = 0.001 / properties.fontMatrix[0];\n  var glyphsWidths = properties.widths;\n\n  for (var glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n  if (properties.hasIncludedToUnicodeMap) {\n    return;\n  }\n\n  if (properties.hasEncoding) {\n    return;\n  }\n\n  if (builtInEncoding === properties.defaultEncoding) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n\n  var toUnicode = [],\n      glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n  for (var charCode in builtInEncoding) {\n    var glyphName = builtInEncoding[charCode];\n    var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n\n  properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n  switch (type) {\n    case 'Type1':\n      return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n    case 'CIDFontType0':\n      return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n    case 'OpenType':\n      return _util.FontType.OPENTYPE;\n\n    case 'TrueType':\n      return _util.FontType.TRUETYPE;\n\n    case 'CIDFontType2':\n      return _util.FontType.CIDFONTTYPE2;\n\n    case 'MMType1':\n      return _util.FontType.MMTYPE1;\n\n    case 'Type0':\n      return _util.FontType.TYPE0;\n\n    default:\n      return _util.FontType.UNKNOWN;\n  }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n\n  var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n  if (unicode !== -1) {\n    for (var key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n\n  (0, _util.info)('Unable to recover a standard glyph name for: ' + name);\n  return name;\n}\n\nvar Glyph = function GlyphClosure() {\n  function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n  }\n\n  Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n  };\n\n  return Glyph;\n}();\n\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n  function ToUnicodeMap() {\n    var cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    this._map = cmap;\n  }\n\n  ToUnicodeMap.prototype = {\n    get length() {\n      return this._map.length;\n    },\n\n    forEach: function forEach(callback) {\n      for (var charCode in this._map) {\n        callback(charCode, this._map[charCode].charCodeAt(0));\n      }\n    },\n    has: function has(i) {\n      return this._map[i] !== undefined;\n    },\n    get: function get(i) {\n      return this._map[i];\n    },\n    charCodeOf: function charCodeOf(value) {\n      var map = this._map;\n\n      if (map.length <= 0x10000) {\n        return map.indexOf(value);\n      }\n\n      for (var charCode in map) {\n        if (map[charCode] === value) {\n          return charCode | 0;\n        }\n      }\n\n      return -1;\n    },\n    amend: function amend(map) {\n      for (var charCode in map) {\n        this._map[charCode] = map[charCode];\n      }\n    }\n  };\n  return ToUnicodeMap;\n}();\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n  function IdentityToUnicodeMap(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  IdentityToUnicodeMap.prototype = {\n    get length() {\n      return this.lastChar + 1 - this.firstChar;\n    },\n\n    forEach: function forEach(callback) {\n      for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n        callback(i, i);\n      }\n    },\n    has: function has(i) {\n      return this.firstChar <= i && i <= this.lastChar;\n    },\n    get: function get(i) {\n      if (this.firstChar <= i && i <= this.lastChar) {\n        return String.fromCharCode(i);\n      }\n\n      return undefined;\n    },\n    charCodeOf: function charCodeOf(v) {\n      return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n    },\n    amend: function amend(map) {\n      (0, _util.unreachable)('Should not call amend()');\n    }\n  };\n  return IdentityToUnicodeMap;\n}();\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\nvar OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n  function writeInt16(dest, offset, num) {\n    dest[offset] = num >> 8 & 0xFF;\n    dest[offset + 1] = num & 0xFF;\n  }\n\n  function writeInt32(dest, offset, num) {\n    dest[offset] = num >> 24 & 0xFF;\n    dest[offset + 1] = num >> 16 & 0xFF;\n    dest[offset + 2] = num >> 8 & 0xFF;\n    dest[offset + 3] = num & 0xFF;\n  }\n\n  function writeData(dest, offset, data) {\n    var i, ii;\n\n    if (data instanceof Uint8Array) {\n      dest.set(data, offset);\n    } else if (typeof data === 'string') {\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data.charCodeAt(i) & 0xFF;\n      }\n    } else {\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data[i] & 0xFF;\n      }\n    }\n  }\n\n  function OpenTypeFileBuilder(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n    var maxPower2 = 1,\n        log2 = 0;\n\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n\n    var searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange\n    };\n  };\n\n  var OTF_HEADER_SIZE = 12;\n  var OTF_TABLE_ENTRY_SIZE = 16;\n  OpenTypeFileBuilder.prototype = {\n    toArray: function OpenTypeFileBuilder_toArray() {\n      var sfnt = this.sfnt;\n      var tables = this.tables;\n      var tablesNames = Object.keys(tables);\n      tablesNames.sort();\n      var numTables = tablesNames.length;\n      var i, j, jj, table, tableName;\n      var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n      var tableOffsets = [offset];\n\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        var paddedLength = (table.length + 3 & ~3) >>> 0;\n        offset += paddedLength;\n        tableOffsets.push(offset);\n      }\n\n      var file = new Uint8Array(offset);\n\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        writeData(file, tableOffsets[i], table);\n      }\n\n      if (sfnt === 'true') {\n        sfnt = (0, _util.string32)(0x00010000);\n      }\n\n      file[0] = sfnt.charCodeAt(0) & 0xFF;\n      file[1] = sfnt.charCodeAt(1) & 0xFF;\n      file[2] = sfnt.charCodeAt(2) & 0xFF;\n      file[3] = sfnt.charCodeAt(3) & 0xFF;\n      writeInt16(file, 4, numTables);\n      var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n      writeInt16(file, 6, searchParams.range);\n      writeInt16(file, 8, searchParams.entry);\n      writeInt16(file, 10, searchParams.rangeShift);\n      offset = OTF_HEADER_SIZE;\n\n      for (i = 0; i < numTables; i++) {\n        tableName = tablesNames[i];\n        file[offset] = tableName.charCodeAt(0) & 0xFF;\n        file[offset + 1] = tableName.charCodeAt(1) & 0xFF;\n        file[offset + 2] = tableName.charCodeAt(2) & 0xFF;\n        file[offset + 3] = tableName.charCodeAt(3) & 0xFF;\n        var checksum = 0;\n\n        for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n          var quad = (0, _util.readUint32)(file, j);\n          checksum = checksum + quad >>> 0;\n        }\n\n        writeInt32(file, offset + 4, checksum);\n        writeInt32(file, offset + 8, tableOffsets[i]);\n        writeInt32(file, offset + 12, tables[tableName].length);\n        offset += OTF_TABLE_ENTRY_SIZE;\n      }\n\n      return file;\n    },\n    addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n      if (tag in this.tables) {\n        throw new Error('Table ' + tag + ' already exists');\n      }\n\n      this.tables[tag] = data;\n    }\n  };\n  return OpenTypeFileBuilder;\n}();\n\nvar Font = function FontClosure() {\n  function Font(name, file, properties) {\n    var charCode;\n    this.name = name;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.sizes = [];\n    this.missingFile = false;\n    this.glyphCache = Object.create(null);\n    this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n    var type = properties.type;\n    var subtype = properties.subtype;\n    this.type = type;\n    this.subtype = subtype;\n    this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif';\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.wideChars = properties.wideChars;\n    this.cMap = properties.cMap;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n    this.toUnicode = properties.toUnicode;\n    this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n    this.toFontChar = [];\n\n    if (properties.type === 'Type3') {\n      for (charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n\n      this.fontType = _util.FontType.TYPE3;\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding;\n    this.vertical = properties.vertical;\n\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + ')');\n      }\n\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    var _getFontFileType = getFontFileType(file, properties);\n\n    var _getFontFileType2 = _slicedToArray(_getFontFileType, 2);\n\n    type = _getFontFileType2[0];\n    subtype = _getFontFileType2[1];\n\n    if (type !== this.type || subtype !== this.subtype) {\n      (0, _util.info)('Inconsistent font file Type/SubType, expected: ' + \"\".concat(this.type, \"/\").concat(this.subtype, \" but found: \").concat(type, \"/\").concat(subtype, \".\"));\n    }\n\n    try {\n      var data;\n\n      switch (type) {\n        case 'MMType1':\n          (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.');\n\n        case 'Type1':\n        case 'CIDFontType0':\n          this.mimetype = 'font/opentype';\n          var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n          adjustWidths(properties);\n          data = this.convert(name, cff, properties);\n          break;\n\n        case 'OpenType':\n        case 'TrueType':\n        case 'CIDFontType2':\n          this.mimetype = 'font/opentype';\n          data = this.checkAndRepair(name, file, properties);\n\n          if (this.isOpenType) {\n            adjustWidths(properties);\n            type = 'OpenType';\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(\"Font \".concat(type, \" is not supported\"));\n      }\n    } catch (e) {\n      (0, _util.warn)(e);\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    this.data = data;\n    this.fontType = getFontType(type, subtype);\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.encoding = properties.baseEncoding;\n    this.seacMap = properties.seacMap;\n  }\n\n  Font.getFontID = function () {\n    var ID = 1;\n    return function Font_getFontID() {\n      return String(ID++);\n    };\n  }();\n\n  function int16(b0, b1) {\n    return (b0 << 8) + b1;\n  }\n\n  function writeSignedInt16(bytes, index, value) {\n    bytes[index + 1] = value;\n    bytes[index] = value >>> 8;\n  }\n\n  function signedInt16(b0, b1) {\n    var value = (b0 << 8) + b1;\n    return value & 1 << 15 ? value - 0x10000 : value;\n  }\n\n  function int32(b0, b1, b2, b3) {\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  function string16(value) {\n    return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n  }\n\n  function safeString16(value) {\n    value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n    return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n  }\n\n  function isTrueTypeFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === 'true';\n  }\n\n  function isTrueTypeCollectionFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.bytesToString)(header) === 'ttcf';\n  }\n\n  function isOpenTypeFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.bytesToString)(header) === 'OTTO';\n  }\n\n  function isType1File(file) {\n    var header = file.peekBytes(2);\n\n    if (header[0] === 0x25 && header[1] === 0x21) {\n      return true;\n    }\n\n    if (header[0] === 0x80 && header[1] === 0x01) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function isCFFFile(file) {\n    var header = file.peekBytes(4);\n\n    if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function getFontFileType(file, _ref) {\n    var type = _ref.type,\n        subtype = _ref.subtype,\n        composite = _ref.composite;\n    var fileType, fileSubtype;\n\n    if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType2';\n      } else {\n        fileType = 'TrueType';\n      }\n    } else if (isOpenTypeFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType2';\n      } else {\n        fileType = 'OpenType';\n      }\n    } else if (isType1File(file)) {\n      if (composite) {\n        fileType = 'CIDFontType0';\n      } else {\n        fileType = type === 'MMType1' ? 'MMType1' : 'Type1';\n      }\n    } else if (isCFFFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType0';\n        fileSubtype = 'CIDFontType0C';\n      } else {\n        fileType = type === 'MMType1' ? 'MMType1' : 'Type1';\n        fileSubtype = 'Type1C';\n      }\n    } else {\n      (0, _util.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.');\n      fileType = type;\n      fileSubtype = subtype;\n    }\n\n    return [fileType, fileSubtype];\n  }\n\n  function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n    var toFontChar = [],\n        unicode;\n\n    for (var i = 0, ii = encoding.length; i < ii; i++) {\n      unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n      if (unicode !== -1) {\n        toFontChar[i] = unicode;\n      }\n    }\n\n    for (var charCode in differences) {\n      unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n      if (unicode !== -1) {\n        toFontChar[+charCode] = unicode;\n      }\n    }\n\n    return toFontChar;\n  }\n\n  function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n    var newMap = Object.create(null);\n    var toFontChar = [];\n    var privateUseAreaIndex = 0;\n    var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n    var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n    for (var originalCharCode in charCodeToGlyphId) {\n      originalCharCode |= 0;\n      var glyphId = charCodeToGlyphId[originalCharCode];\n\n      if (!hasGlyph(glyphId)) {\n        continue;\n      }\n\n      if (nextAvailableFontCharCode > privateUseOffetEnd) {\n        privateUseAreaIndex++;\n\n        if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n          (0, _util.warn)('Ran out of space in font private use area.');\n          break;\n        }\n\n        nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n        privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n      }\n\n      var fontCharCode = nextAvailableFontCharCode++;\n\n      if (glyphId === 0) {\n        glyphId = newGlyphZeroId;\n      }\n\n      newMap[fontCharCode] = glyphId;\n      toFontChar[originalCharCode] = fontCharCode;\n    }\n\n    return {\n      toFontChar: toFontChar,\n      charCodeToGlyphId: newMap,\n      nextAvailableFontCharCode: nextAvailableFontCharCode\n    };\n  }\n\n  function getRanges(glyphs, numGlyphs) {\n    var codes = [];\n\n    for (var charCode in glyphs) {\n      if (glyphs[charCode] >= numGlyphs) {\n        continue;\n      }\n\n      codes.push({\n        fontCharCode: charCode | 0,\n        glyphId: glyphs[charCode]\n      });\n    }\n\n    if (codes.length === 0) {\n      codes.push({\n        fontCharCode: 0,\n        glyphId: 0\n      });\n    }\n\n    codes.sort(function fontGetRangesSort(a, b) {\n      return a.fontCharCode - b.fontCharCode;\n    });\n    var ranges = [];\n    var length = codes.length;\n\n    for (var n = 0; n < length;) {\n      var start = codes[n].fontCharCode;\n      var codeIndices = [codes[n].glyphId];\n      ++n;\n      var end = start;\n\n      while (n < length && end + 1 === codes[n].fontCharCode) {\n        codeIndices.push(codes[n].glyphId);\n        ++end;\n        ++n;\n\n        if (end === 0xFFFF) {\n          break;\n        }\n      }\n\n      ranges.push([start, end, codeIndices]);\n    }\n\n    return ranges;\n  }\n\n  function createCmapTable(glyphs, numGlyphs) {\n    var ranges = getRanges(glyphs, numGlyphs);\n    var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1;\n    var cmap = '\\x00\\x00' + string16(numTables) + '\\x00\\x03' + '\\x00\\x01' + (0, _util.string32)(4 + numTables * 8);\n    var i, ii, j, jj;\n\n    for (i = ranges.length - 1; i >= 0; --i) {\n      if (ranges[i][0] <= 0xFFFF) {\n        break;\n      }\n    }\n\n    var bmpLength = i + 1;\n\n    if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n      ranges[i][1] = 0xFFFE;\n    }\n\n    var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n    var segCount = bmpLength + trailingRangesCount;\n    var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n    var startCount = '';\n    var endCount = '';\n    var idDeltas = '';\n    var idRangeOffsets = '';\n    var glyphsIds = '';\n    var bias = 0;\n    var range, start, end, codes;\n\n    for (i = 0, ii = bmpLength; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      end = range[1];\n      startCount += string16(start);\n      endCount += string16(end);\n      codes = range[2];\n      var contiguous = true;\n\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          contiguous = false;\n          break;\n        }\n      }\n\n      if (!contiguous) {\n        var offset = (segCount - i) * 2 + bias * 2;\n        bias += end - start + 1;\n        idDeltas += string16(0);\n        idRangeOffsets += string16(offset);\n\n        for (j = 0, jj = codes.length; j < jj; ++j) {\n          glyphsIds += string16(codes[j]);\n        }\n      } else {\n        var startCode = codes[0];\n        idDeltas += string16(startCode - start & 0xFFFF);\n        idRangeOffsets += string16(0);\n      }\n    }\n\n    if (trailingRangesCount > 0) {\n      endCount += '\\xFF\\xFF';\n      startCount += '\\xFF\\xFF';\n      idDeltas += '\\x00\\x01';\n      idRangeOffsets += '\\x00\\x00';\n    }\n\n    var format314 = '\\x00\\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\\x00\\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds;\n    var format31012 = '';\n    var header31012 = '';\n\n    if (numTables > 1) {\n      cmap += '\\x00\\x03' + '\\x00\\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n      format31012 = '';\n\n      for (i = 0, ii = ranges.length; i < ii; i++) {\n        range = ranges[i];\n        start = range[0];\n        codes = range[2];\n        var code = codes[0];\n\n        for (j = 1, jj = codes.length; j < jj; ++j) {\n          if (codes[j] !== codes[j - 1] + 1) {\n            end = range[0] + j - 1;\n            format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n            start = end + 1;\n            code = codes[j];\n          }\n        }\n\n        format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n      }\n\n      header31012 = '\\x00\\x0C' + '\\x00\\x00' + (0, _util.string32)(format31012.length + 16) + '\\x00\\x00\\x00\\x00' + (0, _util.string32)(format31012.length / 12);\n    }\n\n    return cmap + '\\x00\\x04' + string16(format314.length + 4) + format314 + header31012 + format31012;\n  }\n\n  function validateOS2Table(os2) {\n    var stream = new _stream.Stream(os2.data);\n    var version = stream.getUint16();\n    stream.getBytes(60);\n    var selection = stream.getUint16();\n\n    if (version < 4 && selection & 0x0300) {\n      return false;\n    }\n\n    var firstChar = stream.getUint16();\n    var lastChar = stream.getUint16();\n\n    if (firstChar > lastChar) {\n      return false;\n    }\n\n    stream.getBytes(6);\n    var usWinAscent = stream.getUint16();\n\n    if (usWinAscent === 0) {\n      return false;\n    }\n\n    os2.data[8] = os2.data[9] = 0;\n    return true;\n  }\n\n  function createOS2Table(properties, charstrings, override) {\n    override = override || {\n      unitsPerEm: 0,\n      yMax: 0,\n      yMin: 0,\n      ascent: 0,\n      descent: 0\n    };\n    var ulUnicodeRange1 = 0;\n    var ulUnicodeRange2 = 0;\n    var ulUnicodeRange3 = 0;\n    var ulUnicodeRange4 = 0;\n    var firstCharIndex = null;\n    var lastCharIndex = 0;\n\n    if (charstrings) {\n      for (var code in charstrings) {\n        code |= 0;\n\n        if (firstCharIndex > code || !firstCharIndex) {\n          firstCharIndex = code;\n        }\n\n        if (lastCharIndex < code) {\n          lastCharIndex = code;\n        }\n\n        var position = (0, _unicode.getUnicodeRangeFor)(code);\n\n        if (position < 32) {\n          ulUnicodeRange1 |= 1 << position;\n        } else if (position < 64) {\n          ulUnicodeRange2 |= 1 << position - 32;\n        } else if (position < 96) {\n          ulUnicodeRange3 |= 1 << position - 64;\n        } else if (position < 123) {\n          ulUnicodeRange4 |= 1 << position - 96;\n        } else {\n          throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage');\n        }\n      }\n\n      if (lastCharIndex > 0xFFFF) {\n        lastCharIndex = 0xFFFF;\n      }\n    } else {\n      firstCharIndex = 0;\n      lastCharIndex = 255;\n    }\n\n    var bbox = properties.bbox || [0, 0, 0, 0];\n    var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n    var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n    var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n    var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n    if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n      typoDescent = -typoDescent;\n    }\n\n    var winAscent = override.yMax || typoAscent;\n    var winDescent = -override.yMin || -typoDescent;\n    return '\\x00\\x03' + '\\x02\\x24' + '\\x01\\xF4' + '\\x00\\x05' + '\\x00\\x00' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x00\\x8C' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x01\\xDF' + '\\x00\\x31' + '\\x01\\x02' + '\\x00\\x00' + '\\x00\\x00\\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\\x00\\x00\\x00\\x00\\x00\\x00' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + '\\x2A\\x32\\x31\\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\\x00\\x64' + string16(winAscent) + string16(winDescent) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\\x00\\x03';\n  }\n\n  function createPostTable(properties) {\n    var angle = Math.floor(properties.italicAngle * Math.pow(2, 16));\n    return '\\x00\\x03\\x00\\x00' + (0, _util.string32)(angle) + '\\x00\\x00' + '\\x00\\x00' + (0, _util.string32)(properties.fixedPitch) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00';\n  }\n\n  function createNameTable(name, proto) {\n    if (!proto) {\n      proto = [[], []];\n    }\n\n    var strings = [proto[0][0] || 'Original licence', proto[0][1] || name, proto[0][2] || 'Unknown', proto[0][3] || 'uniqueID', proto[0][4] || name, proto[0][5] || 'Version 0.11', proto[0][6] || '', proto[0][7] || 'Unknown', proto[0][8] || 'Unknown', proto[0][9] || 'Unknown'];\n    var stringsUnicode = [];\n    var i, ii, j, jj, str;\n\n    for (i = 0, ii = strings.length; i < ii; i++) {\n      str = proto[1][i] || strings[i];\n      var strBufUnicode = [];\n\n      for (j = 0, jj = str.length; j < jj; j++) {\n        strBufUnicode.push(string16(str.charCodeAt(j)));\n      }\n\n      stringsUnicode.push(strBufUnicode.join(''));\n    }\n\n    var names = [strings, stringsUnicode];\n    var platforms = ['\\x00\\x01', '\\x00\\x03'];\n    var encodings = ['\\x00\\x00', '\\x00\\x01'];\n    var languages = ['\\x00\\x00', '\\x04\\x09'];\n    var namesRecordCount = strings.length * platforms.length;\n    var nameTable = '\\x00\\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n    var strOffset = 0;\n\n    for (i = 0, ii = platforms.length; i < ii; i++) {\n      var strs = names[i];\n\n      for (j = 0, jj = strs.length; j < jj; j++) {\n        str = strs[j];\n        var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n        nameTable += nameRecord;\n        strOffset += str.length;\n      }\n    }\n\n    nameTable += strings.join('') + stringsUnicode.join('');\n    return nameTable;\n  }\n\n  Font.prototype = {\n    name: null,\n    font: null,\n    mimetype: null,\n    encoding: null,\n    disableFontFace: false,\n\n    get renderer() {\n      var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n\n      return (0, _util.shadow)(this, 'renderer', renderer);\n    },\n\n    exportData: function Font_exportData() {\n      var data = {};\n\n      for (var i in this) {\n        if (this.hasOwnProperty(i)) {\n          data[i] = this[i];\n        }\n      }\n\n      return data;\n    },\n    fallbackToSystemFont: function Font_fallbackToSystemFont() {\n      var _this = this;\n\n      this.missingFile = true;\n      var charCode, unicode;\n      var name = this.name;\n      var type = this.type;\n      var subtype = this.subtype;\n      var fontName = name.replace(/[,_]/g, '-');\n      var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n          nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n      var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n      this.bold = fontName.search(/bold/gi) !== -1;\n      this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n      this.black = name.search(/Black/g) !== -1;\n      this.remeasure = Object.keys(this.widths).length > 0;\n\n      if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.startsWith('Identity-')) {\n        var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n        var map = [];\n\n        for (charCode in GlyphMapForStandardFonts) {\n          map[+charCode] = GlyphMapForStandardFonts[charCode];\n        }\n\n        if (/Arial-?Black/i.test(name)) {\n          var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n\n          for (charCode in SupplementalGlyphMapForArialBlack) {\n            map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n          }\n        } else if (/Calibri/i.test(name)) {\n          var SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n\n          for (charCode in SupplementalGlyphMapForCalibri) {\n            map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n          }\n        }\n\n        var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n\n        if (!isIdentityUnicode) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            map[+charCode] = unicodeCharCode;\n          });\n        }\n\n        this.toFontChar = map;\n        this.toUnicode = new ToUnicodeMap(map);\n      } else if (/Symbol/i.test(fontName)) {\n        this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n      } else if (/Dingbats/i.test(fontName)) {\n        if (/Wingdings/i.test(name)) {\n          (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.');\n        }\n\n        this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n      } else if (isStandardFont) {\n        this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n      } else {\n        var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          if (!_this.composite) {\n            var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode];\n            unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n            if (unicode !== -1) {\n              unicodeCharCode = unicode;\n            }\n          }\n\n          _this.toFontChar[charCode] = unicodeCharCode;\n        });\n      }\n\n      this.loadedName = fontName.split('-')[0];\n      this.fontType = getFontType(type, subtype);\n    },\n    checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n      var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n\n      function readTables(file, numTables) {\n        var tables = Object.create(null);\n        tables['OS/2'] = null;\n        tables['cmap'] = null;\n        tables['head'] = null;\n        tables['hhea'] = null;\n        tables['hmtx'] = null;\n        tables['maxp'] = null;\n        tables['name'] = null;\n        tables['post'] = null;\n\n        for (var i = 0; i < numTables; i++) {\n          var table = readTableEntry(font);\n\n          if (!VALID_TABLES.includes(table.tag)) {\n            continue;\n          }\n\n          if (table.length === 0) {\n            continue;\n          }\n\n          tables[table.tag] = table;\n        }\n\n        return tables;\n      }\n\n      function readTableEntry(file) {\n        var tag = (0, _util.bytesToString)(file.getBytes(4));\n        var checksum = file.getInt32() >>> 0;\n        var offset = file.getInt32() >>> 0;\n        var length = file.getInt32() >>> 0;\n        var previousPosition = file.pos;\n        file.pos = file.start ? file.start : 0;\n        file.skip(offset);\n        var data = file.getBytes(length);\n        file.pos = previousPosition;\n\n        if (tag === 'head') {\n          data[8] = data[9] = data[10] = data[11] = 0;\n          data[17] |= 0x20;\n        }\n\n        return {\n          tag: tag,\n          checksum: checksum,\n          length: length,\n          offset: offset,\n          data: data\n        };\n      }\n\n      function readOpenTypeHeader(ttf) {\n        return {\n          version: (0, _util.bytesToString)(ttf.getBytes(4)),\n          numTables: ttf.getUint16(),\n          searchRange: ttf.getUint16(),\n          entrySelector: ttf.getUint16(),\n          rangeShift: ttf.getUint16()\n        };\n      }\n\n      function readTrueTypeCollectionHeader(ttc) {\n        var ttcTag = (0, _util.bytesToString)(ttc.getBytes(4));\n        (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.');\n        var majorVersion = ttc.getUint16();\n        var minorVersion = ttc.getUint16();\n        var numFonts = ttc.getInt32() >>> 0;\n        var offsetTable = [];\n\n        for (var i = 0; i < numFonts; i++) {\n          offsetTable.push(ttc.getInt32() >>> 0);\n        }\n\n        var header = {\n          ttcTag: ttcTag,\n          majorVersion: majorVersion,\n          minorVersion: minorVersion,\n          numFonts: numFonts,\n          offsetTable: offsetTable\n        };\n\n        switch (majorVersion) {\n          case 1:\n            return header;\n\n          case 2:\n            header.dsigTag = ttc.getInt32() >>> 0;\n            header.dsigLength = ttc.getInt32() >>> 0;\n            header.dsigOffset = ttc.getInt32() >>> 0;\n            return header;\n        }\n\n        throw new _util.FormatError(\"Invalid TrueType Collection majorVersion: \".concat(majorVersion, \".\"));\n      }\n\n      function readTrueTypeCollectionData(ttc, fontName) {\n        var _readTrueTypeCollecti = readTrueTypeCollectionHeader(ttc),\n            numFonts = _readTrueTypeCollecti.numFonts,\n            offsetTable = _readTrueTypeCollecti.offsetTable;\n\n        for (var i = 0; i < numFonts; i++) {\n          ttc.pos = (ttc.start || 0) + offsetTable[i];\n          var potentialHeader = readOpenTypeHeader(ttc);\n          var potentialTables = readTables(ttc, potentialHeader.numTables);\n\n          if (!potentialTables['name']) {\n            throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n          }\n\n          var nameTable = readNameTable(potentialTables['name']);\n\n          for (var j = 0, jj = nameTable.length; j < jj; j++) {\n            for (var k = 0, kk = nameTable[j].length; k < kk; k++) {\n              var nameEntry = nameTable[j][k];\n\n              if (nameEntry && nameEntry.replace(/\\s/g, '') === fontName) {\n                return {\n                  header: potentialHeader,\n                  tables: potentialTables\n                };\n              }\n            }\n          }\n        }\n\n        throw new _util.FormatError(\"TrueType Collection does not contain \\\"\".concat(fontName, \"\\\" font.\"));\n      }\n\n      function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) {\n        if (!cmap) {\n          (0, _util.warn)('No cmap table available.');\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        var segment;\n        var start = (font.start ? font.start : 0) + cmap.offset;\n        font.pos = start;\n        font.getUint16();\n        var numTables = font.getUint16();\n        var potentialTable;\n        var canBreak = false;\n\n        for (var i = 0; i < numTables; i++) {\n          var platformId = font.getUint16();\n          var encodingId = font.getUint16();\n          var offset = font.getInt32() >>> 0;\n          var useTable = false;\n\n          if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n            continue;\n          }\n\n          if (platformId === 0 && encodingId === 0) {\n            useTable = true;\n          } else if (platformId === 1 && encodingId === 0) {\n            useTable = true;\n          } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n            useTable = true;\n\n            if (!isSymbolicFont) {\n              canBreak = true;\n            }\n          } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n            useTable = true;\n            canBreak = true;\n          }\n\n          if (useTable) {\n            potentialTable = {\n              platformId: platformId,\n              encodingId: encodingId,\n              offset: offset\n            };\n          }\n\n          if (canBreak) {\n            break;\n          }\n        }\n\n        if (potentialTable) {\n          font.pos = start + potentialTable.offset;\n        }\n\n        if (!potentialTable || font.peekByte() === -1) {\n          (0, _util.warn)('Could not find a preferred cmap table.');\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        var format = font.getUint16();\n        font.getUint16();\n        font.getUint16();\n        var hasShortCmap = false;\n        var mappings = [];\n        var j, glyphId;\n\n        if (format === 0) {\n          for (j = 0; j < 256; j++) {\n            var index = font.getByte();\n\n            if (!index) {\n              continue;\n            }\n\n            mappings.push({\n              charCode: j,\n              glyphId: index\n            });\n          }\n\n          hasShortCmap = true;\n        } else if (format === 4) {\n          var segCount = font.getUint16() >> 1;\n          font.getBytes(6);\n          var segIndex,\n              segments = [];\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments.push({\n              end: font.getUint16()\n            });\n          }\n\n          font.getUint16();\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].start = font.getUint16();\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].delta = font.getUint16();\n          }\n\n          var offsetsCount = 0;\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            var rangeOffset = font.getUint16();\n\n            if (!rangeOffset) {\n              segment.offsetIndex = -1;\n              continue;\n            }\n\n            var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n            segment.offsetIndex = offsetIndex;\n            offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n          }\n\n          var offsets = [];\n\n          for (j = 0; j < offsetsCount; j++) {\n            offsets.push(font.getUint16());\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            start = segment.start;\n            var end = segment.end;\n            var delta = segment.delta;\n            offsetIndex = segment.offsetIndex;\n\n            for (j = start; j <= end; j++) {\n              if (j === 0xFFFF) {\n                continue;\n              }\n\n              glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n              glyphId = glyphId + delta & 0xFFFF;\n              mappings.push({\n                charCode: j,\n                glyphId: glyphId\n              });\n            }\n          }\n        } else if (format === 6) {\n          var firstCode = font.getUint16();\n          var entryCount = font.getUint16();\n\n          for (j = 0; j < entryCount; j++) {\n            glyphId = font.getUint16();\n            var charCode = firstCode + j;\n            mappings.push({\n              charCode: charCode,\n              glyphId: glyphId\n            });\n          }\n        } else {\n          (0, _util.warn)('cmap table has unsupported format: ' + format);\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        mappings.sort(function (a, b) {\n          return a.charCode - b.charCode;\n        });\n\n        for (i = 1; i < mappings.length; i++) {\n          if (mappings[i - 1].charCode === mappings[i].charCode) {\n            mappings.splice(i, 1);\n            i--;\n          }\n        }\n\n        return {\n          platformId: potentialTable.platformId,\n          encodingId: potentialTable.encodingId,\n          mappings: mappings,\n          hasShortCmap: hasShortCmap\n        };\n      }\n\n      function sanitizeMetrics(font, header, metrics, numGlyphs) {\n        if (!header) {\n          if (metrics) {\n            metrics.data = null;\n          }\n\n          return;\n        }\n\n        font.pos = (font.start ? font.start : 0) + header.offset;\n        font.pos += 4;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 8;\n        font.pos += 2;\n        var numOfMetrics = font.getUint16();\n\n        if (numOfMetrics > numGlyphs) {\n          (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')');\n          numOfMetrics = numGlyphs;\n          header.data[34] = (numOfMetrics & 0xff00) >> 8;\n          header.data[35] = numOfMetrics & 0x00ff;\n        }\n\n        var numOfSidebearings = numGlyphs - numOfMetrics;\n        var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n        if (numMissing > 0) {\n          var entries = new Uint8Array(metrics.length + numMissing * 2);\n          entries.set(metrics.data);\n          metrics.data = entries;\n        }\n      }\n\n      function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n        var glyphProfile = {\n          length: 0,\n          sizeOfInstructions: 0\n        };\n\n        if (sourceEnd - sourceStart <= 12) {\n          return glyphProfile;\n        }\n\n        var glyf = source.subarray(sourceStart, sourceEnd);\n        var contoursCount = signedInt16(glyf[0], glyf[1]);\n\n        if (contoursCount < 0) {\n          contoursCount = -1;\n          writeSignedInt16(glyf, 0, contoursCount);\n          dest.set(glyf, destStart);\n          glyphProfile.length = glyf.length;\n          return glyphProfile;\n        }\n\n        var i,\n            j = 10,\n            flagsCount = 0;\n\n        for (i = 0; i < contoursCount; i++) {\n          var endPoint = glyf[j] << 8 | glyf[j + 1];\n          flagsCount = endPoint + 1;\n          j += 2;\n        }\n\n        var instructionsStart = j;\n        var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n        glyphProfile.sizeOfInstructions = instructionsLength;\n        j += 2 + instructionsLength;\n        var instructionsEnd = j;\n        var coordinatesLength = 0;\n\n        for (i = 0; i < flagsCount; i++) {\n          var flag = glyf[j++];\n\n          if (flag & 0xC0) {\n            glyf[j - 1] = flag & 0x3F;\n          }\n\n          var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2);\n          coordinatesLength += xyLength;\n\n          if (flag & 8) {\n            var repeat = glyf[j++];\n            i += repeat;\n            coordinatesLength += repeat * xyLength;\n          }\n        }\n\n        if (coordinatesLength === 0) {\n          return glyphProfile;\n        }\n\n        var glyphDataLength = j + coordinatesLength;\n\n        if (glyphDataLength > glyf.length) {\n          return glyphProfile;\n        }\n\n        if (!hintsValid && instructionsLength > 0) {\n          dest.set(glyf.subarray(0, instructionsStart), destStart);\n          dest.set([0, 0], destStart + instructionsStart);\n          dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n          glyphDataLength -= instructionsLength;\n\n          if (glyf.length - glyphDataLength > 3) {\n            glyphDataLength = glyphDataLength + 3 & ~3;\n          }\n\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = glyphDataLength + 3 & ~3;\n          dest.set(glyf.subarray(0, glyphDataLength), destStart);\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      function sanitizeHead(head, numGlyphs, locaLength) {\n        var data = head.data;\n        var version = int32(data[0], data[1], data[2], data[3]);\n\n        if (version >> 16 !== 1) {\n          (0, _util.info)('Attempting to fix invalid version in head table: ' + version);\n          data[0] = 0;\n          data[1] = 1;\n          data[2] = 0;\n          data[3] = 0;\n        }\n\n        var indexToLocFormat = int16(data[50], data[51]);\n\n        if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n          (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat);\n          var numGlyphsPlusOne = numGlyphs + 1;\n\n          if (locaLength === numGlyphsPlusOne << 1) {\n            data[50] = 0;\n            data[51] = 0;\n          } else if (locaLength === numGlyphsPlusOne << 2) {\n            data[50] = 0;\n            data[51] = 1;\n          } else {\n            throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat);\n          }\n        }\n      }\n\n      function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n        var itemSize, itemDecode, itemEncode;\n\n        if (isGlyphLocationsLong) {\n          itemSize = 4;\n\n          itemDecode = function fontItemDecodeLong(data, offset) {\n            return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n          };\n\n          itemEncode = function fontItemEncodeLong(data, offset, value) {\n            data[offset] = value >>> 24 & 0xFF;\n            data[offset + 1] = value >> 16 & 0xFF;\n            data[offset + 2] = value >> 8 & 0xFF;\n            data[offset + 3] = value & 0xFF;\n          };\n        } else {\n          itemSize = 2;\n\n          itemDecode = function fontItemDecode(data, offset) {\n            return data[offset] << 9 | data[offset + 1] << 1;\n          };\n\n          itemEncode = function fontItemEncode(data, offset, value) {\n            data[offset] = value >> 9 & 0xFF;\n            data[offset + 1] = value >> 1 & 0xFF;\n          };\n        }\n\n        var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n        var locaData = loca.data;\n        var locaDataSize = itemSize * (1 + numGlyphsOut);\n        locaData = new Uint8Array(locaDataSize);\n        locaData.set(loca.data.subarray(0, locaDataSize));\n        loca.data = locaData;\n        var oldGlyfData = glyf.data;\n        var oldGlyfDataLength = oldGlyfData.length;\n        var newGlyfData = new Uint8Array(oldGlyfDataLength);\n        var startOffset = itemDecode(locaData, 0);\n        var writeOffset = 0;\n        var missingGlyphs = Object.create(null);\n        itemEncode(locaData, 0, writeOffset);\n        var i, j;\n\n        for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n          var endOffset = itemDecode(locaData, j);\n\n          if (endOffset === 0) {\n            endOffset = startOffset;\n          }\n\n          if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n            endOffset = oldGlyfDataLength;\n          }\n\n          if (endOffset > oldGlyfDataLength) {\n            startOffset = endOffset;\n          }\n\n          var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n          var newLength = glyphProfile.length;\n\n          if (newLength === 0) {\n            missingGlyphs[i] = true;\n          }\n\n          if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n            maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n          }\n\n          writeOffset += newLength;\n          itemEncode(locaData, j, writeOffset);\n          startOffset = endOffset;\n        }\n\n        if (writeOffset === 0) {\n          var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n          for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n            itemEncode(locaData, j, simpleGlyph.length);\n          }\n\n          glyf.data = simpleGlyph;\n        } else if (dupFirstEntry) {\n          var firstEntryLength = itemDecode(locaData, itemSize);\n\n          if (newGlyfData.length > firstEntryLength + writeOffset) {\n            glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n          } else {\n            glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n            glyf.data.set(newGlyfData.subarray(0, writeOffset));\n          }\n\n          glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n          itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n        } else {\n          glyf.data = newGlyfData.subarray(0, writeOffset);\n        }\n\n        return {\n          missingGlyphs: missingGlyphs,\n          maxSizeOfInstructions: maxSizeOfInstructions\n        };\n      }\n\n      function readPostScriptTable(post, properties, maxpNumGlyphs) {\n        var start = (font.start ? font.start : 0) + post.offset;\n        font.pos = start;\n        var length = post.length,\n            end = start + length;\n        var version = font.getInt32();\n        font.getBytes(28);\n        var glyphNames;\n        var valid = true;\n        var i;\n\n        switch (version) {\n          case 0x00010000:\n            glyphNames = MacStandardGlyphOrdering;\n            break;\n\n          case 0x00020000:\n            var numGlyphs = font.getUint16();\n\n            if (numGlyphs !== maxpNumGlyphs) {\n              valid = false;\n              break;\n            }\n\n            var glyphNameIndexes = [];\n\n            for (i = 0; i < numGlyphs; ++i) {\n              var index = font.getUint16();\n\n              if (index >= 32768) {\n                valid = false;\n                break;\n              }\n\n              glyphNameIndexes.push(index);\n            }\n\n            if (!valid) {\n              break;\n            }\n\n            var customNames = [];\n            var strBuf = [];\n\n            while (font.pos < end) {\n              var stringLength = font.getByte();\n              strBuf.length = stringLength;\n\n              for (i = 0; i < stringLength; ++i) {\n                strBuf[i] = String.fromCharCode(font.getByte());\n              }\n\n              customNames.push(strBuf.join(''));\n            }\n\n            glyphNames = [];\n\n            for (i = 0; i < numGlyphs; ++i) {\n              var j = glyphNameIndexes[i];\n\n              if (j < 258) {\n                glyphNames.push(MacStandardGlyphOrdering[j]);\n                continue;\n              }\n\n              glyphNames.push(customNames[j - 258]);\n            }\n\n            break;\n\n          case 0x00030000:\n            break;\n\n          default:\n            (0, _util.warn)('Unknown/unsupported post table version ' + version);\n            valid = false;\n\n            if (properties.defaultEncoding) {\n              glyphNames = properties.defaultEncoding;\n            }\n\n            break;\n        }\n\n        properties.glyphNames = glyphNames;\n        return valid;\n      }\n\n      function readNameTable(nameTable) {\n        var start = (font.start ? font.start : 0) + nameTable.offset;\n        font.pos = start;\n        var names = [[], []];\n        var length = nameTable.length,\n            end = start + length;\n        var format = font.getUint16();\n        var FORMAT_0_HEADER_LENGTH = 6;\n\n        if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n          return names;\n        }\n\n        var numRecords = font.getUint16();\n        var stringsStart = font.getUint16();\n        var records = [];\n        var NAME_RECORD_LENGTH = 12;\n        var i, ii;\n\n        for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n          var r = {\n            platform: font.getUint16(),\n            encoding: font.getUint16(),\n            language: font.getUint16(),\n            name: font.getUint16(),\n            length: font.getUint16(),\n            offset: font.getUint16()\n          };\n\n          if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n            records.push(r);\n          }\n        }\n\n        for (i = 0, ii = records.length; i < ii; i++) {\n          var record = records[i];\n\n          if (record.length <= 0) {\n            continue;\n          }\n\n          var pos = start + stringsStart + record.offset;\n\n          if (pos + record.length > end) {\n            continue;\n          }\n\n          font.pos = pos;\n          var nameIndex = record.name;\n\n          if (record.encoding) {\n            var str = '';\n\n            for (var j = 0, jj = record.length; j < jj; j += 2) {\n              str += String.fromCharCode(font.getUint16());\n            }\n\n            names[1][nameIndex] = str;\n          } else {\n            names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n          }\n        }\n\n        return names;\n      }\n\n      var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n\n      function sanitizeTTProgram(table, ttContext) {\n        var data = table.data;\n        var i = 0,\n            j,\n            n,\n            b,\n            funcId,\n            pc,\n            lastEndf = 0,\n            lastDeff = 0;\n        var stack = [];\n        var callstack = [];\n        var functionsCalled = [];\n        var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n        var inFDEF = false,\n            ifLevel = 0,\n            inELSE = 0;\n\n        for (var ii = data.length; i < ii;) {\n          var op = data[i++];\n\n          if (op === 0x40) {\n            n = data[i++];\n\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if (op === 0x41) {\n            n = data[i++];\n\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push(b << 8 | data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB0) {\n            n = op - 0xB0 + 1;\n\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB8) {\n            n = op - 0xB8 + 1;\n\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push(b << 8 | data[i++]);\n              }\n            }\n          } else if (op === 0x2B && !tooComplexToFollowFunctions) {\n            if (!inFDEF && !inELSE) {\n              funcId = stack[stack.length - 1];\n\n              if (isNaN(funcId)) {\n                (0, _util.info)('TT: CALL empty stack (or invalid entry).');\n              } else {\n                ttContext.functionsUsed[funcId] = true;\n\n                if (funcId in ttContext.functionsStackDeltas) {\n                  var newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n                  if (newStackLength < 0) {\n                    (0, _util.warn)('TT: CALL invalid functions stack delta.');\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n\n                  stack.length = newStackLength;\n                } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n                  callstack.push({\n                    data: data,\n                    i: i,\n                    stackTop: stack.length - 1\n                  });\n                  functionsCalled.push(funcId);\n                  pc = ttContext.functionsDefined[funcId];\n\n                  if (!pc) {\n                    (0, _util.warn)('TT: CALL non-existent function');\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n\n                  data = pc.data;\n                  i = pc.i;\n                }\n              }\n            }\n          } else if (op === 0x2C && !tooComplexToFollowFunctions) {\n            if (inFDEF || inELSE) {\n              (0, _util.warn)('TT: nested FDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n\n            inFDEF = true;\n            lastDeff = i;\n            funcId = stack.pop();\n            ttContext.functionsDefined[funcId] = {\n              data: data,\n              i: i\n            };\n          } else if (op === 0x2D) {\n            if (inFDEF) {\n              inFDEF = false;\n              lastEndf = i;\n            } else {\n              pc = callstack.pop();\n\n              if (!pc) {\n                (0, _util.warn)('TT: ENDF bad stack');\n                ttContext.hintsValid = false;\n                return;\n              }\n\n              funcId = functionsCalled.pop();\n              data = pc.data;\n              i = pc.i;\n              ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n            }\n          } else if (op === 0x89) {\n            if (inFDEF || inELSE) {\n              (0, _util.warn)('TT: nested IDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n\n            inFDEF = true;\n            lastDeff = i;\n          } else if (op === 0x58) {\n            ++ifLevel;\n          } else if (op === 0x1B) {\n            inELSE = ifLevel;\n          } else if (op === 0x59) {\n            if (inELSE === ifLevel) {\n              inELSE = 0;\n            }\n\n            --ifLevel;\n          } else if (op === 0x1C) {\n            if (!inFDEF && !inELSE) {\n              var offset = stack[stack.length - 1];\n\n              if (offset > 0) {\n                i += offset - 1;\n              }\n            }\n          }\n\n          if (!inFDEF && !inELSE) {\n            var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n\n            if (op >= 0x71 && op <= 0x75) {\n              n = stack.pop();\n\n              if (!isNaN(n)) {\n                stackDelta = -n * 2;\n              }\n            }\n\n            while (stackDelta < 0 && stack.length > 0) {\n              stack.pop();\n              stackDelta++;\n            }\n\n            while (stackDelta > 0) {\n              stack.push(NaN);\n              stackDelta--;\n            }\n          }\n        }\n\n        ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n        var content = [data];\n\n        if (i > data.length) {\n          content.push(new Uint8Array(i - data.length));\n        }\n\n        if (lastDeff > lastEndf) {\n          (0, _util.warn)('TT: complementing a missing function tail');\n          content.push(new Uint8Array([0x22, 0x2D]));\n        }\n\n        foldTTTable(table, content);\n      }\n\n      function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n        if (ttContext.tooComplexToFollowFunctions) {\n          return;\n        }\n\n        if (ttContext.functionsDefined.length > maxFunctionDefs) {\n          (0, _util.warn)('TT: more functions defined than expected');\n          ttContext.hintsValid = false;\n          return;\n        }\n\n        for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n          if (j > maxFunctionDefs) {\n            (0, _util.warn)('TT: invalid function id: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n\n          if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n            (0, _util.warn)('TT: undefined function: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n        }\n      }\n\n      function foldTTTable(table, content) {\n        if (content.length > 1) {\n          var newLength = 0;\n          var j, jj;\n\n          for (j = 0, jj = content.length; j < jj; j++) {\n            newLength += content[j].length;\n          }\n\n          newLength = newLength + 3 & ~3;\n          var result = new Uint8Array(newLength);\n          var pos = 0;\n\n          for (j = 0, jj = content.length; j < jj; j++) {\n            result.set(content[j], pos);\n            pos += content[j].length;\n          }\n\n          table.data = result;\n          table.length = newLength;\n        }\n      }\n\n      function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n        var ttContext = {\n          functionsDefined: [],\n          functionsUsed: [],\n          functionsStackDeltas: [],\n          tooComplexToFollowFunctions: false,\n          hintsValid: true\n        };\n\n        if (fpgm) {\n          sanitizeTTProgram(fpgm, ttContext);\n        }\n\n        if (prep) {\n          sanitizeTTProgram(prep, ttContext);\n        }\n\n        if (fpgm) {\n          checkInvalidFunctions(ttContext, maxFunctionDefs);\n        }\n\n        if (cvt && cvt.length & 1) {\n          var cvtData = new Uint8Array(cvt.length + 1);\n          cvtData.set(cvt.data);\n          cvt.data = cvtData;\n        }\n\n        return ttContext.hintsValid;\n      }\n\n      font = new _stream.Stream(new Uint8Array(font.getBytes()));\n      var header, tables;\n\n      if (isTrueTypeCollectionFile(font)) {\n        var ttcData = readTrueTypeCollectionData(font, this.name);\n        header = ttcData.header;\n        tables = ttcData.tables;\n      } else {\n        header = readOpenTypeHeader(font);\n        tables = readTables(font, header.numTables);\n      }\n\n      var cff, cffFile;\n      var isTrueType = !tables['CFF '];\n\n      if (!isTrueType) {\n        var isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n        if (header.version === 'OTTO' && !isComposite || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) {\n          cffFile = new _stream.Stream(tables['CFF '].data);\n          cff = new CFFFont(cffFile, properties);\n          adjustWidths(properties);\n          return this.convert(name, cff, properties);\n        }\n\n        delete tables['glyf'];\n        delete tables['loca'];\n        delete tables['fpgm'];\n        delete tables['prep'];\n        delete tables['cvt '];\n        this.isOpenType = true;\n      } else {\n        if (!tables['loca']) {\n          throw new _util.FormatError('Required \"loca\" table is not found');\n        }\n\n        if (!tables['glyf']) {\n          (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n          tables['glyf'] = {\n            tag: 'glyf',\n            data: new Uint8Array(0)\n          };\n        }\n\n        this.isOpenType = false;\n      }\n\n      if (!tables['maxp']) {\n        throw new _util.FormatError('Required \"maxp\" table is not found');\n      }\n\n      font.pos = (font.start || 0) + tables['maxp'].offset;\n      var version = font.getInt32();\n      var numGlyphs = font.getUint16();\n      var numGlyphsOut = numGlyphs + 1;\n      var dupFirstEntry = true;\n\n      if (numGlyphsOut > 0xFFFF) {\n        dupFirstEntry = false;\n        numGlyphsOut = numGlyphs;\n        (0, _util.warn)('Not enough space in glyfs to duplicate first glyph.');\n      }\n\n      var maxFunctionDefs = 0;\n      var maxSizeOfInstructions = 0;\n\n      if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n        font.pos += 8;\n        var maxZones = font.getUint16();\n\n        if (maxZones > 2) {\n          tables['maxp'].data[14] = 0;\n          tables['maxp'].data[15] = 2;\n        }\n\n        font.pos += 4;\n        maxFunctionDefs = font.getUint16();\n        font.pos += 4;\n        maxSizeOfInstructions = font.getUint16();\n      }\n\n      tables['maxp'].data[4] = numGlyphsOut >> 8;\n      tables['maxp'].data[5] = numGlyphsOut & 255;\n      var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs);\n\n      if (!hintsValid) {\n        delete tables['fpgm'];\n        delete tables['prep'];\n        delete tables['cvt '];\n      }\n\n      sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut);\n\n      if (!tables['head']) {\n        throw new _util.FormatError('Required \"head\" table is not found');\n      }\n\n      sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0);\n      var missingGlyphs = Object.create(null);\n\n      if (isTrueType) {\n        var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]);\n        var glyphsInfo = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n        missingGlyphs = glyphsInfo.missingGlyphs;\n\n        if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n          tables['maxp'].data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n          tables['maxp'].data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n        }\n      }\n\n      if (!tables['hhea']) {\n        throw new _util.FormatError('Required \"hhea\" table is not found');\n      }\n\n      if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) {\n        tables['hhea'].data[10] = 0xFF;\n        tables['hhea'].data[11] = 0xFF;\n      }\n\n      var metricsOverride = {\n        unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]),\n        yMax: int16(tables['head'].data[42], tables['head'].data[43]),\n        yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]),\n        ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]),\n        descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7])\n      };\n      this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n      this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n      if (tables['post']) {\n        readPostScriptTable(tables['post'], properties, numGlyphs);\n      }\n\n      tables['post'] = {\n        tag: 'post',\n        data: createPostTable(properties)\n      };\n      var charCodeToGlyphId = [],\n          charCode;\n\n      function hasGlyph(glyphId) {\n        return !missingGlyphs[glyphId];\n      }\n\n      if (properties.composite) {\n        var cidToGidMap = properties.cidToGidMap || [];\n        var isCidToGidMapEmpty = cidToGidMap.length === 0;\n        properties.cMap.forEach(function (charCode, cid) {\n          if (cid > 0xffff) {\n            throw new _util.FormatError('Max size of CID is 65,535');\n          }\n\n          var glyphId = -1;\n\n          if (isCidToGidMapEmpty) {\n            glyphId = cid;\n          } else if (cidToGidMap[cid] !== undefined) {\n            glyphId = cidToGidMap[cid];\n          }\n\n          if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        });\n      } else {\n        var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding);\n        var cmapPlatformId = cmapTable.platformId;\n        var cmapEncodingId = cmapTable.encodingId;\n        var cmapMappings = cmapTable.mappings;\n        var cmapMappingsLength = cmapMappings.length;\n\n        if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n          var baseEncoding = [];\n\n          if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') {\n            baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n          }\n\n          var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n          for (charCode = 0; charCode < 256; charCode++) {\n            var glyphName, standardGlyphName;\n\n            if (this.differences && charCode in this.differences) {\n              glyphName = this.differences[charCode];\n            } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') {\n              glyphName = baseEncoding[charCode];\n            } else {\n              glyphName = _encodings.StandardEncoding[charCode];\n            }\n\n            if (!glyphName) {\n              continue;\n            }\n\n            standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n            var unicodeOrCharCode;\n\n            if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n              unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n            } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n              unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n            }\n\n            var found = false;\n\n            for (var i = 0; i < cmapMappingsLength; ++i) {\n              if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n                continue;\n              }\n\n              charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n              found = true;\n              break;\n            }\n\n            if (!found && properties.glyphNames) {\n              var glyphId = properties.glyphNames.indexOf(glyphName);\n\n              if (glyphId === -1 && standardGlyphName !== glyphName) {\n                glyphId = properties.glyphNames.indexOf(standardGlyphName);\n              }\n\n              if (glyphId > 0 && hasGlyph(glyphId)) {\n                charCodeToGlyphId[charCode] = glyphId;\n              }\n            }\n          }\n        } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n          for (var _i2 = 0; _i2 < cmapMappingsLength; ++_i2) {\n            charCodeToGlyphId[cmapMappings[_i2].charCode] = cmapMappings[_i2].glyphId;\n          }\n        } else {\n          for (var _i3 = 0; _i3 < cmapMappingsLength; ++_i3) {\n            charCode = cmapMappings[_i3].charCode;\n\n            if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) {\n              charCode &= 0xFF;\n            }\n\n            charCodeToGlyphId[charCode] = cmapMappings[_i3].glyphId;\n          }\n        }\n      }\n\n      if (charCodeToGlyphId.length === 0) {\n        charCodeToGlyphId[0] = 0;\n      }\n\n      var glyphZeroId = numGlyphsOut - 1;\n\n      if (!dupFirstEntry) {\n        glyphZeroId = 0;\n      }\n\n      var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);\n      this.toFontChar = newMapping.toFontChar;\n      tables['cmap'] = {\n        tag: 'cmap',\n        data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut)\n      };\n\n      if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n        tables['OS/2'] = {\n          tag: 'OS/2',\n          data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n        };\n      }\n\n      if (!isTrueType) {\n        try {\n          cffFile = new _stream.Stream(tables['CFF '].data);\n          var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n          cff = parser.parse();\n          cff.duplicateFirstGlyph();\n          var compiler = new _cff_parser.CFFCompiler(cff);\n          tables['CFF '].data = compiler.compile();\n        } catch (e) {\n          (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n        }\n      }\n\n      if (!tables['name']) {\n        tables['name'] = {\n          tag: 'name',\n          data: createNameTable(this.name)\n        };\n      } else {\n        var namePrototype = readNameTable(tables['name']);\n        tables['name'].data = createNameTable(name, namePrototype);\n      }\n\n      var builder = new OpenTypeFileBuilder(header.version);\n\n      for (var tableTag in tables) {\n        builder.addTable(tableTag, tables[tableTag].data);\n      }\n\n      return builder.toArray();\n    },\n    convert: function Font_convert(fontName, font, properties) {\n      properties.fixedPitch = false;\n\n      if (properties.builtInEncoding) {\n        adjustToUnicode(properties, properties.builtInEncoding);\n      }\n\n      var glyphZeroId = 1;\n\n      if (font instanceof CFFFont) {\n        glyphZeroId = font.numGlyphs - 1;\n      }\n\n      var mapping = font.getGlyphMapping(properties);\n      var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId);\n      this.toFontChar = newMapping.toFontChar;\n      var numGlyphs = font.numGlyphs;\n\n      function getCharCodes(charCodeToGlyphId, glyphId) {\n        var charCodes = null;\n\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            if (!charCodes) {\n              charCodes = [];\n            }\n\n            charCodes.push(charCode | 0);\n          }\n        }\n\n        return charCodes;\n      }\n\n      function createCharCode(charCodeToGlyphId, glyphId) {\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            return charCode | 0;\n          }\n        }\n\n        newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n        return newMapping.nextAvailableFontCharCode++;\n      }\n\n      var seacs = font.seacs;\n\n      if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n        var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n        var charset = font.getCharset();\n        var seacMap = Object.create(null);\n\n        for (var glyphId in seacs) {\n          glyphId |= 0;\n          var seac = seacs[glyphId];\n          var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n          var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n          var baseGlyphId = charset.indexOf(baseGlyphName);\n          var accentGlyphId = charset.indexOf(accentGlyphName);\n\n          if (baseGlyphId < 0 || accentGlyphId < 0) {\n            continue;\n          }\n\n          var accentOffset = {\n            x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n            y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n          };\n          var charCodes = getCharCodes(mapping, glyphId);\n\n          if (!charCodes) {\n            continue;\n          }\n\n          for (var i = 0, ii = charCodes.length; i < ii; i++) {\n            var charCode = charCodes[i];\n            var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n            var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n            var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n            seacMap[charCode] = {\n              baseFontCharCode: baseFontCharCode,\n              accentFontCharCode: accentFontCharCode,\n              accentOffset: accentOffset\n            };\n          }\n        }\n\n        properties.seacMap = seacMap;\n      }\n\n      var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n      var builder = new OpenTypeFileBuilder('\\x4F\\x54\\x54\\x4F');\n      builder.addTable('CFF ', font.data);\n      builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId));\n      builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n      builder.addTable('head', '\\x00\\x01\\x00\\x00' + '\\x00\\x00\\x10\\x00' + '\\x00\\x00\\x00\\x00' + '\\x5F\\x0F\\x3C\\xF5' + '\\x00\\x00' + safeString16(unitsPerEm) + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00' + safeString16(properties.descent) + '\\x0F\\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\\x00\\x11' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00');\n      builder.addTable('hhea', '\\x00\\x01\\x00\\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\\x00\\x00' + '\\xFF\\xFF' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + string16(numGlyphs));\n      builder.addTable('hmtx', function fontFieldsHmtx() {\n        var charstrings = font.charstrings;\n        var cffWidths = font.cff ? font.cff.widths : null;\n        var hmtx = '\\x00\\x00\\x00\\x00';\n\n        for (var i = 1, ii = numGlyphs; i < ii; i++) {\n          var width = 0;\n\n          if (charstrings) {\n            var charstring = charstrings[i - 1];\n            width = 'width' in charstring ? charstring.width : 0;\n          } else if (cffWidths) {\n            width = Math.ceil(cffWidths[i] || 0);\n          }\n\n          hmtx += string16(width) + string16(0);\n        }\n\n        return hmtx;\n      }());\n      builder.addTable('maxp', '\\x00\\x00\\x50\\x00' + string16(numGlyphs));\n      builder.addTable('name', createNameTable(fontName));\n      builder.addTable('post', createPostTable(properties));\n      return builder.toArray();\n    },\n\n    get spaceWidth() {\n      if ('_shadowWidth' in this) {\n        return this._shadowWidth;\n      }\n\n      var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];\n      var width;\n\n      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n        var glyphName = possibleSpaceReplacements[i];\n\n        if (glyphName in this.widths) {\n          width = this.widths[glyphName];\n          break;\n        }\n\n        var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        var glyphUnicode = glyphsUnicodeMap[glyphName];\n        var charcode = 0;\n\n        if (this.composite) {\n          if (this.cMap.contains(glyphUnicode)) {\n            charcode = this.cMap.lookup(glyphUnicode);\n          }\n        }\n\n        if (!charcode && this.toUnicode) {\n          charcode = this.toUnicode.charCodeOf(glyphUnicode);\n        }\n\n        if (charcode <= 0) {\n          charcode = glyphUnicode;\n        }\n\n        width = this.widths[charcode];\n\n        if (width) {\n          break;\n        }\n      }\n\n      width = width || this.defaultWidth;\n      this._shadowWidth = width;\n      return width;\n    },\n\n    charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n      var fontCharCode, width, operatorListId;\n      var widthCode = charcode;\n\n      if (this.cMap && this.cMap.contains(charcode)) {\n        widthCode = this.cMap.lookup(charcode);\n      }\n\n      width = this.widths[widthCode];\n      width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n      var vmetric = this.vmetrics && this.vmetrics[widthCode];\n      var unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n\n      if (typeof unicode === 'number') {\n        unicode = String.fromCharCode(unicode);\n      }\n\n      var isInFont = charcode in this.toFontChar;\n      fontCharCode = this.toFontChar[charcode] || charcode;\n\n      if (this.missingFile) {\n        fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n      }\n\n      if (this.isType3Font) {\n        operatorListId = fontCharCode;\n      }\n\n      var accent = null;\n\n      if (this.seacMap && this.seacMap[charcode]) {\n        isInFont = true;\n        var seac = this.seacMap[charcode];\n        fontCharCode = seac.baseFontCharCode;\n        accent = {\n          fontChar: String.fromCodePoint(seac.accentFontCharCode),\n          offset: seac.accentOffset\n        };\n      }\n\n      var fontChar = typeof fontCharCode === 'number' ? String.fromCodePoint(fontCharCode) : '';\n      var glyph = this.glyphCache[charcode];\n\n      if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n        glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n        this.glyphCache[charcode] = glyph;\n      }\n\n      return glyph;\n    },\n    charsToGlyphs: function Font_charsToGlyphs(chars) {\n      var charsCache = this.charsCache;\n      var glyphs, glyph, charcode;\n\n      if (charsCache) {\n        glyphs = charsCache[chars];\n\n        if (glyphs) {\n          return glyphs;\n        }\n      }\n\n      if (!charsCache) {\n        charsCache = this.charsCache = Object.create(null);\n      }\n\n      glyphs = [];\n      var charsCacheKey = chars;\n      var i = 0,\n          ii;\n\n      if (this.cMap) {\n        var c = Object.create(null);\n\n        while (i < chars.length) {\n          this.cMap.readCharCode(chars, i, c);\n          charcode = c.charcode;\n          var length = c.length;\n          i += length;\n          var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n          glyph = this.charToGlyph(charcode, isSpace);\n          glyphs.push(glyph);\n        }\n      } else {\n        for (i = 0, ii = chars.length; i < ii; ++i) {\n          charcode = chars.charCodeAt(i);\n          glyph = this.charToGlyph(charcode, charcode === 0x20);\n          glyphs.push(glyph);\n        }\n      }\n\n      return charsCache[charsCacheKey] = glyphs;\n    },\n\n    get glyphCacheValues() {\n      return Object.values(this.glyphCache);\n    }\n\n  };\n  return Font;\n}();\n\nexports.Font = Font;\n\nvar ErrorFont = function ErrorFontClosure() {\n  function ErrorFont(error) {\n    this.error = error;\n    this.loadedName = 'g_font_error';\n    this.missingFile = true;\n  }\n\n  ErrorFont.prototype = {\n    charsToGlyphs: function ErrorFont_charsToGlyphs() {\n      return [];\n    },\n    exportData: function ErrorFont_exportData() {\n      return {\n        error: this.error\n      };\n    }\n  };\n  return ErrorFont;\n}();\n\nexports.ErrorFont = ErrorFont;\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  var charCodeToGlyphId = Object.create(null);\n  var glyphId, charCode, baseEncoding;\n  var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.baseEncodingName) {\n    baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (isSymbolicFont) {\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    baseEncoding = _encodings.StandardEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  var differences = properties.differences,\n      glyphsUnicodeMap;\n\n  if (differences) {\n    for (charCode in differences) {\n      var glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        }\n\n        var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  return charCodeToGlyphId;\n}\n\nvar Type1Font = function Type1FontClosure() {\n  function findBlock(streamBytes, signature, startIndex) {\n    var streamBytesLength = streamBytes.length;\n    var signatureLength = signature.length;\n    var scanLength = streamBytesLength - signatureLength;\n    var i = startIndex,\n        j,\n        found = false;\n\n    while (i < scanLength) {\n      j = 0;\n\n      while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        i += j;\n\n        while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) {\n          i++;\n        }\n\n        found = true;\n        break;\n      }\n\n      i++;\n    }\n\n    return {\n      found: found,\n      length: i\n    };\n  }\n\n  function getHeaderBlock(stream, suggestedLength) {\n    var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n    var streamStartPos = stream.pos;\n    var headerBytes, headerBytesLength, block;\n\n    try {\n      headerBytes = stream.getBytes(suggestedLength);\n      headerBytesLength = headerBytes.length;\n    } catch (ex) {\n      if (ex instanceof _util.MissingDataException) {\n        throw ex;\n      }\n    }\n\n    if (headerBytesLength === suggestedLength) {\n      block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n      if (block.found && block.length === suggestedLength) {\n        return {\n          stream: new _stream.Stream(headerBytes),\n          length: suggestedLength\n        };\n      }\n    }\n\n    (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n    stream.pos = streamStartPos;\n    var SCAN_BLOCK_LENGTH = 2048;\n    var actualLength;\n\n    while (true) {\n      var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n      if (block.length === 0) {\n        break;\n      }\n\n      stream.pos += block.length;\n\n      if (block.found) {\n        actualLength = stream.pos - streamStartPos;\n        break;\n      }\n    }\n\n    stream.pos = streamStartPos;\n\n    if (actualLength) {\n      return {\n        stream: new _stream.Stream(stream.getBytes(actualLength)),\n        length: actualLength\n      };\n    }\n\n    (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n    return {\n      stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n      length: suggestedLength\n    };\n  }\n\n  function getEexecBlock(stream, suggestedLength) {\n    var eexecBytes = stream.getBytes();\n    return {\n      stream: new _stream.Stream(eexecBytes),\n      length: eexecBytes.length\n    };\n  }\n\n  function Type1Font(name, file, properties) {\n    var PFB_HEADER_SIZE = 6;\n    var headerBlockLength = properties.length1;\n    var eexecBlockLength = properties.length2;\n    var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    var headerBlock = getHeaderBlock(file, headerBlockLength);\n    var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    var eexecBlock = getEexecBlock(file, eexecBlockLength);\n    var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n    var data = eexecBlockParser.extractFontProgram();\n\n    for (var info in data.properties) {\n      properties[info] = data.properties[info];\n    }\n\n    var charstrings = data.charstrings;\n    var type2Charstrings = this.getType2Charstrings(charstrings);\n    var subrs = this.getType2Subrs(data.subrs);\n    this.charstrings = charstrings;\n    this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  Type1Font.prototype = {\n    get numGlyphs() {\n      return this.charstrings.length + 1;\n    },\n\n    getCharset: function Type1Font_getCharset() {\n      var charset = ['.notdef'];\n      var charstrings = this.charstrings;\n\n      for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        charset.push(charstrings[glyphId].glyphName);\n      }\n\n      return charset;\n    },\n    getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n      var charstrings = this.charstrings;\n      var glyphNames = ['.notdef'],\n          glyphId;\n\n      for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        glyphNames.push(charstrings[glyphId].glyphName);\n      }\n\n      var encoding = properties.builtInEncoding;\n\n      if (encoding) {\n        var builtInEncoding = Object.create(null);\n\n        for (var charCode in encoding) {\n          glyphId = glyphNames.indexOf(encoding[charCode]);\n\n          if (glyphId >= 0) {\n            builtInEncoding[charCode] = glyphId;\n          }\n        }\n      }\n\n      return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n    },\n    hasGlyphId: function Type1Font_hasGlyphID(id) {\n      if (id < 0 || id >= this.numGlyphs) {\n        return false;\n      }\n\n      if (id === 0) {\n        return true;\n      }\n\n      var glyph = this.charstrings[id - 1];\n      return glyph.charstring.length > 0;\n    },\n    getSeacs: function Type1Font_getSeacs(charstrings) {\n      var i, ii;\n      var seacMap = [];\n\n      for (i = 0, ii = charstrings.length; i < ii; i++) {\n        var charstring = charstrings[i];\n\n        if (charstring.seac) {\n          seacMap[i + 1] = charstring.seac;\n        }\n      }\n\n      return seacMap;\n    },\n    getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n      var type2Charstrings = [];\n\n      for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n        type2Charstrings.push(type1Charstrings[i].charstring);\n      }\n\n      return type2Charstrings;\n    },\n    getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n      var bias = 0;\n      var count = type1Subrs.length;\n\n      if (count < 1133) {\n        bias = 107;\n      } else if (count < 33769) {\n        bias = 1131;\n      } else {\n        bias = 32768;\n      }\n\n      var type2Subrs = [];\n      var i;\n\n      for (i = 0; i < bias; i++) {\n        type2Subrs.push([0x0B]);\n      }\n\n      for (i = 0; i < count; i++) {\n        type2Subrs.push(type1Subrs[i]);\n      }\n\n      return type2Subrs;\n    },\n    wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n      var cff = new _cff_parser.CFF();\n      cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n      cff.names = [name];\n      var topDict = new _cff_parser.CFFTopDict();\n      topDict.setByName('version', 391);\n      topDict.setByName('Notice', 392);\n      topDict.setByName('FullName', 393);\n      topDict.setByName('FamilyName', 394);\n      topDict.setByName('Weight', 395);\n      topDict.setByName('Encoding', null);\n      topDict.setByName('FontMatrix', properties.fontMatrix);\n      topDict.setByName('FontBBox', properties.bbox);\n      topDict.setByName('charset', null);\n      topDict.setByName('CharStrings', null);\n      topDict.setByName('Private', null);\n      cff.topDict = topDict;\n      var strings = new _cff_parser.CFFStrings();\n      strings.add('Version 0.11');\n      strings.add('See original notice');\n      strings.add(name);\n      strings.add(name);\n      strings.add('Medium');\n      cff.strings = strings;\n      cff.globalSubrIndex = new _cff_parser.CFFIndex();\n      var count = glyphs.length;\n      var charsetArray = [0];\n      var i, ii;\n\n      for (i = 0; i < count; i++) {\n        var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);\n\n        if (index === -1) {\n          index = 0;\n        }\n\n        charsetArray.push(index >> 8 & 0xff, index & 0xff);\n      }\n\n      cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);\n      var charStringsIndex = new _cff_parser.CFFIndex();\n      charStringsIndex.add([0x8B, 0x0E]);\n\n      for (i = 0; i < count; i++) {\n        charStringsIndex.add(glyphs[i]);\n      }\n\n      cff.charStrings = charStringsIndex;\n      var privateDict = new _cff_parser.CFFPrivateDict();\n      privateDict.setByName('Subrs', null);\n      var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW'];\n\n      for (i = 0, ii = fields.length; i < ii; i++) {\n        var field = fields[i];\n\n        if (!(field in properties.privateData)) {\n          continue;\n        }\n\n        var value = properties.privateData[field];\n\n        if (Array.isArray(value)) {\n          for (var j = value.length - 1; j > 0; j--) {\n            value[j] -= value[j - 1];\n          }\n        }\n\n        privateDict.setByName(field, value);\n      }\n\n      cff.topDict.privateDict = privateDict;\n      var subrIndex = new _cff_parser.CFFIndex();\n\n      for (i = 0, ii = subrs.length; i < ii; i++) {\n        subrIndex.add(subrs[i]);\n      }\n\n      privateDict.subrsIndex = subrIndex;\n      var compiler = new _cff_parser.CFFCompiler(cff);\n      return compiler.compile();\n    }\n  };\n  return Type1Font;\n}();\n\nvar CFFFont = function CFFFontClosure() {\n  function CFFFont(file, properties) {\n    this.properties = properties;\n    var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    var compiler = new _cff_parser.CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n      this.data = file;\n    }\n  }\n\n  CFFFont.prototype = {\n    get numGlyphs() {\n      return this.cff.charStrings.count;\n    },\n\n    getCharset: function CFFFont_getCharset() {\n      return this.cff.charset.charset;\n    },\n    getGlyphMapping: function CFFFont_getGlyphMapping() {\n      var cff = this.cff;\n      var properties = this.properties;\n      var charsets = cff.charset.charset;\n      var charCodeToGlyphId;\n      var glyphId;\n\n      if (properties.composite) {\n        charCodeToGlyphId = Object.create(null);\n\n        if (cff.isCIDFont) {\n          for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n            var cid = charsets[glyphId];\n            var charCode = properties.cMap.charCodeOf(cid);\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        } else {\n          for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n            charCodeToGlyphId[glyphId] = glyphId;\n          }\n        }\n\n        return charCodeToGlyphId;\n      }\n\n      var encoding = cff.encoding ? cff.encoding.encoding : null;\n      charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n      return charCodeToGlyphId;\n    },\n    hasGlyphId: function CFFFont_hasGlyphID(id) {\n      return this.cff.hasGlyphId(id);\n    }\n  };\n  return CFFFont;\n}();\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _charsets = __w_pdfjs_require__(175);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];\nexports.CFFStandardStrings = CFFStandardStrings;\n\nvar CFFParser = function CFFParserClosure() {\n  var CharstringValidationData = [null, {\n    id: 'hstem',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, null, {\n    id: 'vstem',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'vmoveto',\n    min: 1,\n    stackClearing: true\n  }, {\n    id: 'rlineto',\n    min: 2,\n    resetStack: true\n  }, {\n    id: 'hlineto',\n    min: 1,\n    resetStack: true\n  }, {\n    id: 'vlineto',\n    min: 1,\n    resetStack: true\n  }, {\n    id: 'rrcurveto',\n    min: 6,\n    resetStack: true\n  }, null, {\n    id: 'callsubr',\n    min: 1,\n    undefStack: true\n  }, {\n    id: 'return',\n    min: 0,\n    undefStack: true\n  }, null, null, {\n    id: 'endchar',\n    min: 0,\n    stackClearing: true\n  }, null, null, null, {\n    id: 'hstemhm',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'hintmask',\n    min: 0,\n    stackClearing: true\n  }, {\n    id: 'cntrmask',\n    min: 0,\n    stackClearing: true\n  }, {\n    id: 'rmoveto',\n    min: 2,\n    stackClearing: true\n  }, {\n    id: 'hmoveto',\n    min: 1,\n    stackClearing: true\n  }, {\n    id: 'vstemhm',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'rcurveline',\n    min: 8,\n    resetStack: true\n  }, {\n    id: 'rlinecurve',\n    min: 8,\n    resetStack: true\n  }, {\n    id: 'vvcurveto',\n    min: 4,\n    resetStack: true\n  }, {\n    id: 'hhcurveto',\n    min: 4,\n    resetStack: true\n  }, null, {\n    id: 'callgsubr',\n    min: 1,\n    undefStack: true\n  }, {\n    id: 'vhcurveto',\n    min: 4,\n    resetStack: true\n  }, {\n    id: 'hvcurveto',\n    min: 4,\n    resetStack: true\n  }];\n  var CharstringValidationData12 = [null, null, null, {\n    id: 'and',\n    min: 2,\n    stackDelta: -1\n  }, {\n    id: 'or',\n    min: 2,\n    stackDelta: -1\n  }, {\n    id: 'not',\n    min: 1,\n    stackDelta: 0\n  }, null, null, null, {\n    id: 'abs',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'add',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] + stack[index - 1];\n    }\n  }, {\n    id: 'sub',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] - stack[index - 1];\n    }\n  }, {\n    id: 'div',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] / stack[index - 1];\n    }\n  }, null, {\n    id: 'neg',\n    min: 1,\n    stackDelta: 0,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 1] = -stack[index - 1];\n    }\n  }, {\n    id: 'eq',\n    min: 2,\n    stackDelta: -1\n  }, null, null, {\n    id: 'drop',\n    min: 1,\n    stackDelta: -1\n  }, null, {\n    id: 'put',\n    min: 2,\n    stackDelta: -2\n  }, {\n    id: 'get',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'ifelse',\n    min: 4,\n    stackDelta: -3\n  }, {\n    id: 'random',\n    min: 0,\n    stackDelta: 1\n  }, {\n    id: 'mul',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] * stack[index - 1];\n    }\n  }, null, {\n    id: 'sqrt',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'dup',\n    min: 1,\n    stackDelta: 1\n  }, {\n    id: 'exch',\n    min: 2,\n    stackDelta: 0\n  }, {\n    id: 'index',\n    min: 2,\n    stackDelta: 0\n  }, {\n    id: 'roll',\n    min: 3,\n    stackDelta: -2\n  }, null, null, null, {\n    id: 'hflex',\n    min: 7,\n    resetStack: true\n  }, {\n    id: 'flex',\n    min: 13,\n    resetStack: true\n  }, {\n    id: 'hflex1',\n    min: 9,\n    resetStack: true\n  }, {\n    id: 'flex1',\n    min: 11,\n    resetStack: true\n  }];\n\n  function CFFParser(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n\n  CFFParser.prototype = {\n    parse: function CFFParser_parse() {\n      var properties = this.properties;\n      var cff = new CFF();\n      this.cff = cff;\n      var header = this.parseHeader();\n      var nameIndex = this.parseIndex(header.endPos);\n      var topDictIndex = this.parseIndex(nameIndex.endPos);\n      var stringIndex = this.parseIndex(topDictIndex.endPos);\n      var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n      cff.header = header.obj;\n      cff.names = this.parseNameIndex(nameIndex.obj);\n      cff.strings = this.parseStringIndex(stringIndex.obj);\n      cff.topDict = topDict;\n      cff.globalSubrIndex = globalSubrIndex.obj;\n      this.parsePrivateDict(cff.topDict);\n      cff.isCIDFont = topDict.hasName('ROS');\n      var charStringOffset = topDict.getByName('CharStrings');\n      var charStringIndex = this.parseIndex(charStringOffset).obj;\n      var fontMatrix = topDict.getByName('FontMatrix');\n\n      if (fontMatrix) {\n        properties.fontMatrix = fontMatrix;\n      }\n\n      var fontBBox = topDict.getByName('FontBBox');\n\n      if (fontBBox) {\n        properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n        properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n        properties.ascentScaled = true;\n      }\n\n      var charset, encoding;\n\n      if (cff.isCIDFont) {\n        var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n\n        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n          var dictRaw = fdArrayIndex.get(i);\n          var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n          this.parsePrivateDict(fontDict);\n          cff.fdArray.push(fontDict);\n        }\n\n        encoding = null;\n        charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true);\n        cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count);\n      } else {\n        charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false);\n        encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset);\n      }\n\n      cff.charset = charset;\n      cff.encoding = encoding;\n      var charStringsAndSeacs = this.parseCharStrings({\n        charStrings: charStringIndex,\n        localSubrIndex: topDict.privateDict.subrsIndex,\n        globalSubrIndex: globalSubrIndex.obj,\n        fdSelect: cff.fdSelect,\n        fdArray: cff.fdArray,\n        privateDict: topDict.privateDict\n      });\n      cff.charStrings = charStringsAndSeacs.charStrings;\n      cff.seacs = charStringsAndSeacs.seacs;\n      cff.widths = charStringsAndSeacs.widths;\n      return cff;\n    },\n    parseHeader: function CFFParser_parseHeader() {\n      var bytes = this.bytes;\n      var bytesLength = bytes.length;\n      var offset = 0;\n\n      while (offset < bytesLength && bytes[offset] !== 1) {\n        ++offset;\n      }\n\n      if (offset >= bytesLength) {\n        throw new _util.FormatError('Invalid CFF header');\n      }\n\n      if (offset !== 0) {\n        (0, _util.info)('cff data is shifted');\n        bytes = bytes.subarray(offset);\n        this.bytes = bytes;\n      }\n\n      var major = bytes[0];\n      var minor = bytes[1];\n      var hdrSize = bytes[2];\n      var offSize = bytes[3];\n      var header = new CFFHeader(major, minor, hdrSize, offSize);\n      return {\n        obj: header,\n        endPos: hdrSize\n      };\n    },\n    parseDict: function CFFParser_parseDict(dict) {\n      var pos = 0;\n\n      function parseOperand() {\n        var value = dict[pos++];\n\n        if (value === 30) {\n          return parseFloatOperand();\n        } else if (value === 28) {\n          value = dict[pos++];\n          value = (value << 24 | dict[pos++] << 16) >> 16;\n          return value;\n        } else if (value === 29) {\n          value = dict[pos++];\n          value = value << 8 | dict[pos++];\n          value = value << 8 | dict[pos++];\n          value = value << 8 | dict[pos++];\n          return value;\n        } else if (value >= 32 && value <= 246) {\n          return value - 139;\n        } else if (value >= 247 && value <= 250) {\n          return (value - 247) * 256 + dict[pos++] + 108;\n        } else if (value >= 251 && value <= 254) {\n          return -((value - 251) * 256) - dict[pos++] - 108;\n        }\n\n        (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n        return NaN;\n      }\n\n      function parseFloatOperand() {\n        var str = '';\n        var eof = 15;\n        var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n        var length = dict.length;\n\n        while (pos < length) {\n          var b = dict[pos++];\n          var b1 = b >> 4;\n          var b2 = b & 15;\n\n          if (b1 === eof) {\n            break;\n          }\n\n          str += lookup[b1];\n\n          if (b2 === eof) {\n            break;\n          }\n\n          str += lookup[b2];\n        }\n\n        return parseFloat(str);\n      }\n\n      var operands = [];\n      var entries = [];\n      pos = 0;\n      var end = dict.length;\n\n      while (pos < end) {\n        var b = dict[pos];\n\n        if (b <= 21) {\n          if (b === 12) {\n            b = b << 8 | dict[++pos];\n          }\n\n          entries.push([b, operands]);\n          operands = [];\n          ++pos;\n        } else {\n          operands.push(parseOperand());\n        }\n      }\n\n      return entries;\n    },\n    parseIndex: function CFFParser_parseIndex(pos) {\n      var cffIndex = new CFFIndex();\n      var bytes = this.bytes;\n      var count = bytes[pos++] << 8 | bytes[pos++];\n      var offsets = [];\n      var end = pos;\n      var i, ii;\n\n      if (count !== 0) {\n        var offsetSize = bytes[pos++];\n        var startPos = pos + (count + 1) * offsetSize - 1;\n\n        for (i = 0, ii = count + 1; i < ii; ++i) {\n          var offset = 0;\n\n          for (var j = 0; j < offsetSize; ++j) {\n            offset <<= 8;\n            offset += bytes[pos++];\n          }\n\n          offsets.push(startPos + offset);\n        }\n\n        end = offsets[count];\n      }\n\n      for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n        var offsetStart = offsets[i];\n        var offsetEnd = offsets[i + 1];\n        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n      }\n\n      return {\n        obj: cffIndex,\n        endPos: end\n      };\n    },\n    parseNameIndex: function CFFParser_parseNameIndex(index) {\n      var names = [];\n\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var name = index.get(i);\n        names.push((0, _util.bytesToString)(name));\n      }\n\n      return names;\n    },\n    parseStringIndex: function CFFParser_parseStringIndex(index) {\n      var strings = new CFFStrings();\n\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var data = index.get(i);\n        strings.add((0, _util.bytesToString)(data));\n      }\n\n      return strings;\n    },\n    createDict: function CFFParser_createDict(Type, dict, strings) {\n      var cffDict = new Type(strings);\n\n      for (var i = 0, ii = dict.length; i < ii; ++i) {\n        var pair = dict[i];\n        var key = pair[0];\n        var value = pair[1];\n        cffDict.setByKey(key, value);\n      }\n\n      return cffDict;\n    },\n    parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n      if (!data || state.callDepth > MAX_SUBR_NESTING) {\n        return false;\n      }\n\n      var stackSize = state.stackSize;\n      var stack = state.stack;\n      var length = data.length;\n\n      for (var j = 0; j < length;) {\n        var value = data[j++];\n        var validationCommand = null;\n\n        if (value === 12) {\n          var q = data[j++];\n\n          if (q === 0) {\n            data[j - 2] = 139;\n            data[j - 1] = 22;\n            stackSize = 0;\n          } else {\n            validationCommand = CharstringValidationData12[q];\n          }\n        } else if (value === 28) {\n          stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n          j += 2;\n          stackSize++;\n        } else if (value === 14) {\n          if (stackSize >= 4) {\n            stackSize -= 4;\n\n            if (this.seacAnalysisEnabled) {\n              state.seac = stack.slice(stackSize, stackSize + 4);\n              return false;\n            }\n          }\n\n          validationCommand = CharstringValidationData[value];\n        } else if (value >= 32 && value <= 246) {\n          stack[stackSize] = value - 139;\n          stackSize++;\n        } else if (value >= 247 && value <= 254) {\n          stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n          j++;\n          stackSize++;\n        } else if (value === 255) {\n          stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n          j += 4;\n          stackSize++;\n        } else if (value === 19 || value === 20) {\n          state.hints += stackSize >> 1;\n          j += state.hints + 7 >> 3;\n          stackSize %= 2;\n          validationCommand = CharstringValidationData[value];\n        } else if (value === 10 || value === 29) {\n          var subrsIndex;\n\n          if (value === 10) {\n            subrsIndex = localSubrIndex;\n          } else {\n            subrsIndex = globalSubrIndex;\n          }\n\n          if (!subrsIndex) {\n            validationCommand = CharstringValidationData[value];\n            (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id);\n            return false;\n          }\n\n          var bias = 32768;\n\n          if (subrsIndex.count < 1240) {\n            bias = 107;\n          } else if (subrsIndex.count < 33900) {\n            bias = 1131;\n          }\n\n          var subrNumber = stack[--stackSize] + bias;\n\n          if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n            validationCommand = CharstringValidationData[value];\n            (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id);\n            return false;\n          }\n\n          state.stackSize = stackSize;\n          state.callDepth++;\n          var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n          if (!valid) {\n            return false;\n          }\n\n          state.callDepth--;\n          stackSize = state.stackSize;\n          continue;\n        } else if (value === 11) {\n          state.stackSize = stackSize;\n          return true;\n        } else {\n          validationCommand = CharstringValidationData[value];\n        }\n\n        if (validationCommand) {\n          if (validationCommand.stem) {\n            state.hints += stackSize >> 1;\n\n            if (value === 3 || value === 23) {\n              state.hasVStems = true;\n            } else if (state.hasVStems && (value === 1 || value === 18)) {\n              (0, _util.warn)('CFF stem hints are in wrong order');\n              data[j - 1] = value === 1 ? 3 : 23;\n            }\n          }\n\n          if ('min' in validationCommand) {\n            if (!state.undefStack && stackSize < validationCommand.min) {\n              (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min);\n              return false;\n            }\n          }\n\n          if (state.firstStackClearing && validationCommand.stackClearing) {\n            state.firstStackClearing = false;\n            stackSize -= validationCommand.min;\n\n            if (stackSize >= 2 && validationCommand.stem) {\n              stackSize %= 2;\n            } else if (stackSize > 1) {\n              (0, _util.warn)('Found too many parameters for stack-clearing command');\n            }\n\n            if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n              state.width = stack[stackSize - 1];\n            }\n          }\n\n          if ('stackDelta' in validationCommand) {\n            if ('stackFn' in validationCommand) {\n              validationCommand.stackFn(stack, stackSize);\n            }\n\n            stackSize += validationCommand.stackDelta;\n          } else if (validationCommand.stackClearing) {\n            stackSize = 0;\n          } else if (validationCommand.resetStack) {\n            stackSize = 0;\n            state.undefStack = false;\n          } else if (validationCommand.undefStack) {\n            stackSize = 0;\n            state.undefStack = true;\n            state.firstStackClearing = false;\n          }\n        }\n      }\n\n      state.stackSize = stackSize;\n      return true;\n    },\n    parseCharStrings: function parseCharStrings(_ref) {\n      var charStrings = _ref.charStrings,\n          localSubrIndex = _ref.localSubrIndex,\n          globalSubrIndex = _ref.globalSubrIndex,\n          fdSelect = _ref.fdSelect,\n          fdArray = _ref.fdArray,\n          privateDict = _ref.privateDict;\n      var seacs = [];\n      var widths = [];\n      var count = charStrings.count;\n\n      for (var i = 0; i < count; i++) {\n        var charstring = charStrings.get(i);\n        var state = {\n          callDepth: 0,\n          stackSize: 0,\n          stack: [],\n          undefStack: true,\n          hints: 0,\n          firstStackClearing: true,\n          seac: null,\n          width: null,\n          hasVStems: false\n        };\n        var valid = true;\n        var localSubrToUse = null;\n        var privateDictToUse = privateDict;\n\n        if (fdSelect && fdArray.length) {\n          var fdIndex = fdSelect.getFDIndex(i);\n\n          if (fdIndex === -1) {\n            (0, _util.warn)('Glyph index is not in fd select.');\n            valid = false;\n          }\n\n          if (fdIndex >= fdArray.length) {\n            (0, _util.warn)('Invalid fd index for glyph index.');\n            valid = false;\n          }\n\n          if (valid) {\n            privateDictToUse = fdArray[fdIndex].privateDict;\n            localSubrToUse = privateDictToUse.subrsIndex;\n          }\n        } else if (localSubrIndex) {\n          localSubrToUse = localSubrIndex;\n        }\n\n        if (valid) {\n          valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n        }\n\n        if (state.width !== null) {\n          var nominalWidth = privateDictToUse.getByName('nominalWidthX');\n          widths[i] = nominalWidth + state.width;\n        } else {\n          var defaultWidth = privateDictToUse.getByName('defaultWidthX');\n          widths[i] = defaultWidth;\n        }\n\n        if (state.seac !== null) {\n          seacs[i] = state.seac;\n        }\n\n        if (!valid) {\n          charStrings.set(i, new Uint8Array([14]));\n        }\n      }\n\n      return {\n        charStrings: charStrings,\n        seacs: seacs,\n        widths: widths\n      };\n    },\n    emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n      var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n      parentDict.setByKey(18, [0, 0]);\n      parentDict.privateDict = privateDict;\n    },\n    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n      if (!parentDict.hasName('Private')) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateOffset = parentDict.getByName('Private');\n\n      if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n        parentDict.removeByName('Private');\n        return;\n      }\n\n      var size = privateOffset[0];\n      var offset = privateOffset[1];\n\n      if (size === 0 || offset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateDictEnd = offset + size;\n      var dictData = this.bytes.subarray(offset, privateDictEnd);\n      var dict = this.parseDict(dictData);\n      var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n      parentDict.privateDict = privateDict;\n\n      if (!privateDict.getByName('Subrs')) {\n        return;\n      }\n\n      var subrsOffset = privateDict.getByName('Subrs');\n      var relativeOffset = offset + subrsOffset;\n\n      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var subrsIndex = this.parseIndex(relativeOffset);\n      privateDict.subrsIndex = subrsIndex.obj;\n    },\n    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n      if (pos === 0) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n      } else if (pos === 1) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n      } else if (pos === 2) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n      }\n\n      var bytes = this.bytes;\n      var start = pos;\n      var format = bytes[pos++];\n      var charset = ['.notdef'];\n      var id, count, i;\n      length -= 1;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; i++) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            charset.push(cid ? id : strings.get(id));\n          }\n\n          break;\n\n        case 1:\n          while (charset.length <= length) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            count = bytes[pos++];\n\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n\n          break;\n\n        case 2:\n          while (charset.length <= length) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            count = bytes[pos++] << 8 | bytes[pos++];\n\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError('Unknown charset format');\n      }\n\n      var end = pos;\n      var raw = bytes.subarray(start, end);\n      return new CFFCharset(false, format, charset, raw);\n    },\n    parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n      var encoding = Object.create(null);\n      var bytes = this.bytes;\n      var predefined = false;\n      var format, i, ii;\n      var raw = null;\n\n      function readSupplement() {\n        var supplementsCount = bytes[pos++];\n\n        for (i = 0; i < supplementsCount; i++) {\n          var code = bytes[pos++];\n          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n          encoding[code] = charset.indexOf(strings.get(sid));\n        }\n      }\n\n      if (pos === 0 || pos === 1) {\n        predefined = true;\n        format = pos;\n        var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n        for (i = 0, ii = charset.length; i < ii; i++) {\n          var index = baseEncoding.indexOf(charset[i]);\n\n          if (index !== -1) {\n            encoding[index] = i;\n          }\n        }\n      } else {\n        var dataStart = pos;\n        format = bytes[pos++];\n\n        switch (format & 0x7f) {\n          case 0:\n            var glyphsCount = bytes[pos++];\n\n            for (i = 1; i <= glyphsCount; i++) {\n              encoding[bytes[pos++]] = i;\n            }\n\n            break;\n\n          case 1:\n            var rangesCount = bytes[pos++];\n            var gid = 1;\n\n            for (i = 0; i < rangesCount; i++) {\n              var start = bytes[pos++];\n              var left = bytes[pos++];\n\n              for (var j = start; j <= start + left; j++) {\n                encoding[j] = gid++;\n              }\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(\"Unknown encoding format: \".concat(format, \" in CFF\"));\n        }\n\n        var dataEnd = pos;\n\n        if (format & 0x80) {\n          bytes[dataStart] &= 0x7f;\n          readSupplement();\n        }\n\n        raw = bytes.subarray(dataStart, dataEnd);\n      }\n\n      format = format & 0x7f;\n      return new CFFEncoding(predefined, format, encoding, raw);\n    },\n    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n      var bytes = this.bytes;\n      var format = bytes[pos++];\n      var fdSelect = [];\n      var i;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; ++i) {\n            var id = bytes[pos++];\n            fdSelect.push(id);\n          }\n\n          break;\n\n        case 3:\n          var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n          for (i = 0; i < rangesCount; ++i) {\n            var first = bytes[pos++] << 8 | bytes[pos++];\n\n            if (i === 0 && first !== 0) {\n              (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.');\n              first = 0;\n            }\n\n            var fdIndex = bytes[pos++];\n            var next = bytes[pos] << 8 | bytes[pos + 1];\n\n            for (var j = first; j < next; ++j) {\n              fdSelect.push(fdIndex);\n            }\n          }\n\n          pos += 2;\n          break;\n\n        default:\n          throw new _util.FormatError(\"parseFDSelect: Unknown format \\\"\".concat(format, \"\\\".\"));\n      }\n\n      if (fdSelect.length !== length) {\n        throw new _util.FormatError('parseFDSelect: Invalid font data.');\n      }\n\n      return new CFFFDSelect(format, fdSelect);\n    }\n  };\n  return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nvar CFF = function CFFClosure() {\n  function CFF() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n    this.isCIDFont = false;\n  }\n\n  CFF.prototype = {\n    duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n      if (this.charStrings.count >= 65535) {\n        (0, _util.warn)('Not enough space in charstrings to duplicate first glyph.');\n        return;\n      }\n\n      var glyphZero = this.charStrings.get(0);\n      this.charStrings.add(glyphZero);\n\n      if (this.isCIDFont) {\n        this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n      }\n    },\n    hasGlyphId: function CFF_hasGlyphID(id) {\n      if (id < 0 || id >= this.charStrings.count) {\n        return false;\n      }\n\n      var glyph = this.charStrings.get(id);\n      return glyph.length > 0;\n    }\n  };\n  return CFF;\n}();\n\nexports.CFF = CFF;\n\nvar CFFHeader = function CFFHeaderClosure() {\n  function CFFHeader(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n\n  return CFFHeader;\n}();\n\nexports.CFFHeader = CFFHeader;\n\nvar CFFStrings = function CFFStringsClosure() {\n  function CFFStrings() {\n    this.strings = [];\n  }\n\n  CFFStrings.prototype = {\n    get: function CFFStrings_get(index) {\n      if (index >= 0 && index <= 390) {\n        return CFFStandardStrings[index];\n      }\n\n      if (index - 391 <= this.strings.length) {\n        return this.strings[index - 391];\n      }\n\n      return CFFStandardStrings[0];\n    },\n    add: function CFFStrings_add(value) {\n      this.strings.push(value);\n    },\n\n    get count() {\n      return this.strings.length;\n    }\n\n  };\n  return CFFStrings;\n}();\n\nexports.CFFStrings = CFFStrings;\n\nvar CFFIndex = function CFFIndexClosure() {\n  function CFFIndex() {\n    this.objects = [];\n    this.length = 0;\n  }\n\n  CFFIndex.prototype = {\n    add: function CFFIndex_add(data) {\n      this.length += data.length;\n      this.objects.push(data);\n    },\n    set: function CFFIndex_set(index, data) {\n      this.length += data.length - this.objects[index].length;\n      this.objects[index] = data;\n    },\n    get: function CFFIndex_get(index) {\n      return this.objects[index];\n    },\n\n    get count() {\n      return this.objects.length;\n    }\n\n  };\n  return CFFIndex;\n}();\n\nexports.CFFIndex = CFFIndex;\n\nvar CFFDict = function CFFDictClosure() {\n  function CFFDict(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n\n  CFFDict.prototype = {\n    setByKey: function CFFDict_setByKey(key, value) {\n      if (!(key in this.keyToNameMap)) {\n        return false;\n      }\n\n      var valueLength = value.length;\n\n      if (valueLength === 0) {\n        return true;\n      }\n\n      for (var i = 0; i < valueLength; i++) {\n        if (isNaN(value[i])) {\n          (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n          return true;\n        }\n      }\n\n      var type = this.types[key];\n\n      if (type === 'num' || type === 'sid' || type === 'offset') {\n        value = value[0];\n      }\n\n      this.values[key] = value;\n      return true;\n    },\n    setByName: function CFFDict_setByName(name, value) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new _util.FormatError(\"Invalid dictionary name \\\"\".concat(name, \"\\\"\"));\n      }\n\n      this.values[this.nameToKeyMap[name]] = value;\n    },\n    hasName: function CFFDict_hasName(name) {\n      return this.nameToKeyMap[name] in this.values;\n    },\n    getByName: function CFFDict_getByName(name) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new _util.FormatError(\"Invalid dictionary name \".concat(name, \"\\\"\"));\n      }\n\n      var key = this.nameToKeyMap[name];\n\n      if (!(key in this.values)) {\n        return this.defaults[key];\n      }\n\n      return this.values[key];\n    },\n    removeByName: function CFFDict_removeByName(name) {\n      delete this.values[this.nameToKeyMap[name]];\n    }\n  };\n\n  CFFDict.createTables = function CFFDict_createTables(layout) {\n    var tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n\n    for (var i = 0, ii = layout.length; i < ii; ++i) {\n      var entry = layout[i];\n      var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n\n    return tables;\n  };\n\n  return CFFDict;\n}();\n\nvar CFFTopDict = function CFFTopDictClosure() {\n  var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]];\n  var tables = null;\n\n  function CFFTopDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n\n    CFFDict.call(this, tables, strings);\n    this.privateDict = null;\n  }\n\n  CFFTopDict.prototype = Object.create(CFFDict.prototype);\n  return CFFTopDict;\n}();\n\nexports.CFFTopDict = CFFTopDict;\n\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n  var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]];\n  var tables = null;\n\n  function CFFPrivateDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n\n    CFFDict.call(this, tables, strings);\n    this.subrsIndex = null;\n  }\n\n  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n  return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\n\nvar CFFCharset = function CFFCharsetClosure() {\n  function CFFCharset(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n\n  return CFFCharset;\n}();\n\nexports.CFFCharset = CFFCharset;\n\nvar CFFEncoding = function CFFEncodingClosure() {\n  function CFFEncoding(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n\n  return CFFEncoding;\n}();\n\nvar CFFFDSelect = function CFFFDSelectClosure() {\n  function CFFFDSelect(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n\n  CFFFDSelect.prototype = {\n    getFDIndex: function CFFFDSelect_get(glyphIndex) {\n      if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n        return -1;\n      }\n\n      return this.fdSelect[glyphIndex];\n    }\n  };\n  return CFFFDSelect;\n}();\n\nexports.CFFFDSelect = CFFFDSelect;\n\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n  function CFFOffsetTracker() {\n    this.offsets = Object.create(null);\n  }\n\n  CFFOffsetTracker.prototype = {\n    isTracking: function CFFOffsetTracker_isTracking(key) {\n      return key in this.offsets;\n    },\n    track: function CFFOffsetTracker_track(key, location) {\n      if (key in this.offsets) {\n        throw new _util.FormatError(\"Already tracking location of \".concat(key));\n      }\n\n      this.offsets[key] = location;\n    },\n    offset: function CFFOffsetTracker_offset(value) {\n      for (var key in this.offsets) {\n        this.offsets[key] += value;\n      }\n    },\n    setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n      if (!(key in this.offsets)) {\n        throw new _util.FormatError(\"Not tracking location of \".concat(key));\n      }\n\n      var data = output.data;\n      var dataOffset = this.offsets[key];\n      var size = 5;\n\n      for (var i = 0, ii = values.length; i < ii; ++i) {\n        var offset0 = i * size + dataOffset;\n        var offset1 = offset0 + 1;\n        var offset2 = offset0 + 2;\n        var offset3 = offset0 + 3;\n        var offset4 = offset0 + 4;\n\n        if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n          throw new _util.FormatError('writing to an offset that is not empty');\n        }\n\n        var value = values[i];\n        data[offset0] = 0x1d;\n        data[offset1] = value >> 24 & 0xFF;\n        data[offset2] = value >> 16 & 0xFF;\n        data[offset3] = value >> 8 & 0xFF;\n        data[offset4] = value & 0xFF;\n      }\n    }\n  };\n  return CFFOffsetTracker;\n}();\n\nvar CFFCompiler = function CFFCompilerClosure() {\n  function CFFCompiler(cff) {\n    this.cff = cff;\n  }\n\n  CFFCompiler.prototype = {\n    compile: function CFFCompiler_compile() {\n      var cff = this.cff;\n      var output = {\n        data: [],\n        length: 0,\n        add: function CFFCompiler_add(data) {\n          this.data = this.data.concat(data);\n          this.length = this.data.length;\n        }\n      };\n      var header = this.compileHeader(cff.header);\n      output.add(header);\n      var nameIndex = this.compileNameIndex(cff.names);\n      output.add(nameIndex);\n\n      if (cff.isCIDFont) {\n        if (cff.topDict.hasName('FontMatrix')) {\n          var base = cff.topDict.getByName('FontMatrix');\n          cff.topDict.removeByName('FontMatrix');\n\n          for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n            var subDict = cff.fdArray[i];\n            var matrix = base.slice(0);\n\n            if (subDict.hasName('FontMatrix')) {\n              matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix'));\n            }\n\n            subDict.setByName('FontMatrix', matrix);\n          }\n        }\n      }\n\n      cff.topDict.setByName('charset', 0);\n      var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n      output.add(compiled.output);\n      var topDictTracker = compiled.trackers[0];\n      var stringIndex = this.compileStringIndex(cff.strings.strings);\n      output.add(stringIndex);\n      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n      output.add(globalSubrIndex);\n\n      if (cff.encoding && cff.topDict.hasName('Encoding')) {\n        if (cff.encoding.predefined) {\n          topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output);\n        } else {\n          var encoding = this.compileEncoding(cff.encoding);\n          topDictTracker.setEntryLocation('Encoding', [output.length], output);\n          output.add(encoding);\n        }\n      }\n\n      var charset = this.compileCharset(cff.charset);\n      topDictTracker.setEntryLocation('charset', [output.length], output);\n      output.add(charset);\n      var charStrings = this.compileCharStrings(cff.charStrings);\n      topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n      output.add(charStrings);\n\n      if (cff.isCIDFont) {\n        topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n        var fdSelect = this.compileFDSelect(cff.fdSelect);\n        output.add(fdSelect);\n        compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n        topDictTracker.setEntryLocation('FDArray', [output.length], output);\n        output.add(compiled.output);\n        var fontDictTrackers = compiled.trackers;\n        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n      }\n\n      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n      output.add([0]);\n      return output.data;\n    },\n    encodeNumber: function CFFCompiler_encodeNumber(value) {\n      if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n        return this.encodeInteger(value);\n      }\n\n      return this.encodeFloat(value);\n    },\n    encodeFloat: function CFFCompiler_encodeFloat(num) {\n      var value = num.toString();\n      var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n\n      if (m) {\n        var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n        value = (Math.round(num * epsilon) / epsilon).toString();\n      }\n\n      var nibbles = '';\n      var i, ii;\n\n      for (i = 0, ii = value.length; i < ii; ++i) {\n        var a = value[i];\n\n        if (a === 'e') {\n          nibbles += value[++i] === '-' ? 'c' : 'b';\n        } else if (a === '.') {\n          nibbles += 'a';\n        } else if (a === '-') {\n          nibbles += 'e';\n        } else {\n          nibbles += a;\n        }\n      }\n\n      nibbles += nibbles.length & 1 ? 'f' : 'ff';\n      var out = [30];\n\n      for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n        out.push(parseInt(nibbles.substring(i, i + 2), 16));\n      }\n\n      return out;\n    },\n    encodeInteger: function CFFCompiler_encodeInteger(value) {\n      var code;\n\n      if (value >= -107 && value <= 107) {\n        code = [value + 139];\n      } else if (value >= 108 && value <= 1131) {\n        value = value - 108;\n        code = [(value >> 8) + 247, value & 0xFF];\n      } else if (value >= -1131 && value <= -108) {\n        value = -value - 108;\n        code = [(value >> 8) + 251, value & 0xFF];\n      } else if (value >= -32768 && value <= 32767) {\n        code = [0x1c, value >> 8 & 0xFF, value & 0xFF];\n      } else {\n        code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF];\n      }\n\n      return code;\n    },\n    compileHeader: function CFFCompiler_compileHeader(header) {\n      return [header.major, header.minor, header.hdrSize, header.offSize];\n    },\n    compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n      var nameIndex = new CFFIndex();\n\n      for (var i = 0, ii = names.length; i < ii; ++i) {\n        var name = names[i];\n        var length = Math.min(name.length, 127);\n        var sanitizedName = new Array(length);\n\n        for (var j = 0; j < length; j++) {\n          var char = name[j];\n\n          if (char < '!' || char > '~' || char === '[' || char === ']' || char === '(' || char === ')' || char === '{' || char === '}' || char === '<' || char === '>' || char === '/' || char === '%') {\n            char = '_';\n          }\n\n          sanitizedName[j] = char;\n        }\n\n        sanitizedName = sanitizedName.join('');\n\n        if (sanitizedName === '') {\n          sanitizedName = 'Bad_Font_Name';\n        }\n\n        nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n      }\n\n      return this.compileIndex(nameIndex);\n    },\n    compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n      var fontDictTrackers = [];\n      var fdArrayIndex = new CFFIndex();\n\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n\n        if (removeCidKeys) {\n          fontDict.removeByName('CIDFontVersion');\n          fontDict.removeByName('CIDFontRevision');\n          fontDict.removeByName('CIDFontType');\n          fontDict.removeByName('CIDCount');\n          fontDict.removeByName('UIDBase');\n        }\n\n        var fontDictTracker = new CFFOffsetTracker();\n        var fontDictData = this.compileDict(fontDict, fontDictTracker);\n        fontDictTrackers.push(fontDictTracker);\n        fdArrayIndex.add(fontDictData);\n        fontDictTracker.offset(length);\n      }\n\n      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n      return {\n        trackers: fontDictTrackers,\n        output: fdArrayIndex\n      };\n    },\n    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        var privateDict = fontDict.privateDict;\n\n        if (!privateDict || !fontDict.hasName('Private')) {\n          throw new _util.FormatError('There must be a private dictionary.');\n        }\n\n        var privateDictTracker = new CFFOffsetTracker();\n        var privateDictData = this.compileDict(privateDict, privateDictTracker);\n        var outputLength = output.length;\n        privateDictTracker.offset(outputLength);\n\n        if (!privateDictData.length) {\n          outputLength = 0;\n        }\n\n        trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output);\n        output.add(privateDictData);\n\n        if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n          var subrs = this.compileIndex(privateDict.subrsIndex);\n          privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output);\n          output.add(subrs);\n        }\n      }\n    },\n    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n      var out = [];\n      var order = dict.order;\n\n      for (var i = 0; i < order.length; ++i) {\n        var key = order[i];\n\n        if (!(key in dict.values)) {\n          continue;\n        }\n\n        var values = dict.values[key];\n        var types = dict.types[key];\n\n        if (!Array.isArray(types)) {\n          types = [types];\n        }\n\n        if (!Array.isArray(values)) {\n          values = [values];\n        }\n\n        if (values.length === 0) {\n          continue;\n        }\n\n        for (var j = 0, jj = types.length; j < jj; ++j) {\n          var type = types[j];\n          var value = values[j];\n\n          switch (type) {\n            case 'num':\n            case 'sid':\n              out = out.concat(this.encodeNumber(value));\n              break;\n\n            case 'offset':\n              var name = dict.keyToNameMap[key];\n\n              if (!offsetTracker.isTracking(name)) {\n                offsetTracker.track(name, out.length);\n              }\n\n              out = out.concat([0x1d, 0, 0, 0, 0]);\n              break;\n\n            case 'array':\n            case 'delta':\n              out = out.concat(this.encodeNumber(value));\n\n              for (var k = 1, kk = values.length; k < kk; ++k) {\n                out = out.concat(this.encodeNumber(values[k]));\n              }\n\n              break;\n\n            default:\n              throw new _util.FormatError(\"Unknown data type of \".concat(type));\n          }\n        }\n\n        out = out.concat(dict.opcodes[key]);\n      }\n\n      return out;\n    },\n    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n      var stringIndex = new CFFIndex();\n\n      for (var i = 0, ii = strings.length; i < ii; ++i) {\n        stringIndex.add((0, _util.stringToBytes)(strings[i]));\n      }\n\n      return this.compileIndex(stringIndex);\n    },\n    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n      var globalSubrIndex = this.cff.globalSubrIndex;\n      this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n    },\n    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n      var charStringsIndex = new CFFIndex();\n\n      for (var i = 0; i < charStrings.count; i++) {\n        var glyph = charStrings.get(i);\n\n        if (glyph.length === 0) {\n          charStringsIndex.add(new Uint8Array([0x8B, 0x0E]));\n          continue;\n        }\n\n        charStringsIndex.add(glyph);\n      }\n\n      return this.compileIndex(charStringsIndex);\n    },\n    compileCharset: function CFFCompiler_compileCharset(charset) {\n      var length = 1 + (this.cff.charStrings.count - 1) * 2;\n      var out = new Uint8Array(length);\n      return this.compileTypedArray(out);\n    },\n    compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n      return this.compileTypedArray(encoding.raw);\n    },\n    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n      var format = fdSelect.format;\n      var out, i;\n\n      switch (format) {\n        case 0:\n          out = new Uint8Array(1 + fdSelect.fdSelect.length);\n          out[0] = format;\n\n          for (i = 0; i < fdSelect.fdSelect.length; i++) {\n            out[i + 1] = fdSelect.fdSelect[i];\n          }\n\n          break;\n\n        case 3:\n          var start = 0;\n          var lastFD = fdSelect.fdSelect[0];\n          var ranges = [format, 0, 0, start >> 8 & 0xFF, start & 0xFF, lastFD];\n\n          for (i = 1; i < fdSelect.fdSelect.length; i++) {\n            var currentFD = fdSelect.fdSelect[i];\n\n            if (currentFD !== lastFD) {\n              ranges.push(i >> 8 & 0xFF, i & 0xFF, currentFD);\n              lastFD = currentFD;\n            }\n          }\n\n          var numRanges = (ranges.length - 3) / 3;\n          ranges[1] = numRanges >> 8 & 0xFF;\n          ranges[2] = numRanges & 0xFF;\n          ranges.push(i >> 8 & 0xFF, i & 0xFF);\n          out = new Uint8Array(ranges);\n          break;\n      }\n\n      return this.compileTypedArray(out);\n    },\n    compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n      var out = [];\n\n      for (var i = 0, ii = data.length; i < ii; ++i) {\n        out[i] = data[i];\n      }\n\n      return out;\n    },\n    compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n      trackers = trackers || [];\n      var objects = index.objects;\n      var count = objects.length;\n\n      if (count === 0) {\n        return [0, 0, 0];\n      }\n\n      var data = [count >> 8 & 0xFF, count & 0xff];\n      var lastOffset = 1,\n          i;\n\n      for (i = 0; i < count; ++i) {\n        lastOffset += objects[i].length;\n      }\n\n      var offsetSize;\n\n      if (lastOffset < 0x100) {\n        offsetSize = 1;\n      } else if (lastOffset < 0x10000) {\n        offsetSize = 2;\n      } else if (lastOffset < 0x1000000) {\n        offsetSize = 3;\n      } else {\n        offsetSize = 4;\n      }\n\n      data.push(offsetSize);\n      var relativeOffset = 1;\n\n      for (i = 0; i < count + 1; i++) {\n        if (offsetSize === 1) {\n          data.push(relativeOffset & 0xFF);\n        } else if (offsetSize === 2) {\n          data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        } else if (offsetSize === 3) {\n          data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        } else {\n          data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        }\n\n        if (objects[i]) {\n          relativeOffset += objects[i].length;\n        }\n      }\n\n      for (i = 0; i < count; i++) {\n        if (trackers[i]) {\n          trackers[i].offset(data.length);\n        }\n\n        for (var j = 0, jj = objects[i].length; j < jj; j++) {\n          data.push(objects[i][j]);\n        }\n      }\n\n      return data;\n    }\n  };\n  return CFFCompiler;\n}();\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0;\nvar ISOAdobeCharset = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron'];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nvar ExpertCharset = ['.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\nexports.ExpertCharset = ExpertCharset;\nvar ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior'];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getEncoding = getEncoding;\nexports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0;\nvar ExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\nexports.ExpertEncoding = ExpertEncoding;\nvar MacExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', 'dollarinferior', '', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', 'periodsuperior', 'Dotaccentsmall', 'Ringsmall', '', '', '', ''];\nvar MacRomanEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'space', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron'];\nexports.MacRomanEncoding = MacRomanEncoding;\nvar StandardEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls', '', '', '', ''];\nexports.StandardEncoding = StandardEncoding;\nvar WinAnsiEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', 'zcaron', 'Ydieresis', 'space', 'exclamdown', 'cent', 'sterling', 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', 'ydieresis'];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nvar SymbolSetEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', 'bracerightbt', ''];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nvar ZapfDingbatsEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', 'a98', 'a99', 'a100', '', 'a89', 'a90', 'a93', 'a94', 'a91', 'a92', 'a205', 'a85', 'a206', 'a86', 'a87', 'a88', 'a95', 'a96', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201', 'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189', 'a190', 'a191', ''];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case 'WinAnsiEncoding':\n      return WinAnsiEncoding;\n\n    case 'StandardEncoding':\n      return StandardEncoding;\n\n    case 'MacRomanEncoding':\n      return MacRomanEncoding;\n\n    case 'SymbolSetEncoding':\n      return SymbolSetEncoding;\n\n    case 'ZapfDingbatsEncoding':\n      return ZapfDingbatsEncoding;\n\n    case 'ExpertEncoding':\n      return ExpertEncoding;\n\n    case 'MacExpertEncoding':\n      return MacExpertEncoding;\n\n    default:\n      return null;\n  }\n}\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t['A'] = 0x0041;\n t['AE'] = 0x00C6;\n t['AEacute'] = 0x01FC;\n t['AEmacron'] = 0x01E2;\n t['AEsmall'] = 0xF7E6;\n t['Aacute'] = 0x00C1;\n t['Aacutesmall'] = 0xF7E1;\n t['Abreve'] = 0x0102;\n t['Abreveacute'] = 0x1EAE;\n t['Abrevecyrillic'] = 0x04D0;\n t['Abrevedotbelow'] = 0x1EB6;\n t['Abrevegrave'] = 0x1EB0;\n t['Abrevehookabove'] = 0x1EB2;\n t['Abrevetilde'] = 0x1EB4;\n t['Acaron'] = 0x01CD;\n t['Acircle'] = 0x24B6;\n t['Acircumflex'] = 0x00C2;\n t['Acircumflexacute'] = 0x1EA4;\n t['Acircumflexdotbelow'] = 0x1EAC;\n t['Acircumflexgrave'] = 0x1EA6;\n t['Acircumflexhookabove'] = 0x1EA8;\n t['Acircumflexsmall'] = 0xF7E2;\n t['Acircumflextilde'] = 0x1EAA;\n t['Acute'] = 0xF6C9;\n t['Acutesmall'] = 0xF7B4;\n t['Acyrillic'] = 0x0410;\n t['Adblgrave'] = 0x0200;\n t['Adieresis'] = 0x00C4;\n t['Adieresiscyrillic'] = 0x04D2;\n t['Adieresismacron'] = 0x01DE;\n t['Adieresissmall'] = 0xF7E4;\n t['Adotbelow'] = 0x1EA0;\n t['Adotmacron'] = 0x01E0;\n t['Agrave'] = 0x00C0;\n t['Agravesmall'] = 0xF7E0;\n t['Ahookabove'] = 0x1EA2;\n t['Aiecyrillic'] = 0x04D4;\n t['Ainvertedbreve'] = 0x0202;\n t['Alpha'] = 0x0391;\n t['Alphatonos'] = 0x0386;\n t['Amacron'] = 0x0100;\n t['Amonospace'] = 0xFF21;\n t['Aogonek'] = 0x0104;\n t['Aring'] = 0x00C5;\n t['Aringacute'] = 0x01FA;\n t['Aringbelow'] = 0x1E00;\n t['Aringsmall'] = 0xF7E5;\n t['Asmall'] = 0xF761;\n t['Atilde'] = 0x00C3;\n t['Atildesmall'] = 0xF7E3;\n t['Aybarmenian'] = 0x0531;\n t['B'] = 0x0042;\n t['Bcircle'] = 0x24B7;\n t['Bdotaccent'] = 0x1E02;\n t['Bdotbelow'] = 0x1E04;\n t['Becyrillic'] = 0x0411;\n t['Benarmenian'] = 0x0532;\n t['Beta'] = 0x0392;\n t['Bhook'] = 0x0181;\n t['Blinebelow'] = 0x1E06;\n t['Bmonospace'] = 0xFF22;\n t['Brevesmall'] = 0xF6F4;\n t['Bsmall'] = 0xF762;\n t['Btopbar'] = 0x0182;\n t['C'] = 0x0043;\n t['Caarmenian'] = 0x053E;\n t['Cacute'] = 0x0106;\n t['Caron'] = 0xF6CA;\n t['Caronsmall'] = 0xF6F5;\n t['Ccaron'] = 0x010C;\n t['Ccedilla'] = 0x00C7;\n t['Ccedillaacute'] = 0x1E08;\n t['Ccedillasmall'] = 0xF7E7;\n t['Ccircle'] = 0x24B8;\n t['Ccircumflex'] = 0x0108;\n t['Cdot'] = 0x010A;\n t['Cdotaccent'] = 0x010A;\n t['Cedillasmall'] = 0xF7B8;\n t['Chaarmenian'] = 0x0549;\n t['Cheabkhasiancyrillic'] = 0x04BC;\n t['Checyrillic'] = 0x0427;\n t['Chedescenderabkhasiancyrillic'] = 0x04BE;\n t['Chedescendercyrillic'] = 0x04B6;\n t['Chedieresiscyrillic'] = 0x04F4;\n t['Cheharmenian'] = 0x0543;\n t['Chekhakassiancyrillic'] = 0x04CB;\n t['Cheverticalstrokecyrillic'] = 0x04B8;\n t['Chi'] = 0x03A7;\n t['Chook'] = 0x0187;\n t['Circumflexsmall'] = 0xF6F6;\n t['Cmonospace'] = 0xFF23;\n t['Coarmenian'] = 0x0551;\n t['Csmall'] = 0xF763;\n t['D'] = 0x0044;\n t['DZ'] = 0x01F1;\n t['DZcaron'] = 0x01C4;\n t['Daarmenian'] = 0x0534;\n t['Dafrican'] = 0x0189;\n t['Dcaron'] = 0x010E;\n t['Dcedilla'] = 0x1E10;\n t['Dcircle'] = 0x24B9;\n t['Dcircumflexbelow'] = 0x1E12;\n t['Dcroat'] = 0x0110;\n t['Ddotaccent'] = 0x1E0A;\n t['Ddotbelow'] = 0x1E0C;\n t['Decyrillic'] = 0x0414;\n t['Deicoptic'] = 0x03EE;\n t['Delta'] = 0x2206;\n t['Deltagreek'] = 0x0394;\n t['Dhook'] = 0x018A;\n t['Dieresis'] = 0xF6CB;\n t['DieresisAcute'] = 0xF6CC;\n t['DieresisGrave'] = 0xF6CD;\n t['Dieresissmall'] = 0xF7A8;\n t['Digammagreek'] = 0x03DC;\n t['Djecyrillic'] = 0x0402;\n t['Dlinebelow'] = 0x1E0E;\n t['Dmonospace'] = 0xFF24;\n t['Dotaccentsmall'] = 0xF6F7;\n t['Dslash'] = 0x0110;\n t['Dsmall'] = 0xF764;\n t['Dtopbar'] = 0x018B;\n t['Dz'] = 0x01F2;\n t['Dzcaron'] = 0x01C5;\n t['Dzeabkhasiancyrillic'] = 0x04E0;\n t['Dzecyrillic'] = 0x0405;\n t['Dzhecyrillic'] = 0x040F;\n t['E'] = 0x0045;\n t['Eacute'] = 0x00C9;\n t['Eacutesmall'] = 0xF7E9;\n t['Ebreve'] = 0x0114;\n t['Ecaron'] = 0x011A;\n t['Ecedillabreve'] = 0x1E1C;\n t['Echarmenian'] = 0x0535;\n t['Ecircle'] = 0x24BA;\n t['Ecircumflex'] = 0x00CA;\n t['Ecircumflexacute'] = 0x1EBE;\n t['Ecircumflexbelow'] = 0x1E18;\n t['Ecircumflexdotbelow'] = 0x1EC6;\n t['Ecircumflexgrave'] = 0x1EC0;\n t['Ecircumflexhookabove'] = 0x1EC2;\n t['Ecircumflexsmall'] = 0xF7EA;\n t['Ecircumflextilde'] = 0x1EC4;\n t['Ecyrillic'] = 0x0404;\n t['Edblgrave'] = 0x0204;\n t['Edieresis'] = 0x00CB;\n t['Edieresissmall'] = 0xF7EB;\n t['Edot'] = 0x0116;\n t['Edotaccent'] = 0x0116;\n t['Edotbelow'] = 0x1EB8;\n t['Efcyrillic'] = 0x0424;\n t['Egrave'] = 0x00C8;\n t['Egravesmall'] = 0xF7E8;\n t['Eharmenian'] = 0x0537;\n t['Ehookabove'] = 0x1EBA;\n t['Eightroman'] = 0x2167;\n t['Einvertedbreve'] = 0x0206;\n t['Eiotifiedcyrillic'] = 0x0464;\n t['Elcyrillic'] = 0x041B;\n t['Elevenroman'] = 0x216A;\n t['Emacron'] = 0x0112;\n t['Emacronacute'] = 0x1E16;\n t['Emacrongrave'] = 0x1E14;\n t['Emcyrillic'] = 0x041C;\n t['Emonospace'] = 0xFF25;\n t['Encyrillic'] = 0x041D;\n t['Endescendercyrillic'] = 0x04A2;\n t['Eng'] = 0x014A;\n t['Enghecyrillic'] = 0x04A4;\n t['Enhookcyrillic'] = 0x04C7;\n t['Eogonek'] = 0x0118;\n t['Eopen'] = 0x0190;\n t['Epsilon'] = 0x0395;\n t['Epsilontonos'] = 0x0388;\n t['Ercyrillic'] = 0x0420;\n t['Ereversed'] = 0x018E;\n t['Ereversedcyrillic'] = 0x042D;\n t['Escyrillic'] = 0x0421;\n t['Esdescendercyrillic'] = 0x04AA;\n t['Esh'] = 0x01A9;\n t['Esmall'] = 0xF765;\n t['Eta'] = 0x0397;\n t['Etarmenian'] = 0x0538;\n t['Etatonos'] = 0x0389;\n t['Eth'] = 0x00D0;\n t['Ethsmall'] = 0xF7F0;\n t['Etilde'] = 0x1EBC;\n t['Etildebelow'] = 0x1E1A;\n t['Euro'] = 0x20AC;\n t['Ezh'] = 0x01B7;\n t['Ezhcaron'] = 0x01EE;\n t['Ezhreversed'] = 0x01B8;\n t['F'] = 0x0046;\n t['Fcircle'] = 0x24BB;\n t['Fdotaccent'] = 0x1E1E;\n t['Feharmenian'] = 0x0556;\n t['Feicoptic'] = 0x03E4;\n t['Fhook'] = 0x0191;\n t['Fitacyrillic'] = 0x0472;\n t['Fiveroman'] = 0x2164;\n t['Fmonospace'] = 0xFF26;\n t['Fourroman'] = 0x2163;\n t['Fsmall'] = 0xF766;\n t['G'] = 0x0047;\n t['GBsquare'] = 0x3387;\n t['Gacute'] = 0x01F4;\n t['Gamma'] = 0x0393;\n t['Gammaafrican'] = 0x0194;\n t['Gangiacoptic'] = 0x03EA;\n t['Gbreve'] = 0x011E;\n t['Gcaron'] = 0x01E6;\n t['Gcedilla'] = 0x0122;\n t['Gcircle'] = 0x24BC;\n t['Gcircumflex'] = 0x011C;\n t['Gcommaaccent'] = 0x0122;\n t['Gdot'] = 0x0120;\n t['Gdotaccent'] = 0x0120;\n t['Gecyrillic'] = 0x0413;\n t['Ghadarmenian'] = 0x0542;\n t['Ghemiddlehookcyrillic'] = 0x0494;\n t['Ghestrokecyrillic'] = 0x0492;\n t['Gheupturncyrillic'] = 0x0490;\n t['Ghook'] = 0x0193;\n t['Gimarmenian'] = 0x0533;\n t['Gjecyrillic'] = 0x0403;\n t['Gmacron'] = 0x1E20;\n t['Gmonospace'] = 0xFF27;\n t['Grave'] = 0xF6CE;\n t['Gravesmall'] = 0xF760;\n t['Gsmall'] = 0xF767;\n t['Gsmallhook'] = 0x029B;\n t['Gstroke'] = 0x01E4;\n t['H'] = 0x0048;\n t['H18533'] = 0x25CF;\n t['H18543'] = 0x25AA;\n t['H18551'] = 0x25AB;\n t['H22073'] = 0x25A1;\n t['HPsquare'] = 0x33CB;\n t['Haabkhasiancyrillic'] = 0x04A8;\n t['Hadescendercyrillic'] = 0x04B2;\n t['Hardsigncyrillic'] = 0x042A;\n t['Hbar'] = 0x0126;\n t['Hbrevebelow'] = 0x1E2A;\n t['Hcedilla'] = 0x1E28;\n t['Hcircle'] = 0x24BD;\n t['Hcircumflex'] = 0x0124;\n t['Hdieresis'] = 0x1E26;\n t['Hdotaccent'] = 0x1E22;\n t['Hdotbelow'] = 0x1E24;\n t['Hmonospace'] = 0xFF28;\n t['Hoarmenian'] = 0x0540;\n t['Horicoptic'] = 0x03E8;\n t['Hsmall'] = 0xF768;\n t['Hungarumlaut'] = 0xF6CF;\n t['Hungarumlautsmall'] = 0xF6F8;\n t['Hzsquare'] = 0x3390;\n t['I'] = 0x0049;\n t['IAcyrillic'] = 0x042F;\n t['IJ'] = 0x0132;\n t['IUcyrillic'] = 0x042E;\n t['Iacute'] = 0x00CD;\n t['Iacutesmall'] = 0xF7ED;\n t['Ibreve'] = 0x012C;\n t['Icaron'] = 0x01CF;\n t['Icircle'] = 0x24BE;\n t['Icircumflex'] = 0x00CE;\n t['Icircumflexsmall'] = 0xF7EE;\n t['Icyrillic'] = 0x0406;\n t['Idblgrave'] = 0x0208;\n t['Idieresis'] = 0x00CF;\n t['Idieresisacute'] = 0x1E2E;\n t['Idieresiscyrillic'] = 0x04E4;\n t['Idieresissmall'] = 0xF7EF;\n t['Idot'] = 0x0130;\n t['Idotaccent'] = 0x0130;\n t['Idotbelow'] = 0x1ECA;\n t['Iebrevecyrillic'] = 0x04D6;\n t['Iecyrillic'] = 0x0415;\n t['Ifraktur'] = 0x2111;\n t['Igrave'] = 0x00CC;\n t['Igravesmall'] = 0xF7EC;\n t['Ihookabove'] = 0x1EC8;\n t['Iicyrillic'] = 0x0418;\n t['Iinvertedbreve'] = 0x020A;\n t['Iishortcyrillic'] = 0x0419;\n t['Imacron'] = 0x012A;\n t['Imacroncyrillic'] = 0x04E2;\n t['Imonospace'] = 0xFF29;\n t['Iniarmenian'] = 0x053B;\n t['Iocyrillic'] = 0x0401;\n t['Iogonek'] = 0x012E;\n t['Iota'] = 0x0399;\n t['Iotaafrican'] = 0x0196;\n t['Iotadieresis'] = 0x03AA;\n t['Iotatonos'] = 0x038A;\n t['Ismall'] = 0xF769;\n t['Istroke'] = 0x0197;\n t['Itilde'] = 0x0128;\n t['Itildebelow'] = 0x1E2C;\n t['Izhitsacyrillic'] = 0x0474;\n t['Izhitsadblgravecyrillic'] = 0x0476;\n t['J'] = 0x004A;\n t['Jaarmenian'] = 0x0541;\n t['Jcircle'] = 0x24BF;\n t['Jcircumflex'] = 0x0134;\n t['Jecyrillic'] = 0x0408;\n t['Jheharmenian'] = 0x054B;\n t['Jmonospace'] = 0xFF2A;\n t['Jsmall'] = 0xF76A;\n t['K'] = 0x004B;\n t['KBsquare'] = 0x3385;\n t['KKsquare'] = 0x33CD;\n t['Kabashkircyrillic'] = 0x04A0;\n t['Kacute'] = 0x1E30;\n t['Kacyrillic'] = 0x041A;\n t['Kadescendercyrillic'] = 0x049A;\n t['Kahookcyrillic'] = 0x04C3;\n t['Kappa'] = 0x039A;\n t['Kastrokecyrillic'] = 0x049E;\n t['Kaverticalstrokecyrillic'] = 0x049C;\n t['Kcaron'] = 0x01E8;\n t['Kcedilla'] = 0x0136;\n t['Kcircle'] = 0x24C0;\n t['Kcommaaccent'] = 0x0136;\n t['Kdotbelow'] = 0x1E32;\n t['Keharmenian'] = 0x0554;\n t['Kenarmenian'] = 0x053F;\n t['Khacyrillic'] = 0x0425;\n t['Kheicoptic'] = 0x03E6;\n t['Khook'] = 0x0198;\n t['Kjecyrillic'] = 0x040C;\n t['Klinebelow'] = 0x1E34;\n t['Kmonospace'] = 0xFF2B;\n t['Koppacyrillic'] = 0x0480;\n t['Koppagreek'] = 0x03DE;\n t['Ksicyrillic'] = 0x046E;\n t['Ksmall'] = 0xF76B;\n t['L'] = 0x004C;\n t['LJ'] = 0x01C7;\n t['LL'] = 0xF6BF;\n t['Lacute'] = 0x0139;\n t['Lambda'] = 0x039B;\n t['Lcaron'] = 0x013D;\n t['Lcedilla'] = 0x013B;\n t['Lcircle'] = 0x24C1;\n t['Lcircumflexbelow'] = 0x1E3C;\n t['Lcommaaccent'] = 0x013B;\n t['Ldot'] = 0x013F;\n t['Ldotaccent'] = 0x013F;\n t['Ldotbelow'] = 0x1E36;\n t['Ldotbelowmacron'] = 0x1E38;\n t['Liwnarmenian'] = 0x053C;\n t['Lj'] = 0x01C8;\n t['Ljecyrillic'] = 0x0409;\n t['Llinebelow'] = 0x1E3A;\n t['Lmonospace'] = 0xFF2C;\n t['Lslash'] = 0x0141;\n t['Lslashsmall'] = 0xF6F9;\n t['Lsmall'] = 0xF76C;\n t['M'] = 0x004D;\n t['MBsquare'] = 0x3386;\n t['Macron'] = 0xF6D0;\n t['Macronsmall'] = 0xF7AF;\n t['Macute'] = 0x1E3E;\n t['Mcircle'] = 0x24C2;\n t['Mdotaccent'] = 0x1E40;\n t['Mdotbelow'] = 0x1E42;\n t['Menarmenian'] = 0x0544;\n t['Mmonospace'] = 0xFF2D;\n t['Msmall'] = 0xF76D;\n t['Mturned'] = 0x019C;\n t['Mu'] = 0x039C;\n t['N'] = 0x004E;\n t['NJ'] = 0x01CA;\n t['Nacute'] = 0x0143;\n t['Ncaron'] = 0x0147;\n t['Ncedilla'] = 0x0145;\n t['Ncircle'] = 0x24C3;\n t['Ncircumflexbelow'] = 0x1E4A;\n t['Ncommaaccent'] = 0x0145;\n t['Ndotaccent'] = 0x1E44;\n t['Ndotbelow'] = 0x1E46;\n t['Nhookleft'] = 0x019D;\n t['Nineroman'] = 0x2168;\n t['Nj'] = 0x01CB;\n t['Njecyrillic'] = 0x040A;\n t['Nlinebelow'] = 0x1E48;\n t['Nmonospace'] = 0xFF2E;\n t['Nowarmenian'] = 0x0546;\n t['Nsmall'] = 0xF76E;\n t['Ntilde'] = 0x00D1;\n t['Ntildesmall'] = 0xF7F1;\n t['Nu'] = 0x039D;\n t['O'] = 0x004F;\n t['OE'] = 0x0152;\n t['OEsmall'] = 0xF6FA;\n t['Oacute'] = 0x00D3;\n t['Oacutesmall'] = 0xF7F3;\n t['Obarredcyrillic'] = 0x04E8;\n t['Obarreddieresiscyrillic'] = 0x04EA;\n t['Obreve'] = 0x014E;\n t['Ocaron'] = 0x01D1;\n t['Ocenteredtilde'] = 0x019F;\n t['Ocircle'] = 0x24C4;\n t['Ocircumflex'] = 0x00D4;\n t['Ocircumflexacute'] = 0x1ED0;\n t['Ocircumflexdotbelow'] = 0x1ED8;\n t['Ocircumflexgrave'] = 0x1ED2;\n t['Ocircumflexhookabove'] = 0x1ED4;\n t['Ocircumflexsmall'] = 0xF7F4;\n t['Ocircumflextilde'] = 0x1ED6;\n t['Ocyrillic'] = 0x041E;\n t['Odblacute'] = 0x0150;\n t['Odblgrave'] = 0x020C;\n t['Odieresis'] = 0x00D6;\n t['Odieresiscyrillic'] = 0x04E6;\n t['Odieresissmall'] = 0xF7F6;\n t['Odotbelow'] = 0x1ECC;\n t['Ogoneksmall'] = 0xF6FB;\n t['Ograve'] = 0x00D2;\n t['Ogravesmall'] = 0xF7F2;\n t['Oharmenian'] = 0x0555;\n t['Ohm'] = 0x2126;\n t['Ohookabove'] = 0x1ECE;\n t['Ohorn'] = 0x01A0;\n t['Ohornacute'] = 0x1EDA;\n t['Ohorndotbelow'] = 0x1EE2;\n t['Ohorngrave'] = 0x1EDC;\n t['Ohornhookabove'] = 0x1EDE;\n t['Ohorntilde'] = 0x1EE0;\n t['Ohungarumlaut'] = 0x0150;\n t['Oi'] = 0x01A2;\n t['Oinvertedbreve'] = 0x020E;\n t['Omacron'] = 0x014C;\n t['Omacronacute'] = 0x1E52;\n t['Omacrongrave'] = 0x1E50;\n t['Omega'] = 0x2126;\n t['Omegacyrillic'] = 0x0460;\n t['Omegagreek'] = 0x03A9;\n t['Omegaroundcyrillic'] = 0x047A;\n t['Omegatitlocyrillic'] = 0x047C;\n t['Omegatonos'] = 0x038F;\n t['Omicron'] = 0x039F;\n t['Omicrontonos'] = 0x038C;\n t['Omonospace'] = 0xFF2F;\n t['Oneroman'] = 0x2160;\n t['Oogonek'] = 0x01EA;\n t['Oogonekmacron'] = 0x01EC;\n t['Oopen'] = 0x0186;\n t['Oslash'] = 0x00D8;\n t['Oslashacute'] = 0x01FE;\n t['Oslashsmall'] = 0xF7F8;\n t['Osmall'] = 0xF76F;\n t['Ostrokeacute'] = 0x01FE;\n t['Otcyrillic'] = 0x047E;\n t['Otilde'] = 0x00D5;\n t['Otildeacute'] = 0x1E4C;\n t['Otildedieresis'] = 0x1E4E;\n t['Otildesmall'] = 0xF7F5;\n t['P'] = 0x0050;\n t['Pacute'] = 0x1E54;\n t['Pcircle'] = 0x24C5;\n t['Pdotaccent'] = 0x1E56;\n t['Pecyrillic'] = 0x041F;\n t['Peharmenian'] = 0x054A;\n t['Pemiddlehookcyrillic'] = 0x04A6;\n t['Phi'] = 0x03A6;\n t['Phook'] = 0x01A4;\n t['Pi'] = 0x03A0;\n t['Piwrarmenian'] = 0x0553;\n t['Pmonospace'] = 0xFF30;\n t['Psi'] = 0x03A8;\n t['Psicyrillic'] = 0x0470;\n t['Psmall'] = 0xF770;\n t['Q'] = 0x0051;\n t['Qcircle'] = 0x24C6;\n t['Qmonospace'] = 0xFF31;\n t['Qsmall'] = 0xF771;\n t['R'] = 0x0052;\n t['Raarmenian'] = 0x054C;\n t['Racute'] = 0x0154;\n t['Rcaron'] = 0x0158;\n t['Rcedilla'] = 0x0156;\n t['Rcircle'] = 0x24C7;\n t['Rcommaaccent'] = 0x0156;\n t['Rdblgrave'] = 0x0210;\n t['Rdotaccent'] = 0x1E58;\n t['Rdotbelow'] = 0x1E5A;\n t['Rdotbelowmacron'] = 0x1E5C;\n t['Reharmenian'] = 0x0550;\n t['Rfraktur'] = 0x211C;\n t['Rho'] = 0x03A1;\n t['Ringsmall'] = 0xF6FC;\n t['Rinvertedbreve'] = 0x0212;\n t['Rlinebelow'] = 0x1E5E;\n t['Rmonospace'] = 0xFF32;\n t['Rsmall'] = 0xF772;\n t['Rsmallinverted'] = 0x0281;\n t['Rsmallinvertedsuperior'] = 0x02B6;\n t['S'] = 0x0053;\n t['SF010000'] = 0x250C;\n t['SF020000'] = 0x2514;\n t['SF030000'] = 0x2510;\n t['SF040000'] = 0x2518;\n t['SF050000'] = 0x253C;\n t['SF060000'] = 0x252C;\n t['SF070000'] = 0x2534;\n t['SF080000'] = 0x251C;\n t['SF090000'] = 0x2524;\n t['SF100000'] = 0x2500;\n t['SF110000'] = 0x2502;\n t['SF190000'] = 0x2561;\n t['SF200000'] = 0x2562;\n t['SF210000'] = 0x2556;\n t['SF220000'] = 0x2555;\n t['SF230000'] = 0x2563;\n t['SF240000'] = 0x2551;\n t['SF250000'] = 0x2557;\n t['SF260000'] = 0x255D;\n t['SF270000'] = 0x255C;\n t['SF280000'] = 0x255B;\n t['SF360000'] = 0x255E;\n t['SF370000'] = 0x255F;\n t['SF380000'] = 0x255A;\n t['SF390000'] = 0x2554;\n t['SF400000'] = 0x2569;\n t['SF410000'] = 0x2566;\n t['SF420000'] = 0x2560;\n t['SF430000'] = 0x2550;\n t['SF440000'] = 0x256C;\n t['SF450000'] = 0x2567;\n t['SF460000'] = 0x2568;\n t['SF470000'] = 0x2564;\n t['SF480000'] = 0x2565;\n t['SF490000'] = 0x2559;\n t['SF500000'] = 0x2558;\n t['SF510000'] = 0x2552;\n t['SF520000'] = 0x2553;\n t['SF530000'] = 0x256B;\n t['SF540000'] = 0x256A;\n t['Sacute'] = 0x015A;\n t['Sacutedotaccent'] = 0x1E64;\n t['Sampigreek'] = 0x03E0;\n t['Scaron'] = 0x0160;\n t['Scarondotaccent'] = 0x1E66;\n t['Scaronsmall'] = 0xF6FD;\n t['Scedilla'] = 0x015E;\n t['Schwa'] = 0x018F;\n t['Schwacyrillic'] = 0x04D8;\n t['Schwadieresiscyrillic'] = 0x04DA;\n t['Scircle'] = 0x24C8;\n t['Scircumflex'] = 0x015C;\n t['Scommaaccent'] = 0x0218;\n t['Sdotaccent'] = 0x1E60;\n t['Sdotbelow'] = 0x1E62;\n t['Sdotbelowdotaccent'] = 0x1E68;\n t['Seharmenian'] = 0x054D;\n t['Sevenroman'] = 0x2166;\n t['Shaarmenian'] = 0x0547;\n t['Shacyrillic'] = 0x0428;\n t['Shchacyrillic'] = 0x0429;\n t['Sheicoptic'] = 0x03E2;\n t['Shhacyrillic'] = 0x04BA;\n t['Shimacoptic'] = 0x03EC;\n t['Sigma'] = 0x03A3;\n t['Sixroman'] = 0x2165;\n t['Smonospace'] = 0xFF33;\n t['Softsigncyrillic'] = 0x042C;\n t['Ssmall'] = 0xF773;\n t['Stigmagreek'] = 0x03DA;\n t['T'] = 0x0054;\n t['Tau'] = 0x03A4;\n t['Tbar'] = 0x0166;\n t['Tcaron'] = 0x0164;\n t['Tcedilla'] = 0x0162;\n t['Tcircle'] = 0x24C9;\n t['Tcircumflexbelow'] = 0x1E70;\n t['Tcommaaccent'] = 0x0162;\n t['Tdotaccent'] = 0x1E6A;\n t['Tdotbelow'] = 0x1E6C;\n t['Tecyrillic'] = 0x0422;\n t['Tedescendercyrillic'] = 0x04AC;\n t['Tenroman'] = 0x2169;\n t['Tetsecyrillic'] = 0x04B4;\n t['Theta'] = 0x0398;\n t['Thook'] = 0x01AC;\n t['Thorn'] = 0x00DE;\n t['Thornsmall'] = 0xF7FE;\n t['Threeroman'] = 0x2162;\n t['Tildesmall'] = 0xF6FE;\n t['Tiwnarmenian'] = 0x054F;\n t['Tlinebelow'] = 0x1E6E;\n t['Tmonospace'] = 0xFF34;\n t['Toarmenian'] = 0x0539;\n t['Tonefive'] = 0x01BC;\n t['Tonesix'] = 0x0184;\n t['Tonetwo'] = 0x01A7;\n t['Tretroflexhook'] = 0x01AE;\n t['Tsecyrillic'] = 0x0426;\n t['Tshecyrillic'] = 0x040B;\n t['Tsmall'] = 0xF774;\n t['Twelveroman'] = 0x216B;\n t['Tworoman'] = 0x2161;\n t['U'] = 0x0055;\n t['Uacute'] = 0x00DA;\n t['Uacutesmall'] = 0xF7FA;\n t['Ubreve'] = 0x016C;\n t['Ucaron'] = 0x01D3;\n t['Ucircle'] = 0x24CA;\n t['Ucircumflex'] = 0x00DB;\n t['Ucircumflexbelow'] = 0x1E76;\n t['Ucircumflexsmall'] = 0xF7FB;\n t['Ucyrillic'] = 0x0423;\n t['Udblacute'] = 0x0170;\n t['Udblgrave'] = 0x0214;\n t['Udieresis'] = 0x00DC;\n t['Udieresisacute'] = 0x01D7;\n t['Udieresisbelow'] = 0x1E72;\n t['Udieresiscaron'] = 0x01D9;\n t['Udieresiscyrillic'] = 0x04F0;\n t['Udieresisgrave'] = 0x01DB;\n t['Udieresismacron'] = 0x01D5;\n t['Udieresissmall'] = 0xF7FC;\n t['Udotbelow'] = 0x1EE4;\n t['Ugrave'] = 0x00D9;\n t['Ugravesmall'] = 0xF7F9;\n t['Uhookabove'] = 0x1EE6;\n t['Uhorn'] = 0x01AF;\n t['Uhornacute'] = 0x1EE8;\n t['Uhorndotbelow'] = 0x1EF0;\n t['Uhorngrave'] = 0x1EEA;\n t['Uhornhookabove'] = 0x1EEC;\n t['Uhorntilde'] = 0x1EEE;\n t['Uhungarumlaut'] = 0x0170;\n t['Uhungarumlautcyrillic'] = 0x04F2;\n t['Uinvertedbreve'] = 0x0216;\n t['Ukcyrillic'] = 0x0478;\n t['Umacron'] = 0x016A;\n t['Umacroncyrillic'] = 0x04EE;\n t['Umacrondieresis'] = 0x1E7A;\n t['Umonospace'] = 0xFF35;\n t['Uogonek'] = 0x0172;\n t['Upsilon'] = 0x03A5;\n t['Upsilon1'] = 0x03D2;\n t['Upsilonacutehooksymbolgreek'] = 0x03D3;\n t['Upsilonafrican'] = 0x01B1;\n t['Upsilondieresis'] = 0x03AB;\n t['Upsilondieresishooksymbolgreek'] = 0x03D4;\n t['Upsilonhooksymbol'] = 0x03D2;\n t['Upsilontonos'] = 0x038E;\n t['Uring'] = 0x016E;\n t['Ushortcyrillic'] = 0x040E;\n t['Usmall'] = 0xF775;\n t['Ustraightcyrillic'] = 0x04AE;\n t['Ustraightstrokecyrillic'] = 0x04B0;\n t['Utilde'] = 0x0168;\n t['Utildeacute'] = 0x1E78;\n t['Utildebelow'] = 0x1E74;\n t['V'] = 0x0056;\n t['Vcircle'] = 0x24CB;\n t['Vdotbelow'] = 0x1E7E;\n t['Vecyrillic'] = 0x0412;\n t['Vewarmenian'] = 0x054E;\n t['Vhook'] = 0x01B2;\n t['Vmonospace'] = 0xFF36;\n t['Voarmenian'] = 0x0548;\n t['Vsmall'] = 0xF776;\n t['Vtilde'] = 0x1E7C;\n t['W'] = 0x0057;\n t['Wacute'] = 0x1E82;\n t['Wcircle'] = 0x24CC;\n t['Wcircumflex'] = 0x0174;\n t['Wdieresis'] = 0x1E84;\n t['Wdotaccent'] = 0x1E86;\n t['Wdotbelow'] = 0x1E88;\n t['Wgrave'] = 0x1E80;\n t['Wmonospace'] = 0xFF37;\n t['Wsmall'] = 0xF777;\n t['X'] = 0x0058;\n t['Xcircle'] = 0x24CD;\n t['Xdieresis'] = 0x1E8C;\n t['Xdotaccent'] = 0x1E8A;\n t['Xeharmenian'] = 0x053D;\n t['Xi'] = 0x039E;\n t['Xmonospace'] = 0xFF38;\n t['Xsmall'] = 0xF778;\n t['Y'] = 0x0059;\n t['Yacute'] = 0x00DD;\n t['Yacutesmall'] = 0xF7FD;\n t['Yatcyrillic'] = 0x0462;\n t['Ycircle'] = 0x24CE;\n t['Ycircumflex'] = 0x0176;\n t['Ydieresis'] = 0x0178;\n t['Ydieresissmall'] = 0xF7FF;\n t['Ydotaccent'] = 0x1E8E;\n t['Ydotbelow'] = 0x1EF4;\n t['Yericyrillic'] = 0x042B;\n t['Yerudieresiscyrillic'] = 0x04F8;\n t['Ygrave'] = 0x1EF2;\n t['Yhook'] = 0x01B3;\n t['Yhookabove'] = 0x1EF6;\n t['Yiarmenian'] = 0x0545;\n t['Yicyrillic'] = 0x0407;\n t['Yiwnarmenian'] = 0x0552;\n t['Ymonospace'] = 0xFF39;\n t['Ysmall'] = 0xF779;\n t['Ytilde'] = 0x1EF8;\n t['Yusbigcyrillic'] = 0x046A;\n t['Yusbigiotifiedcyrillic'] = 0x046C;\n t['Yuslittlecyrillic'] = 0x0466;\n t['Yuslittleiotifiedcyrillic'] = 0x0468;\n t['Z'] = 0x005A;\n t['Zaarmenian'] = 0x0536;\n t['Zacute'] = 0x0179;\n t['Zcaron'] = 0x017D;\n t['Zcaronsmall'] = 0xF6FF;\n t['Zcircle'] = 0x24CF;\n t['Zcircumflex'] = 0x1E90;\n t['Zdot'] = 0x017B;\n t['Zdotaccent'] = 0x017B;\n t['Zdotbelow'] = 0x1E92;\n t['Zecyrillic'] = 0x0417;\n t['Zedescendercyrillic'] = 0x0498;\n t['Zedieresiscyrillic'] = 0x04DE;\n t['Zeta'] = 0x0396;\n t['Zhearmenian'] = 0x053A;\n t['Zhebrevecyrillic'] = 0x04C1;\n t['Zhecyrillic'] = 0x0416;\n t['Zhedescendercyrillic'] = 0x0496;\n t['Zhedieresiscyrillic'] = 0x04DC;\n t['Zlinebelow'] = 0x1E94;\n t['Zmonospace'] = 0xFF3A;\n t['Zsmall'] = 0xF77A;\n t['Zstroke'] = 0x01B5;\n t['a'] = 0x0061;\n t['aabengali'] = 0x0986;\n t['aacute'] = 0x00E1;\n t['aadeva'] = 0x0906;\n t['aagujarati'] = 0x0A86;\n t['aagurmukhi'] = 0x0A06;\n t['aamatragurmukhi'] = 0x0A3E;\n t['aarusquare'] = 0x3303;\n t['aavowelsignbengali'] = 0x09BE;\n t['aavowelsigndeva'] = 0x093E;\n t['aavowelsigngujarati'] = 0x0ABE;\n t['abbreviationmarkarmenian'] = 0x055F;\n t['abbreviationsigndeva'] = 0x0970;\n t['abengali'] = 0x0985;\n t['abopomofo'] = 0x311A;\n t['abreve'] = 0x0103;\n t['abreveacute'] = 0x1EAF;\n t['abrevecyrillic'] = 0x04D1;\n t['abrevedotbelow'] = 0x1EB7;\n t['abrevegrave'] = 0x1EB1;\n t['abrevehookabove'] = 0x1EB3;\n t['abrevetilde'] = 0x1EB5;\n t['acaron'] = 0x01CE;\n t['acircle'] = 0x24D0;\n t['acircumflex'] = 0x00E2;\n t['acircumflexacute'] = 0x1EA5;\n t['acircumflexdotbelow'] = 0x1EAD;\n t['acircumflexgrave'] = 0x1EA7;\n t['acircumflexhookabove'] = 0x1EA9;\n t['acircumflextilde'] = 0x1EAB;\n t['acute'] = 0x00B4;\n t['acutebelowcmb'] = 0x0317;\n t['acutecmb'] = 0x0301;\n t['acutecomb'] = 0x0301;\n t['acutedeva'] = 0x0954;\n t['acutelowmod'] = 0x02CF;\n t['acutetonecmb'] = 0x0341;\n t['acyrillic'] = 0x0430;\n t['adblgrave'] = 0x0201;\n t['addakgurmukhi'] = 0x0A71;\n t['adeva'] = 0x0905;\n t['adieresis'] = 0x00E4;\n t['adieresiscyrillic'] = 0x04D3;\n t['adieresismacron'] = 0x01DF;\n t['adotbelow'] = 0x1EA1;\n t['adotmacron'] = 0x01E1;\n t['ae'] = 0x00E6;\n t['aeacute'] = 0x01FD;\n t['aekorean'] = 0x3150;\n t['aemacron'] = 0x01E3;\n t['afii00208'] = 0x2015;\n t['afii08941'] = 0x20A4;\n t['afii10017'] = 0x0410;\n t['afii10018'] = 0x0411;\n t['afii10019'] = 0x0412;\n t['afii10020'] = 0x0413;\n t['afii10021'] = 0x0414;\n t['afii10022'] = 0x0415;\n t['afii10023'] = 0x0401;\n t['afii10024'] = 0x0416;\n t['afii10025'] = 0x0417;\n t['afii10026'] = 0x0418;\n t['afii10027'] = 0x0419;\n t['afii10028'] = 0x041A;\n t['afii10029'] = 0x041B;\n t['afii10030'] = 0x041C;\n t['afii10031'] = 0x041D;\n t['afii10032'] = 0x041E;\n t['afii10033'] = 0x041F;\n t['afii10034'] = 0x0420;\n t['afii10035'] = 0x0421;\n t['afii10036'] = 0x0422;\n t['afii10037'] = 0x0423;\n t['afii10038'] = 0x0424;\n t['afii10039'] = 0x0425;\n t['afii10040'] = 0x0426;\n t['afii10041'] = 0x0427;\n t['afii10042'] = 0x0428;\n t['afii10043'] = 0x0429;\n t['afii10044'] = 0x042A;\n t['afii10045'] = 0x042B;\n t['afii10046'] = 0x042C;\n t['afii10047'] = 0x042D;\n t['afii10048'] = 0x042E;\n t['afii10049'] = 0x042F;\n t['afii10050'] = 0x0490;\n t['afii10051'] = 0x0402;\n t['afii10052'] = 0x0403;\n t['afii10053'] = 0x0404;\n t['afii10054'] = 0x0405;\n t['afii10055'] = 0x0406;\n t['afii10056'] = 0x0407;\n t['afii10057'] = 0x0408;\n t['afii10058'] = 0x0409;\n t['afii10059'] = 0x040A;\n t['afii10060'] = 0x040B;\n t['afii10061'] = 0x040C;\n t['afii10062'] = 0x040E;\n t['afii10063'] = 0xF6C4;\n t['afii10064'] = 0xF6C5;\n t['afii10065'] = 0x0430;\n t['afii10066'] = 0x0431;\n t['afii10067'] = 0x0432;\n t['afii10068'] = 0x0433;\n t['afii10069'] = 0x0434;\n t['afii10070'] = 0x0435;\n t['afii10071'] = 0x0451;\n t['afii10072'] = 0x0436;\n t['afii10073'] = 0x0437;\n t['afii10074'] = 0x0438;\n t['afii10075'] = 0x0439;\n t['afii10076'] = 0x043A;\n t['afii10077'] = 0x043B;\n t['afii10078'] = 0x043C;\n t['afii10079'] = 0x043D;\n t['afii10080'] = 0x043E;\n t['afii10081'] = 0x043F;\n t['afii10082'] = 0x0440;\n t['afii10083'] = 0x0441;\n t['afii10084'] = 0x0442;\n t['afii10085'] = 0x0443;\n t['afii10086'] = 0x0444;\n t['afii10087'] = 0x0445;\n t['afii10088'] = 0x0446;\n t['afii10089'] = 0x0447;\n t['afii10090'] = 0x0448;\n t['afii10091'] = 0x0449;\n t['afii10092'] = 0x044A;\n t['afii10093'] = 0x044B;\n t['afii10094'] = 0x044C;\n t['afii10095'] = 0x044D;\n t['afii10096'] = 0x044E;\n t['afii10097'] = 0x044F;\n t['afii10098'] = 0x0491;\n t['afii10099'] = 0x0452;\n t['afii10100'] = 0x0453;\n t['afii10101'] = 0x0454;\n t['afii10102'] = 0x0455;\n t['afii10103'] = 0x0456;\n t['afii10104'] = 0x0457;\n t['afii10105'] = 0x0458;\n t['afii10106'] = 0x0459;\n t['afii10107'] = 0x045A;\n t['afii10108'] = 0x045B;\n t['afii10109'] = 0x045C;\n t['afii10110'] = 0x045E;\n t['afii10145'] = 0x040F;\n t['afii10146'] = 0x0462;\n t['afii10147'] = 0x0472;\n t['afii10148'] = 0x0474;\n t['afii10192'] = 0xF6C6;\n t['afii10193'] = 0x045F;\n t['afii10194'] = 0x0463;\n t['afii10195'] = 0x0473;\n t['afii10196'] = 0x0475;\n t['afii10831'] = 0xF6C7;\n t['afii10832'] = 0xF6C8;\n t['afii10846'] = 0x04D9;\n t['afii299'] = 0x200E;\n t['afii300'] = 0x200F;\n t['afii301'] = 0x200D;\n t['afii57381'] = 0x066A;\n t['afii57388'] = 0x060C;\n t['afii57392'] = 0x0660;\n t['afii57393'] = 0x0661;\n t['afii57394'] = 0x0662;\n t['afii57395'] = 0x0663;\n t['afii57396'] = 0x0664;\n t['afii57397'] = 0x0665;\n t['afii57398'] = 0x0666;\n t['afii57399'] = 0x0667;\n t['afii57400'] = 0x0668;\n t['afii57401'] = 0x0669;\n t['afii57403'] = 0x061B;\n t['afii57407'] = 0x061F;\n t['afii57409'] = 0x0621;\n t['afii57410'] = 0x0622;\n t['afii57411'] = 0x0623;\n t['afii57412'] = 0x0624;\n t['afii57413'] = 0x0625;\n t['afii57414'] = 0x0626;\n t['afii57415'] = 0x0627;\n t['afii57416'] = 0x0628;\n t['afii57417'] = 0x0629;\n t['afii57418'] = 0x062A;\n t['afii57419'] = 0x062B;\n t['afii57420'] = 0x062C;\n t['afii57421'] = 0x062D;\n t['afii57422'] = 0x062E;\n t['afii57423'] = 0x062F;\n t['afii57424'] = 0x0630;\n t['afii57425'] = 0x0631;\n t['afii57426'] = 0x0632;\n t['afii57427'] = 0x0633;\n t['afii57428'] = 0x0634;\n t['afii57429'] = 0x0635;\n t['afii57430'] = 0x0636;\n t['afii57431'] = 0x0637;\n t['afii57432'] = 0x0638;\n t['afii57433'] = 0x0639;\n t['afii57434'] = 0x063A;\n t['afii57440'] = 0x0640;\n t['afii57441'] = 0x0641;\n t['afii57442'] = 0x0642;\n t['afii57443'] = 0x0643;\n t['afii57444'] = 0x0644;\n t['afii57445'] = 0x0645;\n t['afii57446'] = 0x0646;\n t['afii57448'] = 0x0648;\n t['afii57449'] = 0x0649;\n t['afii57450'] = 0x064A;\n t['afii57451'] = 0x064B;\n t['afii57452'] = 0x064C;\n t['afii57453'] = 0x064D;\n t['afii57454'] = 0x064E;\n t['afii57455'] = 0x064F;\n t['afii57456'] = 0x0650;\n t['afii57457'] = 0x0651;\n t['afii57458'] = 0x0652;\n t['afii57470'] = 0x0647;\n t['afii57505'] = 0x06A4;\n t['afii57506'] = 0x067E;\n t['afii57507'] = 0x0686;\n t['afii57508'] = 0x0698;\n t['afii57509'] = 0x06AF;\n t['afii57511'] = 0x0679;\n t['afii57512'] = 0x0688;\n t['afii57513'] = 0x0691;\n t['afii57514'] = 0x06BA;\n t['afii57519'] = 0x06D2;\n t['afii57534'] = 0x06D5;\n t['afii57636'] = 0x20AA;\n t['afii57645'] = 0x05BE;\n t['afii57658'] = 0x05C3;\n t['afii57664'] = 0x05D0;\n t['afii57665'] = 0x05D1;\n t['afii57666'] = 0x05D2;\n t['afii57667'] = 0x05D3;\n t['afii57668'] = 0x05D4;\n t['afii57669'] = 0x05D5;\n t['afii57670'] = 0x05D6;\n t['afii57671'] = 0x05D7;\n t['afii57672'] = 0x05D8;\n t['afii57673'] = 0x05D9;\n t['afii57674'] = 0x05DA;\n t['afii57675'] = 0x05DB;\n t['afii57676'] = 0x05DC;\n t['afii57677'] = 0x05DD;\n t['afii57678'] = 0x05DE;\n t['afii57679'] = 0x05DF;\n t['afii57680'] = 0x05E0;\n t['afii57681'] = 0x05E1;\n t['afii57682'] = 0x05E2;\n t['afii57683'] = 0x05E3;\n t['afii57684'] = 0x05E4;\n t['afii57685'] = 0x05E5;\n t['afii57686'] = 0x05E6;\n t['afii57687'] = 0x05E7;\n t['afii57688'] = 0x05E8;\n t['afii57689'] = 0x05E9;\n t['afii57690'] = 0x05EA;\n t['afii57694'] = 0xFB2A;\n t['afii57695'] = 0xFB2B;\n t['afii57700'] = 0xFB4B;\n t['afii57705'] = 0xFB1F;\n t['afii57716'] = 0x05F0;\n t['afii57717'] = 0x05F1;\n t['afii57718'] = 0x05F2;\n t['afii57723'] = 0xFB35;\n t['afii57793'] = 0x05B4;\n t['afii57794'] = 0x05B5;\n t['afii57795'] = 0x05B6;\n t['afii57796'] = 0x05BB;\n t['afii57797'] = 0x05B8;\n t['afii57798'] = 0x05B7;\n t['afii57799'] = 0x05B0;\n t['afii57800'] = 0x05B2;\n t['afii57801'] = 0x05B1;\n t['afii57802'] = 0x05B3;\n t['afii57803'] = 0x05C2;\n t['afii57804'] = 0x05C1;\n t['afii57806'] = 0x05B9;\n t['afii57807'] = 0x05BC;\n t['afii57839'] = 0x05BD;\n t['afii57841'] = 0x05BF;\n t['afii57842'] = 0x05C0;\n t['afii57929'] = 0x02BC;\n t['afii61248'] = 0x2105;\n t['afii61289'] = 0x2113;\n t['afii61352'] = 0x2116;\n t['afii61573'] = 0x202C;\n t['afii61574'] = 0x202D;\n t['afii61575'] = 0x202E;\n t['afii61664'] = 0x200C;\n t['afii63167'] = 0x066D;\n t['afii64937'] = 0x02BD;\n t['agrave'] = 0x00E0;\n t['agujarati'] = 0x0A85;\n t['agurmukhi'] = 0x0A05;\n t['ahiragana'] = 0x3042;\n t['ahookabove'] = 0x1EA3;\n t['aibengali'] = 0x0990;\n t['aibopomofo'] = 0x311E;\n t['aideva'] = 0x0910;\n t['aiecyrillic'] = 0x04D5;\n t['aigujarati'] = 0x0A90;\n t['aigurmukhi'] = 0x0A10;\n t['aimatragurmukhi'] = 0x0A48;\n t['ainarabic'] = 0x0639;\n t['ainfinalarabic'] = 0xFECA;\n t['aininitialarabic'] = 0xFECB;\n t['ainmedialarabic'] = 0xFECC;\n t['ainvertedbreve'] = 0x0203;\n t['aivowelsignbengali'] = 0x09C8;\n t['aivowelsigndeva'] = 0x0948;\n t['aivowelsigngujarati'] = 0x0AC8;\n t['akatakana'] = 0x30A2;\n t['akatakanahalfwidth'] = 0xFF71;\n t['akorean'] = 0x314F;\n t['alef'] = 0x05D0;\n t['alefarabic'] = 0x0627;\n t['alefdageshhebrew'] = 0xFB30;\n t['aleffinalarabic'] = 0xFE8E;\n t['alefhamzaabovearabic'] = 0x0623;\n t['alefhamzaabovefinalarabic'] = 0xFE84;\n t['alefhamzabelowarabic'] = 0x0625;\n t['alefhamzabelowfinalarabic'] = 0xFE88;\n t['alefhebrew'] = 0x05D0;\n t['aleflamedhebrew'] = 0xFB4F;\n t['alefmaddaabovearabic'] = 0x0622;\n t['alefmaddaabovefinalarabic'] = 0xFE82;\n t['alefmaksuraarabic'] = 0x0649;\n t['alefmaksurafinalarabic'] = 0xFEF0;\n t['alefmaksurainitialarabic'] = 0xFEF3;\n t['alefmaksuramedialarabic'] = 0xFEF4;\n t['alefpatahhebrew'] = 0xFB2E;\n t['alefqamatshebrew'] = 0xFB2F;\n t['aleph'] = 0x2135;\n t['allequal'] = 0x224C;\n t['alpha'] = 0x03B1;\n t['alphatonos'] = 0x03AC;\n t['amacron'] = 0x0101;\n t['amonospace'] = 0xFF41;\n t['ampersand'] = 0x0026;\n t['ampersandmonospace'] = 0xFF06;\n t['ampersandsmall'] = 0xF726;\n t['amsquare'] = 0x33C2;\n t['anbopomofo'] = 0x3122;\n t['angbopomofo'] = 0x3124;\n t['angbracketleft'] = 0x3008;\n t['angbracketright'] = 0x3009;\n t['angkhankhuthai'] = 0x0E5A;\n t['angle'] = 0x2220;\n t['anglebracketleft'] = 0x3008;\n t['anglebracketleftvertical'] = 0xFE3F;\n t['anglebracketright'] = 0x3009;\n t['anglebracketrightvertical'] = 0xFE40;\n t['angleleft'] = 0x2329;\n t['angleright'] = 0x232A;\n t['angstrom'] = 0x212B;\n t['anoteleia'] = 0x0387;\n t['anudattadeva'] = 0x0952;\n t['anusvarabengali'] = 0x0982;\n t['anusvaradeva'] = 0x0902;\n t['anusvaragujarati'] = 0x0A82;\n t['aogonek'] = 0x0105;\n t['apaatosquare'] = 0x3300;\n t['aparen'] = 0x249C;\n t['apostrophearmenian'] = 0x055A;\n t['apostrophemod'] = 0x02BC;\n t['apple'] = 0xF8FF;\n t['approaches'] = 0x2250;\n t['approxequal'] = 0x2248;\n t['approxequalorimage'] = 0x2252;\n t['approximatelyequal'] = 0x2245;\n t['araeaekorean'] = 0x318E;\n t['araeakorean'] = 0x318D;\n t['arc'] = 0x2312;\n t['arighthalfring'] = 0x1E9A;\n t['aring'] = 0x00E5;\n t['aringacute'] = 0x01FB;\n t['aringbelow'] = 0x1E01;\n t['arrowboth'] = 0x2194;\n t['arrowdashdown'] = 0x21E3;\n t['arrowdashleft'] = 0x21E0;\n t['arrowdashright'] = 0x21E2;\n t['arrowdashup'] = 0x21E1;\n t['arrowdblboth'] = 0x21D4;\n t['arrowdbldown'] = 0x21D3;\n t['arrowdblleft'] = 0x21D0;\n t['arrowdblright'] = 0x21D2;\n t['arrowdblup'] = 0x21D1;\n t['arrowdown'] = 0x2193;\n t['arrowdownleft'] = 0x2199;\n t['arrowdownright'] = 0x2198;\n t['arrowdownwhite'] = 0x21E9;\n t['arrowheaddownmod'] = 0x02C5;\n t['arrowheadleftmod'] = 0x02C2;\n t['arrowheadrightmod'] = 0x02C3;\n t['arrowheadupmod'] = 0x02C4;\n t['arrowhorizex'] = 0xF8E7;\n t['arrowleft'] = 0x2190;\n t['arrowleftdbl'] = 0x21D0;\n t['arrowleftdblstroke'] = 0x21CD;\n t['arrowleftoverright'] = 0x21C6;\n t['arrowleftwhite'] = 0x21E6;\n t['arrowright'] = 0x2192;\n t['arrowrightdblstroke'] = 0x21CF;\n t['arrowrightheavy'] = 0x279E;\n t['arrowrightoverleft'] = 0x21C4;\n t['arrowrightwhite'] = 0x21E8;\n t['arrowtableft'] = 0x21E4;\n t['arrowtabright'] = 0x21E5;\n t['arrowup'] = 0x2191;\n t['arrowupdn'] = 0x2195;\n t['arrowupdnbse'] = 0x21A8;\n t['arrowupdownbase'] = 0x21A8;\n t['arrowupleft'] = 0x2196;\n t['arrowupleftofdown'] = 0x21C5;\n t['arrowupright'] = 0x2197;\n t['arrowupwhite'] = 0x21E7;\n t['arrowvertex'] = 0xF8E6;\n t['asciicircum'] = 0x005E;\n t['asciicircummonospace'] = 0xFF3E;\n t['asciitilde'] = 0x007E;\n t['asciitildemonospace'] = 0xFF5E;\n t['ascript'] = 0x0251;\n t['ascriptturned'] = 0x0252;\n t['asmallhiragana'] = 0x3041;\n t['asmallkatakana'] = 0x30A1;\n t['asmallkatakanahalfwidth'] = 0xFF67;\n t['asterisk'] = 0x002A;\n t['asteriskaltonearabic'] = 0x066D;\n t['asteriskarabic'] = 0x066D;\n t['asteriskmath'] = 0x2217;\n t['asteriskmonospace'] = 0xFF0A;\n t['asterisksmall'] = 0xFE61;\n t['asterism'] = 0x2042;\n t['asuperior'] = 0xF6E9;\n t['asymptoticallyequal'] = 0x2243;\n t['at'] = 0x0040;\n t['atilde'] = 0x00E3;\n t['atmonospace'] = 0xFF20;\n t['atsmall'] = 0xFE6B;\n t['aturned'] = 0x0250;\n t['aubengali'] = 0x0994;\n t['aubopomofo'] = 0x3120;\n t['audeva'] = 0x0914;\n t['augujarati'] = 0x0A94;\n t['augurmukhi'] = 0x0A14;\n t['aulengthmarkbengali'] = 0x09D7;\n t['aumatragurmukhi'] = 0x0A4C;\n t['auvowelsignbengali'] = 0x09CC;\n t['auvowelsigndeva'] = 0x094C;\n t['auvowelsigngujarati'] = 0x0ACC;\n t['avagrahadeva'] = 0x093D;\n t['aybarmenian'] = 0x0561;\n t['ayin'] = 0x05E2;\n t['ayinaltonehebrew'] = 0xFB20;\n t['ayinhebrew'] = 0x05E2;\n t['b'] = 0x0062;\n t['babengali'] = 0x09AC;\n t['backslash'] = 0x005C;\n t['backslashmonospace'] = 0xFF3C;\n t['badeva'] = 0x092C;\n t['bagujarati'] = 0x0AAC;\n t['bagurmukhi'] = 0x0A2C;\n t['bahiragana'] = 0x3070;\n t['bahtthai'] = 0x0E3F;\n t['bakatakana'] = 0x30D0;\n t['bar'] = 0x007C;\n t['barmonospace'] = 0xFF5C;\n t['bbopomofo'] = 0x3105;\n t['bcircle'] = 0x24D1;\n t['bdotaccent'] = 0x1E03;\n t['bdotbelow'] = 0x1E05;\n t['beamedsixteenthnotes'] = 0x266C;\n t['because'] = 0x2235;\n t['becyrillic'] = 0x0431;\n t['beharabic'] = 0x0628;\n t['behfinalarabic'] = 0xFE90;\n t['behinitialarabic'] = 0xFE91;\n t['behiragana'] = 0x3079;\n t['behmedialarabic'] = 0xFE92;\n t['behmeeminitialarabic'] = 0xFC9F;\n t['behmeemisolatedarabic'] = 0xFC08;\n t['behnoonfinalarabic'] = 0xFC6D;\n t['bekatakana'] = 0x30D9;\n t['benarmenian'] = 0x0562;\n t['bet'] = 0x05D1;\n t['beta'] = 0x03B2;\n t['betasymbolgreek'] = 0x03D0;\n t['betdagesh'] = 0xFB31;\n t['betdageshhebrew'] = 0xFB31;\n t['bethebrew'] = 0x05D1;\n t['betrafehebrew'] = 0xFB4C;\n t['bhabengali'] = 0x09AD;\n t['bhadeva'] = 0x092D;\n t['bhagujarati'] = 0x0AAD;\n t['bhagurmukhi'] = 0x0A2D;\n t['bhook'] = 0x0253;\n t['bihiragana'] = 0x3073;\n t['bikatakana'] = 0x30D3;\n t['bilabialclick'] = 0x0298;\n t['bindigurmukhi'] = 0x0A02;\n t['birusquare'] = 0x3331;\n t['blackcircle'] = 0x25CF;\n t['blackdiamond'] = 0x25C6;\n t['blackdownpointingtriangle'] = 0x25BC;\n t['blackleftpointingpointer'] = 0x25C4;\n t['blackleftpointingtriangle'] = 0x25C0;\n t['blacklenticularbracketleft'] = 0x3010;\n t['blacklenticularbracketleftvertical'] = 0xFE3B;\n t['blacklenticularbracketright'] = 0x3011;\n t['blacklenticularbracketrightvertical'] = 0xFE3C;\n t['blacklowerlefttriangle'] = 0x25E3;\n t['blacklowerrighttriangle'] = 0x25E2;\n t['blackrectangle'] = 0x25AC;\n t['blackrightpointingpointer'] = 0x25BA;\n t['blackrightpointingtriangle'] = 0x25B6;\n t['blacksmallsquare'] = 0x25AA;\n t['blacksmilingface'] = 0x263B;\n t['blacksquare'] = 0x25A0;\n t['blackstar'] = 0x2605;\n t['blackupperlefttriangle'] = 0x25E4;\n t['blackupperrighttriangle'] = 0x25E5;\n t['blackuppointingsmalltriangle'] = 0x25B4;\n t['blackuppointingtriangle'] = 0x25B2;\n t['blank'] = 0x2423;\n t['blinebelow'] = 0x1E07;\n t['block'] = 0x2588;\n t['bmonospace'] = 0xFF42;\n t['bobaimaithai'] = 0x0E1A;\n t['bohiragana'] = 0x307C;\n t['bokatakana'] = 0x30DC;\n t['bparen'] = 0x249D;\n t['bqsquare'] = 0x33C3;\n t['braceex'] = 0xF8F4;\n t['braceleft'] = 0x007B;\n t['braceleftbt'] = 0xF8F3;\n t['braceleftmid'] = 0xF8F2;\n t['braceleftmonospace'] = 0xFF5B;\n t['braceleftsmall'] = 0xFE5B;\n t['bracelefttp'] = 0xF8F1;\n t['braceleftvertical'] = 0xFE37;\n t['braceright'] = 0x007D;\n t['bracerightbt'] = 0xF8FE;\n t['bracerightmid'] = 0xF8FD;\n t['bracerightmonospace'] = 0xFF5D;\n t['bracerightsmall'] = 0xFE5C;\n t['bracerighttp'] = 0xF8FC;\n t['bracerightvertical'] = 0xFE38;\n t['bracketleft'] = 0x005B;\n t['bracketleftbt'] = 0xF8F0;\n t['bracketleftex'] = 0xF8EF;\n t['bracketleftmonospace'] = 0xFF3B;\n t['bracketlefttp'] = 0xF8EE;\n t['bracketright'] = 0x005D;\n t['bracketrightbt'] = 0xF8FB;\n t['bracketrightex'] = 0xF8FA;\n t['bracketrightmonospace'] = 0xFF3D;\n t['bracketrighttp'] = 0xF8F9;\n t['breve'] = 0x02D8;\n t['brevebelowcmb'] = 0x032E;\n t['brevecmb'] = 0x0306;\n t['breveinvertedbelowcmb'] = 0x032F;\n t['breveinvertedcmb'] = 0x0311;\n t['breveinverteddoublecmb'] = 0x0361;\n t['bridgebelowcmb'] = 0x032A;\n t['bridgeinvertedbelowcmb'] = 0x033A;\n t['brokenbar'] = 0x00A6;\n t['bstroke'] = 0x0180;\n t['bsuperior'] = 0xF6EA;\n t['btopbar'] = 0x0183;\n t['buhiragana'] = 0x3076;\n t['bukatakana'] = 0x30D6;\n t['bullet'] = 0x2022;\n t['bulletinverse'] = 0x25D8;\n t['bulletoperator'] = 0x2219;\n t['bullseye'] = 0x25CE;\n t['c'] = 0x0063;\n t['caarmenian'] = 0x056E;\n t['cabengali'] = 0x099A;\n t['cacute'] = 0x0107;\n t['cadeva'] = 0x091A;\n t['cagujarati'] = 0x0A9A;\n t['cagurmukhi'] = 0x0A1A;\n t['calsquare'] = 0x3388;\n t['candrabindubengali'] = 0x0981;\n t['candrabinducmb'] = 0x0310;\n t['candrabindudeva'] = 0x0901;\n t['candrabindugujarati'] = 0x0A81;\n t['capslock'] = 0x21EA;\n t['careof'] = 0x2105;\n t['caron'] = 0x02C7;\n t['caronbelowcmb'] = 0x032C;\n t['caroncmb'] = 0x030C;\n t['carriagereturn'] = 0x21B5;\n t['cbopomofo'] = 0x3118;\n t['ccaron'] = 0x010D;\n t['ccedilla'] = 0x00E7;\n t['ccedillaacute'] = 0x1E09;\n t['ccircle'] = 0x24D2;\n t['ccircumflex'] = 0x0109;\n t['ccurl'] = 0x0255;\n t['cdot'] = 0x010B;\n t['cdotaccent'] = 0x010B;\n t['cdsquare'] = 0x33C5;\n t['cedilla'] = 0x00B8;\n t['cedillacmb'] = 0x0327;\n t['cent'] = 0x00A2;\n t['centigrade'] = 0x2103;\n t['centinferior'] = 0xF6DF;\n t['centmonospace'] = 0xFFE0;\n t['centoldstyle'] = 0xF7A2;\n t['centsuperior'] = 0xF6E0;\n t['chaarmenian'] = 0x0579;\n t['chabengali'] = 0x099B;\n t['chadeva'] = 0x091B;\n t['chagujarati'] = 0x0A9B;\n t['chagurmukhi'] = 0x0A1B;\n t['chbopomofo'] = 0x3114;\n t['cheabkhasiancyrillic'] = 0x04BD;\n t['checkmark'] = 0x2713;\n t['checyrillic'] = 0x0447;\n t['chedescenderabkhasiancyrillic'] = 0x04BF;\n t['chedescendercyrillic'] = 0x04B7;\n t['chedieresiscyrillic'] = 0x04F5;\n t['cheharmenian'] = 0x0573;\n t['chekhakassiancyrillic'] = 0x04CC;\n t['cheverticalstrokecyrillic'] = 0x04B9;\n t['chi'] = 0x03C7;\n t['chieuchacirclekorean'] = 0x3277;\n t['chieuchaparenkorean'] = 0x3217;\n t['chieuchcirclekorean'] = 0x3269;\n t['chieuchkorean'] = 0x314A;\n t['chieuchparenkorean'] = 0x3209;\n t['chochangthai'] = 0x0E0A;\n t['chochanthai'] = 0x0E08;\n t['chochingthai'] = 0x0E09;\n t['chochoethai'] = 0x0E0C;\n t['chook'] = 0x0188;\n t['cieucacirclekorean'] = 0x3276;\n t['cieucaparenkorean'] = 0x3216;\n t['cieuccirclekorean'] = 0x3268;\n t['cieuckorean'] = 0x3148;\n t['cieucparenkorean'] = 0x3208;\n t['cieucuparenkorean'] = 0x321C;\n t['circle'] = 0x25CB;\n t['circlecopyrt'] = 0x00A9;\n t['circlemultiply'] = 0x2297;\n t['circleot'] = 0x2299;\n t['circleplus'] = 0x2295;\n t['circlepostalmark'] = 0x3036;\n t['circlewithlefthalfblack'] = 0x25D0;\n t['circlewithrighthalfblack'] = 0x25D1;\n t['circumflex'] = 0x02C6;\n t['circumflexbelowcmb'] = 0x032D;\n t['circumflexcmb'] = 0x0302;\n t['clear'] = 0x2327;\n t['clickalveolar'] = 0x01C2;\n t['clickdental'] = 0x01C0;\n t['clicklateral'] = 0x01C1;\n t['clickretroflex'] = 0x01C3;\n t['club'] = 0x2663;\n t['clubsuitblack'] = 0x2663;\n t['clubsuitwhite'] = 0x2667;\n t['cmcubedsquare'] = 0x33A4;\n t['cmonospace'] = 0xFF43;\n t['cmsquaredsquare'] = 0x33A0;\n t['coarmenian'] = 0x0581;\n t['colon'] = 0x003A;\n t['colonmonetary'] = 0x20A1;\n t['colonmonospace'] = 0xFF1A;\n t['colonsign'] = 0x20A1;\n t['colonsmall'] = 0xFE55;\n t['colontriangularhalfmod'] = 0x02D1;\n t['colontriangularmod'] = 0x02D0;\n t['comma'] = 0x002C;\n t['commaabovecmb'] = 0x0313;\n t['commaaboverightcmb'] = 0x0315;\n t['commaaccent'] = 0xF6C3;\n t['commaarabic'] = 0x060C;\n t['commaarmenian'] = 0x055D;\n t['commainferior'] = 0xF6E1;\n t['commamonospace'] = 0xFF0C;\n t['commareversedabovecmb'] = 0x0314;\n t['commareversedmod'] = 0x02BD;\n t['commasmall'] = 0xFE50;\n t['commasuperior'] = 0xF6E2;\n t['commaturnedabovecmb'] = 0x0312;\n t['commaturnedmod'] = 0x02BB;\n t['compass'] = 0x263C;\n t['congruent'] = 0x2245;\n t['contourintegral'] = 0x222E;\n t['control'] = 0x2303;\n t['controlACK'] = 0x0006;\n t['controlBEL'] = 0x0007;\n t['controlBS'] = 0x0008;\n t['controlCAN'] = 0x0018;\n t['controlCR'] = 0x000D;\n t['controlDC1'] = 0x0011;\n t['controlDC2'] = 0x0012;\n t['controlDC3'] = 0x0013;\n t['controlDC4'] = 0x0014;\n t['controlDEL'] = 0x007F;\n t['controlDLE'] = 0x0010;\n t['controlEM'] = 0x0019;\n t['controlENQ'] = 0x0005;\n t['controlEOT'] = 0x0004;\n t['controlESC'] = 0x001B;\n t['controlETB'] = 0x0017;\n t['controlETX'] = 0x0003;\n t['controlFF'] = 0x000C;\n t['controlFS'] = 0x001C;\n t['controlGS'] = 0x001D;\n t['controlHT'] = 0x0009;\n t['controlLF'] = 0x000A;\n t['controlNAK'] = 0x0015;\n t['controlNULL'] = 0x0000;\n t['controlRS'] = 0x001E;\n t['controlSI'] = 0x000F;\n t['controlSO'] = 0x000E;\n t['controlSOT'] = 0x0002;\n t['controlSTX'] = 0x0001;\n t['controlSUB'] = 0x001A;\n t['controlSYN'] = 0x0016;\n t['controlUS'] = 0x001F;\n t['controlVT'] = 0x000B;\n t['copyright'] = 0x00A9;\n t['copyrightsans'] = 0xF8E9;\n t['copyrightserif'] = 0xF6D9;\n t['cornerbracketleft'] = 0x300C;\n t['cornerbracketlefthalfwidth'] = 0xFF62;\n t['cornerbracketleftvertical'] = 0xFE41;\n t['cornerbracketright'] = 0x300D;\n t['cornerbracketrighthalfwidth'] = 0xFF63;\n t['cornerbracketrightvertical'] = 0xFE42;\n t['corporationsquare'] = 0x337F;\n t['cosquare'] = 0x33C7;\n t['coverkgsquare'] = 0x33C6;\n t['cparen'] = 0x249E;\n t['cruzeiro'] = 0x20A2;\n t['cstretched'] = 0x0297;\n t['curlyand'] = 0x22CF;\n t['curlyor'] = 0x22CE;\n t['currency'] = 0x00A4;\n t['cyrBreve'] = 0xF6D1;\n t['cyrFlex'] = 0xF6D2;\n t['cyrbreve'] = 0xF6D4;\n t['cyrflex'] = 0xF6D5;\n t['d'] = 0x0064;\n t['daarmenian'] = 0x0564;\n t['dabengali'] = 0x09A6;\n t['dadarabic'] = 0x0636;\n t['dadeva'] = 0x0926;\n t['dadfinalarabic'] = 0xFEBE;\n t['dadinitialarabic'] = 0xFEBF;\n t['dadmedialarabic'] = 0xFEC0;\n t['dagesh'] = 0x05BC;\n t['dageshhebrew'] = 0x05BC;\n t['dagger'] = 0x2020;\n t['daggerdbl'] = 0x2021;\n t['dagujarati'] = 0x0AA6;\n t['dagurmukhi'] = 0x0A26;\n t['dahiragana'] = 0x3060;\n t['dakatakana'] = 0x30C0;\n t['dalarabic'] = 0x062F;\n t['dalet'] = 0x05D3;\n t['daletdagesh'] = 0xFB33;\n t['daletdageshhebrew'] = 0xFB33;\n t['dalethebrew'] = 0x05D3;\n t['dalfinalarabic'] = 0xFEAA;\n t['dammaarabic'] = 0x064F;\n t['dammalowarabic'] = 0x064F;\n t['dammatanaltonearabic'] = 0x064C;\n t['dammatanarabic'] = 0x064C;\n t['danda'] = 0x0964;\n t['dargahebrew'] = 0x05A7;\n t['dargalefthebrew'] = 0x05A7;\n t['dasiapneumatacyrilliccmb'] = 0x0485;\n t['dblGrave'] = 0xF6D3;\n t['dblanglebracketleft'] = 0x300A;\n t['dblanglebracketleftvertical'] = 0xFE3D;\n t['dblanglebracketright'] = 0x300B;\n t['dblanglebracketrightvertical'] = 0xFE3E;\n t['dblarchinvertedbelowcmb'] = 0x032B;\n t['dblarrowleft'] = 0x21D4;\n t['dblarrowright'] = 0x21D2;\n t['dbldanda'] = 0x0965;\n t['dblgrave'] = 0xF6D6;\n t['dblgravecmb'] = 0x030F;\n t['dblintegral'] = 0x222C;\n t['dbllowline'] = 0x2017;\n t['dbllowlinecmb'] = 0x0333;\n t['dbloverlinecmb'] = 0x033F;\n t['dblprimemod'] = 0x02BA;\n t['dblverticalbar'] = 0x2016;\n t['dblverticallineabovecmb'] = 0x030E;\n t['dbopomofo'] = 0x3109;\n t['dbsquare'] = 0x33C8;\n t['dcaron'] = 0x010F;\n t['dcedilla'] = 0x1E11;\n t['dcircle'] = 0x24D3;\n t['dcircumflexbelow'] = 0x1E13;\n t['dcroat'] = 0x0111;\n t['ddabengali'] = 0x09A1;\n t['ddadeva'] = 0x0921;\n t['ddagujarati'] = 0x0AA1;\n t['ddagurmukhi'] = 0x0A21;\n t['ddalarabic'] = 0x0688;\n t['ddalfinalarabic'] = 0xFB89;\n t['dddhadeva'] = 0x095C;\n t['ddhabengali'] = 0x09A2;\n t['ddhadeva'] = 0x0922;\n t['ddhagujarati'] = 0x0AA2;\n t['ddhagurmukhi'] = 0x0A22;\n t['ddotaccent'] = 0x1E0B;\n t['ddotbelow'] = 0x1E0D;\n t['decimalseparatorarabic'] = 0x066B;\n t['decimalseparatorpersian'] = 0x066B;\n t['decyrillic'] = 0x0434;\n t['degree'] = 0x00B0;\n t['dehihebrew'] = 0x05AD;\n t['dehiragana'] = 0x3067;\n t['deicoptic'] = 0x03EF;\n t['dekatakana'] = 0x30C7;\n t['deleteleft'] = 0x232B;\n t['deleteright'] = 0x2326;\n t['delta'] = 0x03B4;\n t['deltaturned'] = 0x018D;\n t['denominatorminusonenumeratorbengali'] = 0x09F8;\n t['dezh'] = 0x02A4;\n t['dhabengali'] = 0x09A7;\n t['dhadeva'] = 0x0927;\n t['dhagujarati'] = 0x0AA7;\n t['dhagurmukhi'] = 0x0A27;\n t['dhook'] = 0x0257;\n t['dialytikatonos'] = 0x0385;\n t['dialytikatonoscmb'] = 0x0344;\n t['diamond'] = 0x2666;\n t['diamondsuitwhite'] = 0x2662;\n t['dieresis'] = 0x00A8;\n t['dieresisacute'] = 0xF6D7;\n t['dieresisbelowcmb'] = 0x0324;\n t['dieresiscmb'] = 0x0308;\n t['dieresisgrave'] = 0xF6D8;\n t['dieresistonos'] = 0x0385;\n t['dihiragana'] = 0x3062;\n t['dikatakana'] = 0x30C2;\n t['dittomark'] = 0x3003;\n t['divide'] = 0x00F7;\n t['divides'] = 0x2223;\n t['divisionslash'] = 0x2215;\n t['djecyrillic'] = 0x0452;\n t['dkshade'] = 0x2593;\n t['dlinebelow'] = 0x1E0F;\n t['dlsquare'] = 0x3397;\n t['dmacron'] = 0x0111;\n t['dmonospace'] = 0xFF44;\n t['dnblock'] = 0x2584;\n t['dochadathai'] = 0x0E0E;\n t['dodekthai'] = 0x0E14;\n t['dohiragana'] = 0x3069;\n t['dokatakana'] = 0x30C9;\n t['dollar'] = 0x0024;\n t['dollarinferior'] = 0xF6E3;\n t['dollarmonospace'] = 0xFF04;\n t['dollaroldstyle'] = 0xF724;\n t['dollarsmall'] = 0xFE69;\n t['dollarsuperior'] = 0xF6E4;\n t['dong'] = 0x20AB;\n t['dorusquare'] = 0x3326;\n t['dotaccent'] = 0x02D9;\n t['dotaccentcmb'] = 0x0307;\n t['dotbelowcmb'] = 0x0323;\n t['dotbelowcomb'] = 0x0323;\n t['dotkatakana'] = 0x30FB;\n t['dotlessi'] = 0x0131;\n t['dotlessj'] = 0xF6BE;\n t['dotlessjstrokehook'] = 0x0284;\n t['dotmath'] = 0x22C5;\n t['dottedcircle'] = 0x25CC;\n t['doubleyodpatah'] = 0xFB1F;\n t['doubleyodpatahhebrew'] = 0xFB1F;\n t['downtackbelowcmb'] = 0x031E;\n t['downtackmod'] = 0x02D5;\n t['dparen'] = 0x249F;\n t['dsuperior'] = 0xF6EB;\n t['dtail'] = 0x0256;\n t['dtopbar'] = 0x018C;\n t['duhiragana'] = 0x3065;\n t['dukatakana'] = 0x30C5;\n t['dz'] = 0x01F3;\n t['dzaltone'] = 0x02A3;\n t['dzcaron'] = 0x01C6;\n t['dzcurl'] = 0x02A5;\n t['dzeabkhasiancyrillic'] = 0x04E1;\n t['dzecyrillic'] = 0x0455;\n t['dzhecyrillic'] = 0x045F;\n t['e'] = 0x0065;\n t['eacute'] = 0x00E9;\n t['earth'] = 0x2641;\n t['ebengali'] = 0x098F;\n t['ebopomofo'] = 0x311C;\n t['ebreve'] = 0x0115;\n t['ecandradeva'] = 0x090D;\n t['ecandragujarati'] = 0x0A8D;\n t['ecandravowelsigndeva'] = 0x0945;\n t['ecandravowelsigngujarati'] = 0x0AC5;\n t['ecaron'] = 0x011B;\n t['ecedillabreve'] = 0x1E1D;\n t['echarmenian'] = 0x0565;\n t['echyiwnarmenian'] = 0x0587;\n t['ecircle'] = 0x24D4;\n t['ecircumflex'] = 0x00EA;\n t['ecircumflexacute'] = 0x1EBF;\n t['ecircumflexbelow'] = 0x1E19;\n t['ecircumflexdotbelow'] = 0x1EC7;\n t['ecircumflexgrave'] = 0x1EC1;\n t['ecircumflexhookabove'] = 0x1EC3;\n t['ecircumflextilde'] = 0x1EC5;\n t['ecyrillic'] = 0x0454;\n t['edblgrave'] = 0x0205;\n t['edeva'] = 0x090F;\n t['edieresis'] = 0x00EB;\n t['edot'] = 0x0117;\n t['edotaccent'] = 0x0117;\n t['edotbelow'] = 0x1EB9;\n t['eegurmukhi'] = 0x0A0F;\n t['eematragurmukhi'] = 0x0A47;\n t['efcyrillic'] = 0x0444;\n t['egrave'] = 0x00E8;\n t['egujarati'] = 0x0A8F;\n t['eharmenian'] = 0x0567;\n t['ehbopomofo'] = 0x311D;\n t['ehiragana'] = 0x3048;\n t['ehookabove'] = 0x1EBB;\n t['eibopomofo'] = 0x311F;\n t['eight'] = 0x0038;\n t['eightarabic'] = 0x0668;\n t['eightbengali'] = 0x09EE;\n t['eightcircle'] = 0x2467;\n t['eightcircleinversesansserif'] = 0x2791;\n t['eightdeva'] = 0x096E;\n t['eighteencircle'] = 0x2471;\n t['eighteenparen'] = 0x2485;\n t['eighteenperiod'] = 0x2499;\n t['eightgujarati'] = 0x0AEE;\n t['eightgurmukhi'] = 0x0A6E;\n t['eighthackarabic'] = 0x0668;\n t['eighthangzhou'] = 0x3028;\n t['eighthnotebeamed'] = 0x266B;\n t['eightideographicparen'] = 0x3227;\n t['eightinferior'] = 0x2088;\n t['eightmonospace'] = 0xFF18;\n t['eightoldstyle'] = 0xF738;\n t['eightparen'] = 0x247B;\n t['eightperiod'] = 0x248F;\n t['eightpersian'] = 0x06F8;\n t['eightroman'] = 0x2177;\n t['eightsuperior'] = 0x2078;\n t['eightthai'] = 0x0E58;\n t['einvertedbreve'] = 0x0207;\n t['eiotifiedcyrillic'] = 0x0465;\n t['ekatakana'] = 0x30A8;\n t['ekatakanahalfwidth'] = 0xFF74;\n t['ekonkargurmukhi'] = 0x0A74;\n t['ekorean'] = 0x3154;\n t['elcyrillic'] = 0x043B;\n t['element'] = 0x2208;\n t['elevencircle'] = 0x246A;\n t['elevenparen'] = 0x247E;\n t['elevenperiod'] = 0x2492;\n t['elevenroman'] = 0x217A;\n t['ellipsis'] = 0x2026;\n t['ellipsisvertical'] = 0x22EE;\n t['emacron'] = 0x0113;\n t['emacronacute'] = 0x1E17;\n t['emacrongrave'] = 0x1E15;\n t['emcyrillic'] = 0x043C;\n t['emdash'] = 0x2014;\n t['emdashvertical'] = 0xFE31;\n t['emonospace'] = 0xFF45;\n t['emphasismarkarmenian'] = 0x055B;\n t['emptyset'] = 0x2205;\n t['enbopomofo'] = 0x3123;\n t['encyrillic'] = 0x043D;\n t['endash'] = 0x2013;\n t['endashvertical'] = 0xFE32;\n t['endescendercyrillic'] = 0x04A3;\n t['eng'] = 0x014B;\n t['engbopomofo'] = 0x3125;\n t['enghecyrillic'] = 0x04A5;\n t['enhookcyrillic'] = 0x04C8;\n t['enspace'] = 0x2002;\n t['eogonek'] = 0x0119;\n t['eokorean'] = 0x3153;\n t['eopen'] = 0x025B;\n t['eopenclosed'] = 0x029A;\n t['eopenreversed'] = 0x025C;\n t['eopenreversedclosed'] = 0x025E;\n t['eopenreversedhook'] = 0x025D;\n t['eparen'] = 0x24A0;\n t['epsilon'] = 0x03B5;\n t['epsilontonos'] = 0x03AD;\n t['equal'] = 0x003D;\n t['equalmonospace'] = 0xFF1D;\n t['equalsmall'] = 0xFE66;\n t['equalsuperior'] = 0x207C;\n t['equivalence'] = 0x2261;\n t['erbopomofo'] = 0x3126;\n t['ercyrillic'] = 0x0440;\n t['ereversed'] = 0x0258;\n t['ereversedcyrillic'] = 0x044D;\n t['escyrillic'] = 0x0441;\n t['esdescendercyrillic'] = 0x04AB;\n t['esh'] = 0x0283;\n t['eshcurl'] = 0x0286;\n t['eshortdeva'] = 0x090E;\n t['eshortvowelsigndeva'] = 0x0946;\n t['eshreversedloop'] = 0x01AA;\n t['eshsquatreversed'] = 0x0285;\n t['esmallhiragana'] = 0x3047;\n t['esmallkatakana'] = 0x30A7;\n t['esmallkatakanahalfwidth'] = 0xFF6A;\n t['estimated'] = 0x212E;\n t['esuperior'] = 0xF6EC;\n t['eta'] = 0x03B7;\n t['etarmenian'] = 0x0568;\n t['etatonos'] = 0x03AE;\n t['eth'] = 0x00F0;\n t['etilde'] = 0x1EBD;\n t['etildebelow'] = 0x1E1B;\n t['etnahtafoukhhebrew'] = 0x0591;\n t['etnahtafoukhlefthebrew'] = 0x0591;\n t['etnahtahebrew'] = 0x0591;\n t['etnahtalefthebrew'] = 0x0591;\n t['eturned'] = 0x01DD;\n t['eukorean'] = 0x3161;\n t['euro'] = 0x20AC;\n t['evowelsignbengali'] = 0x09C7;\n t['evowelsigndeva'] = 0x0947;\n t['evowelsigngujarati'] = 0x0AC7;\n t['exclam'] = 0x0021;\n t['exclamarmenian'] = 0x055C;\n t['exclamdbl'] = 0x203C;\n t['exclamdown'] = 0x00A1;\n t['exclamdownsmall'] = 0xF7A1;\n t['exclammonospace'] = 0xFF01;\n t['exclamsmall'] = 0xF721;\n t['existential'] = 0x2203;\n t['ezh'] = 0x0292;\n t['ezhcaron'] = 0x01EF;\n t['ezhcurl'] = 0x0293;\n t['ezhreversed'] = 0x01B9;\n t['ezhtail'] = 0x01BA;\n t['f'] = 0x0066;\n t['fadeva'] = 0x095E;\n t['fagurmukhi'] = 0x0A5E;\n t['fahrenheit'] = 0x2109;\n t['fathaarabic'] = 0x064E;\n t['fathalowarabic'] = 0x064E;\n t['fathatanarabic'] = 0x064B;\n t['fbopomofo'] = 0x3108;\n t['fcircle'] = 0x24D5;\n t['fdotaccent'] = 0x1E1F;\n t['feharabic'] = 0x0641;\n t['feharmenian'] = 0x0586;\n t['fehfinalarabic'] = 0xFED2;\n t['fehinitialarabic'] = 0xFED3;\n t['fehmedialarabic'] = 0xFED4;\n t['feicoptic'] = 0x03E5;\n t['female'] = 0x2640;\n t['ff'] = 0xFB00;\n t['ffi'] = 0xFB03;\n t['ffl'] = 0xFB04;\n t['fi'] = 0xFB01;\n t['fifteencircle'] = 0x246E;\n t['fifteenparen'] = 0x2482;\n t['fifteenperiod'] = 0x2496;\n t['figuredash'] = 0x2012;\n t['filledbox'] = 0x25A0;\n t['filledrect'] = 0x25AC;\n t['finalkaf'] = 0x05DA;\n t['finalkafdagesh'] = 0xFB3A;\n t['finalkafdageshhebrew'] = 0xFB3A;\n t['finalkafhebrew'] = 0x05DA;\n t['finalmem'] = 0x05DD;\n t['finalmemhebrew'] = 0x05DD;\n t['finalnun'] = 0x05DF;\n t['finalnunhebrew'] = 0x05DF;\n t['finalpe'] = 0x05E3;\n t['finalpehebrew'] = 0x05E3;\n t['finaltsadi'] = 0x05E5;\n t['finaltsadihebrew'] = 0x05E5;\n t['firsttonechinese'] = 0x02C9;\n t['fisheye'] = 0x25C9;\n t['fitacyrillic'] = 0x0473;\n t['five'] = 0x0035;\n t['fivearabic'] = 0x0665;\n t['fivebengali'] = 0x09EB;\n t['fivecircle'] = 0x2464;\n t['fivecircleinversesansserif'] = 0x278E;\n t['fivedeva'] = 0x096B;\n t['fiveeighths'] = 0x215D;\n t['fivegujarati'] = 0x0AEB;\n t['fivegurmukhi'] = 0x0A6B;\n t['fivehackarabic'] = 0x0665;\n t['fivehangzhou'] = 0x3025;\n t['fiveideographicparen'] = 0x3224;\n t['fiveinferior'] = 0x2085;\n t['fivemonospace'] = 0xFF15;\n t['fiveoldstyle'] = 0xF735;\n t['fiveparen'] = 0x2478;\n t['fiveperiod'] = 0x248C;\n t['fivepersian'] = 0x06F5;\n t['fiveroman'] = 0x2174;\n t['fivesuperior'] = 0x2075;\n t['fivethai'] = 0x0E55;\n t['fl'] = 0xFB02;\n t['florin'] = 0x0192;\n t['fmonospace'] = 0xFF46;\n t['fmsquare'] = 0x3399;\n t['fofanthai'] = 0x0E1F;\n t['fofathai'] = 0x0E1D;\n t['fongmanthai'] = 0x0E4F;\n t['forall'] = 0x2200;\n t['four'] = 0x0034;\n t['fourarabic'] = 0x0664;\n t['fourbengali'] = 0x09EA;\n t['fourcircle'] = 0x2463;\n t['fourcircleinversesansserif'] = 0x278D;\n t['fourdeva'] = 0x096A;\n t['fourgujarati'] = 0x0AEA;\n t['fourgurmukhi'] = 0x0A6A;\n t['fourhackarabic'] = 0x0664;\n t['fourhangzhou'] = 0x3024;\n t['fourideographicparen'] = 0x3223;\n t['fourinferior'] = 0x2084;\n t['fourmonospace'] = 0xFF14;\n t['fournumeratorbengali'] = 0x09F7;\n t['fouroldstyle'] = 0xF734;\n t['fourparen'] = 0x2477;\n t['fourperiod'] = 0x248B;\n t['fourpersian'] = 0x06F4;\n t['fourroman'] = 0x2173;\n t['foursuperior'] = 0x2074;\n t['fourteencircle'] = 0x246D;\n t['fourteenparen'] = 0x2481;\n t['fourteenperiod'] = 0x2495;\n t['fourthai'] = 0x0E54;\n t['fourthtonechinese'] = 0x02CB;\n t['fparen'] = 0x24A1;\n t['fraction'] = 0x2044;\n t['franc'] = 0x20A3;\n t['g'] = 0x0067;\n t['gabengali'] = 0x0997;\n t['gacute'] = 0x01F5;\n t['gadeva'] = 0x0917;\n t['gafarabic'] = 0x06AF;\n t['gaffinalarabic'] = 0xFB93;\n t['gafinitialarabic'] = 0xFB94;\n t['gafmedialarabic'] = 0xFB95;\n t['gagujarati'] = 0x0A97;\n t['gagurmukhi'] = 0x0A17;\n t['gahiragana'] = 0x304C;\n t['gakatakana'] = 0x30AC;\n t['gamma'] = 0x03B3;\n t['gammalatinsmall'] = 0x0263;\n t['gammasuperior'] = 0x02E0;\n t['gangiacoptic'] = 0x03EB;\n t['gbopomofo'] = 0x310D;\n t['gbreve'] = 0x011F;\n t['gcaron'] = 0x01E7;\n t['gcedilla'] = 0x0123;\n t['gcircle'] = 0x24D6;\n t['gcircumflex'] = 0x011D;\n t['gcommaaccent'] = 0x0123;\n t['gdot'] = 0x0121;\n t['gdotaccent'] = 0x0121;\n t['gecyrillic'] = 0x0433;\n t['gehiragana'] = 0x3052;\n t['gekatakana'] = 0x30B2;\n t['geometricallyequal'] = 0x2251;\n t['gereshaccenthebrew'] = 0x059C;\n t['gereshhebrew'] = 0x05F3;\n t['gereshmuqdamhebrew'] = 0x059D;\n t['germandbls'] = 0x00DF;\n t['gershayimaccenthebrew'] = 0x059E;\n t['gershayimhebrew'] = 0x05F4;\n t['getamark'] = 0x3013;\n t['ghabengali'] = 0x0998;\n t['ghadarmenian'] = 0x0572;\n t['ghadeva'] = 0x0918;\n t['ghagujarati'] = 0x0A98;\n t['ghagurmukhi'] = 0x0A18;\n t['ghainarabic'] = 0x063A;\n t['ghainfinalarabic'] = 0xFECE;\n t['ghaininitialarabic'] = 0xFECF;\n t['ghainmedialarabic'] = 0xFED0;\n t['ghemiddlehookcyrillic'] = 0x0495;\n t['ghestrokecyrillic'] = 0x0493;\n t['gheupturncyrillic'] = 0x0491;\n t['ghhadeva'] = 0x095A;\n t['ghhagurmukhi'] = 0x0A5A;\n t['ghook'] = 0x0260;\n t['ghzsquare'] = 0x3393;\n t['gihiragana'] = 0x304E;\n t['gikatakana'] = 0x30AE;\n t['gimarmenian'] = 0x0563;\n t['gimel'] = 0x05D2;\n t['gimeldagesh'] = 0xFB32;\n t['gimeldageshhebrew'] = 0xFB32;\n t['gimelhebrew'] = 0x05D2;\n t['gjecyrillic'] = 0x0453;\n t['glottalinvertedstroke'] = 0x01BE;\n t['glottalstop'] = 0x0294;\n t['glottalstopinverted'] = 0x0296;\n t['glottalstopmod'] = 0x02C0;\n t['glottalstopreversed'] = 0x0295;\n t['glottalstopreversedmod'] = 0x02C1;\n t['glottalstopreversedsuperior'] = 0x02E4;\n t['glottalstopstroke'] = 0x02A1;\n t['glottalstopstrokereversed'] = 0x02A2;\n t['gmacron'] = 0x1E21;\n t['gmonospace'] = 0xFF47;\n t['gohiragana'] = 0x3054;\n t['gokatakana'] = 0x30B4;\n t['gparen'] = 0x24A2;\n t['gpasquare'] = 0x33AC;\n t['gradient'] = 0x2207;\n t['grave'] = 0x0060;\n t['gravebelowcmb'] = 0x0316;\n t['gravecmb'] = 0x0300;\n t['gravecomb'] = 0x0300;\n t['gravedeva'] = 0x0953;\n t['gravelowmod'] = 0x02CE;\n t['gravemonospace'] = 0xFF40;\n t['gravetonecmb'] = 0x0340;\n t['greater'] = 0x003E;\n t['greaterequal'] = 0x2265;\n t['greaterequalorless'] = 0x22DB;\n t['greatermonospace'] = 0xFF1E;\n t['greaterorequivalent'] = 0x2273;\n t['greaterorless'] = 0x2277;\n t['greateroverequal'] = 0x2267;\n t['greatersmall'] = 0xFE65;\n t['gscript'] = 0x0261;\n t['gstroke'] = 0x01E5;\n t['guhiragana'] = 0x3050;\n t['guillemotleft'] = 0x00AB;\n t['guillemotright'] = 0x00BB;\n t['guilsinglleft'] = 0x2039;\n t['guilsinglright'] = 0x203A;\n t['gukatakana'] = 0x30B0;\n t['guramusquare'] = 0x3318;\n t['gysquare'] = 0x33C9;\n t['h'] = 0x0068;\n t['haabkhasiancyrillic'] = 0x04A9;\n t['haaltonearabic'] = 0x06C1;\n t['habengali'] = 0x09B9;\n t['hadescendercyrillic'] = 0x04B3;\n t['hadeva'] = 0x0939;\n t['hagujarati'] = 0x0AB9;\n t['hagurmukhi'] = 0x0A39;\n t['haharabic'] = 0x062D;\n t['hahfinalarabic'] = 0xFEA2;\n t['hahinitialarabic'] = 0xFEA3;\n t['hahiragana'] = 0x306F;\n t['hahmedialarabic'] = 0xFEA4;\n t['haitusquare'] = 0x332A;\n t['hakatakana'] = 0x30CF;\n t['hakatakanahalfwidth'] = 0xFF8A;\n t['halantgurmukhi'] = 0x0A4D;\n t['hamzaarabic'] = 0x0621;\n t['hamzalowarabic'] = 0x0621;\n t['hangulfiller'] = 0x3164;\n t['hardsigncyrillic'] = 0x044A;\n t['harpoonleftbarbup'] = 0x21BC;\n t['harpoonrightbarbup'] = 0x21C0;\n t['hasquare'] = 0x33CA;\n t['hatafpatah'] = 0x05B2;\n t['hatafpatah16'] = 0x05B2;\n t['hatafpatah23'] = 0x05B2;\n t['hatafpatah2f'] = 0x05B2;\n t['hatafpatahhebrew'] = 0x05B2;\n t['hatafpatahnarrowhebrew'] = 0x05B2;\n t['hatafpatahquarterhebrew'] = 0x05B2;\n t['hatafpatahwidehebrew'] = 0x05B2;\n t['hatafqamats'] = 0x05B3;\n t['hatafqamats1b'] = 0x05B3;\n t['hatafqamats28'] = 0x05B3;\n t['hatafqamats34'] = 0x05B3;\n t['hatafqamatshebrew'] = 0x05B3;\n t['hatafqamatsnarrowhebrew'] = 0x05B3;\n t['hatafqamatsquarterhebrew'] = 0x05B3;\n t['hatafqamatswidehebrew'] = 0x05B3;\n t['hatafsegol'] = 0x05B1;\n t['hatafsegol17'] = 0x05B1;\n t['hatafsegol24'] = 0x05B1;\n t['hatafsegol30'] = 0x05B1;\n t['hatafsegolhebrew'] = 0x05B1;\n t['hatafsegolnarrowhebrew'] = 0x05B1;\n t['hatafsegolquarterhebrew'] = 0x05B1;\n t['hatafsegolwidehebrew'] = 0x05B1;\n t['hbar'] = 0x0127;\n t['hbopomofo'] = 0x310F;\n t['hbrevebelow'] = 0x1E2B;\n t['hcedilla'] = 0x1E29;\n t['hcircle'] = 0x24D7;\n t['hcircumflex'] = 0x0125;\n t['hdieresis'] = 0x1E27;\n t['hdotaccent'] = 0x1E23;\n t['hdotbelow'] = 0x1E25;\n t['he'] = 0x05D4;\n t['heart'] = 0x2665;\n t['heartsuitblack'] = 0x2665;\n t['heartsuitwhite'] = 0x2661;\n t['hedagesh'] = 0xFB34;\n t['hedageshhebrew'] = 0xFB34;\n t['hehaltonearabic'] = 0x06C1;\n t['heharabic'] = 0x0647;\n t['hehebrew'] = 0x05D4;\n t['hehfinalaltonearabic'] = 0xFBA7;\n t['hehfinalalttwoarabic'] = 0xFEEA;\n t['hehfinalarabic'] = 0xFEEA;\n t['hehhamzaabovefinalarabic'] = 0xFBA5;\n t['hehhamzaaboveisolatedarabic'] = 0xFBA4;\n t['hehinitialaltonearabic'] = 0xFBA8;\n t['hehinitialarabic'] = 0xFEEB;\n t['hehiragana'] = 0x3078;\n t['hehmedialaltonearabic'] = 0xFBA9;\n t['hehmedialarabic'] = 0xFEEC;\n t['heiseierasquare'] = 0x337B;\n t['hekatakana'] = 0x30D8;\n t['hekatakanahalfwidth'] = 0xFF8D;\n t['hekutaarusquare'] = 0x3336;\n t['henghook'] = 0x0267;\n t['herutusquare'] = 0x3339;\n t['het'] = 0x05D7;\n t['hethebrew'] = 0x05D7;\n t['hhook'] = 0x0266;\n t['hhooksuperior'] = 0x02B1;\n t['hieuhacirclekorean'] = 0x327B;\n t['hieuhaparenkorean'] = 0x321B;\n t['hieuhcirclekorean'] = 0x326D;\n t['hieuhkorean'] = 0x314E;\n t['hieuhparenkorean'] = 0x320D;\n t['hihiragana'] = 0x3072;\n t['hikatakana'] = 0x30D2;\n t['hikatakanahalfwidth'] = 0xFF8B;\n t['hiriq'] = 0x05B4;\n t['hiriq14'] = 0x05B4;\n t['hiriq21'] = 0x05B4;\n t['hiriq2d'] = 0x05B4;\n t['hiriqhebrew'] = 0x05B4;\n t['hiriqnarrowhebrew'] = 0x05B4;\n t['hiriqquarterhebrew'] = 0x05B4;\n t['hiriqwidehebrew'] = 0x05B4;\n t['hlinebelow'] = 0x1E96;\n t['hmonospace'] = 0xFF48;\n t['hoarmenian'] = 0x0570;\n t['hohipthai'] = 0x0E2B;\n t['hohiragana'] = 0x307B;\n t['hokatakana'] = 0x30DB;\n t['hokatakanahalfwidth'] = 0xFF8E;\n t['holam'] = 0x05B9;\n t['holam19'] = 0x05B9;\n t['holam26'] = 0x05B9;\n t['holam32'] = 0x05B9;\n t['holamhebrew'] = 0x05B9;\n t['holamnarrowhebrew'] = 0x05B9;\n t['holamquarterhebrew'] = 0x05B9;\n t['holamwidehebrew'] = 0x05B9;\n t['honokhukthai'] = 0x0E2E;\n t['hookabovecomb'] = 0x0309;\n t['hookcmb'] = 0x0309;\n t['hookpalatalizedbelowcmb'] = 0x0321;\n t['hookretroflexbelowcmb'] = 0x0322;\n t['hoonsquare'] = 0x3342;\n t['horicoptic'] = 0x03E9;\n t['horizontalbar'] = 0x2015;\n t['horncmb'] = 0x031B;\n t['hotsprings'] = 0x2668;\n t['house'] = 0x2302;\n t['hparen'] = 0x24A3;\n t['hsuperior'] = 0x02B0;\n t['hturned'] = 0x0265;\n t['huhiragana'] = 0x3075;\n t['huiitosquare'] = 0x3333;\n t['hukatakana'] = 0x30D5;\n t['hukatakanahalfwidth'] = 0xFF8C;\n t['hungarumlaut'] = 0x02DD;\n t['hungarumlautcmb'] = 0x030B;\n t['hv'] = 0x0195;\n t['hyphen'] = 0x002D;\n t['hypheninferior'] = 0xF6E5;\n t['hyphenmonospace'] = 0xFF0D;\n t['hyphensmall'] = 0xFE63;\n t['hyphensuperior'] = 0xF6E6;\n t['hyphentwo'] = 0x2010;\n t['i'] = 0x0069;\n t['iacute'] = 0x00ED;\n t['iacyrillic'] = 0x044F;\n t['ibengali'] = 0x0987;\n t['ibopomofo'] = 0x3127;\n t['ibreve'] = 0x012D;\n t['icaron'] = 0x01D0;\n t['icircle'] = 0x24D8;\n t['icircumflex'] = 0x00EE;\n t['icyrillic'] = 0x0456;\n t['idblgrave'] = 0x0209;\n t['ideographearthcircle'] = 0x328F;\n t['ideographfirecircle'] = 0x328B;\n t['ideographicallianceparen'] = 0x323F;\n t['ideographiccallparen'] = 0x323A;\n t['ideographiccentrecircle'] = 0x32A5;\n t['ideographicclose'] = 0x3006;\n t['ideographiccomma'] = 0x3001;\n t['ideographiccommaleft'] = 0xFF64;\n t['ideographiccongratulationparen'] = 0x3237;\n t['ideographiccorrectcircle'] = 0x32A3;\n t['ideographicearthparen'] = 0x322F;\n t['ideographicenterpriseparen'] = 0x323D;\n t['ideographicexcellentcircle'] = 0x329D;\n t['ideographicfestivalparen'] = 0x3240;\n t['ideographicfinancialcircle'] = 0x3296;\n t['ideographicfinancialparen'] = 0x3236;\n t['ideographicfireparen'] = 0x322B;\n t['ideographichaveparen'] = 0x3232;\n t['ideographichighcircle'] = 0x32A4;\n t['ideographiciterationmark'] = 0x3005;\n t['ideographiclaborcircle'] = 0x3298;\n t['ideographiclaborparen'] = 0x3238;\n t['ideographicleftcircle'] = 0x32A7;\n t['ideographiclowcircle'] = 0x32A6;\n t['ideographicmedicinecircle'] = 0x32A9;\n t['ideographicmetalparen'] = 0x322E;\n t['ideographicmoonparen'] = 0x322A;\n t['ideographicnameparen'] = 0x3234;\n t['ideographicperiod'] = 0x3002;\n t['ideographicprintcircle'] = 0x329E;\n t['ideographicreachparen'] = 0x3243;\n t['ideographicrepresentparen'] = 0x3239;\n t['ideographicresourceparen'] = 0x323E;\n t['ideographicrightcircle'] = 0x32A8;\n t['ideographicsecretcircle'] = 0x3299;\n t['ideographicselfparen'] = 0x3242;\n t['ideographicsocietyparen'] = 0x3233;\n t['ideographicspace'] = 0x3000;\n t['ideographicspecialparen'] = 0x3235;\n t['ideographicstockparen'] = 0x3231;\n t['ideographicstudyparen'] = 0x323B;\n t['ideographicsunparen'] = 0x3230;\n t['ideographicsuperviseparen'] = 0x323C;\n t['ideographicwaterparen'] = 0x322C;\n t['ideographicwoodparen'] = 0x322D;\n t['ideographiczero'] = 0x3007;\n t['ideographmetalcircle'] = 0x328E;\n t['ideographmooncircle'] = 0x328A;\n t['ideographnamecircle'] = 0x3294;\n t['ideographsuncircle'] = 0x3290;\n t['ideographwatercircle'] = 0x328C;\n t['ideographwoodcircle'] = 0x328D;\n t['ideva'] = 0x0907;\n t['idieresis'] = 0x00EF;\n t['idieresisacute'] = 0x1E2F;\n t['idieresiscyrillic'] = 0x04E5;\n t['idotbelow'] = 0x1ECB;\n t['iebrevecyrillic'] = 0x04D7;\n t['iecyrillic'] = 0x0435;\n t['ieungacirclekorean'] = 0x3275;\n t['ieungaparenkorean'] = 0x3215;\n t['ieungcirclekorean'] = 0x3267;\n t['ieungkorean'] = 0x3147;\n t['ieungparenkorean'] = 0x3207;\n t['igrave'] = 0x00EC;\n t['igujarati'] = 0x0A87;\n t['igurmukhi'] = 0x0A07;\n t['ihiragana'] = 0x3044;\n t['ihookabove'] = 0x1EC9;\n t['iibengali'] = 0x0988;\n t['iicyrillic'] = 0x0438;\n t['iideva'] = 0x0908;\n t['iigujarati'] = 0x0A88;\n t['iigurmukhi'] = 0x0A08;\n t['iimatragurmukhi'] = 0x0A40;\n t['iinvertedbreve'] = 0x020B;\n t['iishortcyrillic'] = 0x0439;\n t['iivowelsignbengali'] = 0x09C0;\n t['iivowelsigndeva'] = 0x0940;\n t['iivowelsigngujarati'] = 0x0AC0;\n t['ij'] = 0x0133;\n t['ikatakana'] = 0x30A4;\n t['ikatakanahalfwidth'] = 0xFF72;\n t['ikorean'] = 0x3163;\n t['ilde'] = 0x02DC;\n t['iluyhebrew'] = 0x05AC;\n t['imacron'] = 0x012B;\n t['imacroncyrillic'] = 0x04E3;\n t['imageorapproximatelyequal'] = 0x2253;\n t['imatragurmukhi'] = 0x0A3F;\n t['imonospace'] = 0xFF49;\n t['increment'] = 0x2206;\n t['infinity'] = 0x221E;\n t['iniarmenian'] = 0x056B;\n t['integral'] = 0x222B;\n t['integralbottom'] = 0x2321;\n t['integralbt'] = 0x2321;\n t['integralex'] = 0xF8F5;\n t['integraltop'] = 0x2320;\n t['integraltp'] = 0x2320;\n t['intersection'] = 0x2229;\n t['intisquare'] = 0x3305;\n t['invbullet'] = 0x25D8;\n t['invcircle'] = 0x25D9;\n t['invsmileface'] = 0x263B;\n t['iocyrillic'] = 0x0451;\n t['iogonek'] = 0x012F;\n t['iota'] = 0x03B9;\n t['iotadieresis'] = 0x03CA;\n t['iotadieresistonos'] = 0x0390;\n t['iotalatin'] = 0x0269;\n t['iotatonos'] = 0x03AF;\n t['iparen'] = 0x24A4;\n t['irigurmukhi'] = 0x0A72;\n t['ismallhiragana'] = 0x3043;\n t['ismallkatakana'] = 0x30A3;\n t['ismallkatakanahalfwidth'] = 0xFF68;\n t['issharbengali'] = 0x09FA;\n t['istroke'] = 0x0268;\n t['isuperior'] = 0xF6ED;\n t['iterationhiragana'] = 0x309D;\n t['iterationkatakana'] = 0x30FD;\n t['itilde'] = 0x0129;\n t['itildebelow'] = 0x1E2D;\n t['iubopomofo'] = 0x3129;\n t['iucyrillic'] = 0x044E;\n t['ivowelsignbengali'] = 0x09BF;\n t['ivowelsigndeva'] = 0x093F;\n t['ivowelsigngujarati'] = 0x0ABF;\n t['izhitsacyrillic'] = 0x0475;\n t['izhitsadblgravecyrillic'] = 0x0477;\n t['j'] = 0x006A;\n t['jaarmenian'] = 0x0571;\n t['jabengali'] = 0x099C;\n t['jadeva'] = 0x091C;\n t['jagujarati'] = 0x0A9C;\n t['jagurmukhi'] = 0x0A1C;\n t['jbopomofo'] = 0x3110;\n t['jcaron'] = 0x01F0;\n t['jcircle'] = 0x24D9;\n t['jcircumflex'] = 0x0135;\n t['jcrossedtail'] = 0x029D;\n t['jdotlessstroke'] = 0x025F;\n t['jecyrillic'] = 0x0458;\n t['jeemarabic'] = 0x062C;\n t['jeemfinalarabic'] = 0xFE9E;\n t['jeeminitialarabic'] = 0xFE9F;\n t['jeemmedialarabic'] = 0xFEA0;\n t['jeharabic'] = 0x0698;\n t['jehfinalarabic'] = 0xFB8B;\n t['jhabengali'] = 0x099D;\n t['jhadeva'] = 0x091D;\n t['jhagujarati'] = 0x0A9D;\n t['jhagurmukhi'] = 0x0A1D;\n t['jheharmenian'] = 0x057B;\n t['jis'] = 0x3004;\n t['jmonospace'] = 0xFF4A;\n t['jparen'] = 0x24A5;\n t['jsuperior'] = 0x02B2;\n t['k'] = 0x006B;\n t['kabashkircyrillic'] = 0x04A1;\n t['kabengali'] = 0x0995;\n t['kacute'] = 0x1E31;\n t['kacyrillic'] = 0x043A;\n t['kadescendercyrillic'] = 0x049B;\n t['kadeva'] = 0x0915;\n t['kaf'] = 0x05DB;\n t['kafarabic'] = 0x0643;\n t['kafdagesh'] = 0xFB3B;\n t['kafdageshhebrew'] = 0xFB3B;\n t['kaffinalarabic'] = 0xFEDA;\n t['kafhebrew'] = 0x05DB;\n t['kafinitialarabic'] = 0xFEDB;\n t['kafmedialarabic'] = 0xFEDC;\n t['kafrafehebrew'] = 0xFB4D;\n t['kagujarati'] = 0x0A95;\n t['kagurmukhi'] = 0x0A15;\n t['kahiragana'] = 0x304B;\n t['kahookcyrillic'] = 0x04C4;\n t['kakatakana'] = 0x30AB;\n t['kakatakanahalfwidth'] = 0xFF76;\n t['kappa'] = 0x03BA;\n t['kappasymbolgreek'] = 0x03F0;\n t['kapyeounmieumkorean'] = 0x3171;\n t['kapyeounphieuphkorean'] = 0x3184;\n t['kapyeounpieupkorean'] = 0x3178;\n t['kapyeounssangpieupkorean'] = 0x3179;\n t['karoriisquare'] = 0x330D;\n t['kashidaautoarabic'] = 0x0640;\n t['kashidaautonosidebearingarabic'] = 0x0640;\n t['kasmallkatakana'] = 0x30F5;\n t['kasquare'] = 0x3384;\n t['kasraarabic'] = 0x0650;\n t['kasratanarabic'] = 0x064D;\n t['kastrokecyrillic'] = 0x049F;\n t['katahiraprolongmarkhalfwidth'] = 0xFF70;\n t['kaverticalstrokecyrillic'] = 0x049D;\n t['kbopomofo'] = 0x310E;\n t['kcalsquare'] = 0x3389;\n t['kcaron'] = 0x01E9;\n t['kcedilla'] = 0x0137;\n t['kcircle'] = 0x24DA;\n t['kcommaaccent'] = 0x0137;\n t['kdotbelow'] = 0x1E33;\n t['keharmenian'] = 0x0584;\n t['kehiragana'] = 0x3051;\n t['kekatakana'] = 0x30B1;\n t['kekatakanahalfwidth'] = 0xFF79;\n t['kenarmenian'] = 0x056F;\n t['kesmallkatakana'] = 0x30F6;\n t['kgreenlandic'] = 0x0138;\n t['khabengali'] = 0x0996;\n t['khacyrillic'] = 0x0445;\n t['khadeva'] = 0x0916;\n t['khagujarati'] = 0x0A96;\n t['khagurmukhi'] = 0x0A16;\n t['khaharabic'] = 0x062E;\n t['khahfinalarabic'] = 0xFEA6;\n t['khahinitialarabic'] = 0xFEA7;\n t['khahmedialarabic'] = 0xFEA8;\n t['kheicoptic'] = 0x03E7;\n t['khhadeva'] = 0x0959;\n t['khhagurmukhi'] = 0x0A59;\n t['khieukhacirclekorean'] = 0x3278;\n t['khieukhaparenkorean'] = 0x3218;\n t['khieukhcirclekorean'] = 0x326A;\n t['khieukhkorean'] = 0x314B;\n t['khieukhparenkorean'] = 0x320A;\n t['khokhaithai'] = 0x0E02;\n t['khokhonthai'] = 0x0E05;\n t['khokhuatthai'] = 0x0E03;\n t['khokhwaithai'] = 0x0E04;\n t['khomutthai'] = 0x0E5B;\n t['khook'] = 0x0199;\n t['khorakhangthai'] = 0x0E06;\n t['khzsquare'] = 0x3391;\n t['kihiragana'] = 0x304D;\n t['kikatakana'] = 0x30AD;\n t['kikatakanahalfwidth'] = 0xFF77;\n t['kiroguramusquare'] = 0x3315;\n t['kiromeetorusquare'] = 0x3316;\n t['kirosquare'] = 0x3314;\n t['kiyeokacirclekorean'] = 0x326E;\n t['kiyeokaparenkorean'] = 0x320E;\n t['kiyeokcirclekorean'] = 0x3260;\n t['kiyeokkorean'] = 0x3131;\n t['kiyeokparenkorean'] = 0x3200;\n t['kiyeoksioskorean'] = 0x3133;\n t['kjecyrillic'] = 0x045C;\n t['klinebelow'] = 0x1E35;\n t['klsquare'] = 0x3398;\n t['kmcubedsquare'] = 0x33A6;\n t['kmonospace'] = 0xFF4B;\n t['kmsquaredsquare'] = 0x33A2;\n t['kohiragana'] = 0x3053;\n t['kohmsquare'] = 0x33C0;\n t['kokaithai'] = 0x0E01;\n t['kokatakana'] = 0x30B3;\n t['kokatakanahalfwidth'] = 0xFF7A;\n t['kooposquare'] = 0x331E;\n t['koppacyrillic'] = 0x0481;\n t['koreanstandardsymbol'] = 0x327F;\n t['koroniscmb'] = 0x0343;\n t['kparen'] = 0x24A6;\n t['kpasquare'] = 0x33AA;\n t['ksicyrillic'] = 0x046F;\n t['ktsquare'] = 0x33CF;\n t['kturned'] = 0x029E;\n t['kuhiragana'] = 0x304F;\n t['kukatakana'] = 0x30AF;\n t['kukatakanahalfwidth'] = 0xFF78;\n t['kvsquare'] = 0x33B8;\n t['kwsquare'] = 0x33BE;\n t['l'] = 0x006C;\n t['labengali'] = 0x09B2;\n t['lacute'] = 0x013A;\n t['ladeva'] = 0x0932;\n t['lagujarati'] = 0x0AB2;\n t['lagurmukhi'] = 0x0A32;\n t['lakkhangyaothai'] = 0x0E45;\n t['lamaleffinalarabic'] = 0xFEFC;\n t['lamalefhamzaabovefinalarabic'] = 0xFEF8;\n t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7;\n t['lamalefhamzabelowfinalarabic'] = 0xFEFA;\n t['lamalefhamzabelowisolatedarabic'] = 0xFEF9;\n t['lamalefisolatedarabic'] = 0xFEFB;\n t['lamalefmaddaabovefinalarabic'] = 0xFEF6;\n t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5;\n t['lamarabic'] = 0x0644;\n t['lambda'] = 0x03BB;\n t['lambdastroke'] = 0x019B;\n t['lamed'] = 0x05DC;\n t['lameddagesh'] = 0xFB3C;\n t['lameddageshhebrew'] = 0xFB3C;\n t['lamedhebrew'] = 0x05DC;\n t['lamfinalarabic'] = 0xFEDE;\n t['lamhahinitialarabic'] = 0xFCCA;\n t['laminitialarabic'] = 0xFEDF;\n t['lamjeeminitialarabic'] = 0xFCC9;\n t['lamkhahinitialarabic'] = 0xFCCB;\n t['lamlamhehisolatedarabic'] = 0xFDF2;\n t['lammedialarabic'] = 0xFEE0;\n t['lammeemhahinitialarabic'] = 0xFD88;\n t['lammeeminitialarabic'] = 0xFCCC;\n t['largecircle'] = 0x25EF;\n t['lbar'] = 0x019A;\n t['lbelt'] = 0x026C;\n t['lbopomofo'] = 0x310C;\n t['lcaron'] = 0x013E;\n t['lcedilla'] = 0x013C;\n t['lcircle'] = 0x24DB;\n t['lcircumflexbelow'] = 0x1E3D;\n t['lcommaaccent'] = 0x013C;\n t['ldot'] = 0x0140;\n t['ldotaccent'] = 0x0140;\n t['ldotbelow'] = 0x1E37;\n t['ldotbelowmacron'] = 0x1E39;\n t['leftangleabovecmb'] = 0x031A;\n t['lefttackbelowcmb'] = 0x0318;\n t['less'] = 0x003C;\n t['lessequal'] = 0x2264;\n t['lessequalorgreater'] = 0x22DA;\n t['lessmonospace'] = 0xFF1C;\n t['lessorequivalent'] = 0x2272;\n t['lessorgreater'] = 0x2276;\n t['lessoverequal'] = 0x2266;\n t['lesssmall'] = 0xFE64;\n t['lezh'] = 0x026E;\n t['lfblock'] = 0x258C;\n t['lhookretroflex'] = 0x026D;\n t['lira'] = 0x20A4;\n t['liwnarmenian'] = 0x056C;\n t['lj'] = 0x01C9;\n t['ljecyrillic'] = 0x0459;\n t['ll'] = 0xF6C0;\n t['lladeva'] = 0x0933;\n t['llagujarati'] = 0x0AB3;\n t['llinebelow'] = 0x1E3B;\n t['llladeva'] = 0x0934;\n t['llvocalicbengali'] = 0x09E1;\n t['llvocalicdeva'] = 0x0961;\n t['llvocalicvowelsignbengali'] = 0x09E3;\n t['llvocalicvowelsigndeva'] = 0x0963;\n t['lmiddletilde'] = 0x026B;\n t['lmonospace'] = 0xFF4C;\n t['lmsquare'] = 0x33D0;\n t['lochulathai'] = 0x0E2C;\n t['logicaland'] = 0x2227;\n t['logicalnot'] = 0x00AC;\n t['logicalnotreversed'] = 0x2310;\n t['logicalor'] = 0x2228;\n t['lolingthai'] = 0x0E25;\n t['longs'] = 0x017F;\n t['lowlinecenterline'] = 0xFE4E;\n t['lowlinecmb'] = 0x0332;\n t['lowlinedashed'] = 0xFE4D;\n t['lozenge'] = 0x25CA;\n t['lparen'] = 0x24A7;\n t['lslash'] = 0x0142;\n t['lsquare'] = 0x2113;\n t['lsuperior'] = 0xF6EE;\n t['ltshade'] = 0x2591;\n t['luthai'] = 0x0E26;\n t['lvocalicbengali'] = 0x098C;\n t['lvocalicdeva'] = 0x090C;\n t['lvocalicvowelsignbengali'] = 0x09E2;\n t['lvocalicvowelsigndeva'] = 0x0962;\n t['lxsquare'] = 0x33D3;\n t['m'] = 0x006D;\n t['mabengali'] = 0x09AE;\n t['macron'] = 0x00AF;\n t['macronbelowcmb'] = 0x0331;\n t['macroncmb'] = 0x0304;\n t['macronlowmod'] = 0x02CD;\n t['macronmonospace'] = 0xFFE3;\n t['macute'] = 0x1E3F;\n t['madeva'] = 0x092E;\n t['magujarati'] = 0x0AAE;\n t['magurmukhi'] = 0x0A2E;\n t['mahapakhhebrew'] = 0x05A4;\n t['mahapakhlefthebrew'] = 0x05A4;\n t['mahiragana'] = 0x307E;\n t['maichattawalowleftthai'] = 0xF895;\n t['maichattawalowrightthai'] = 0xF894;\n t['maichattawathai'] = 0x0E4B;\n t['maichattawaupperleftthai'] = 0xF893;\n t['maieklowleftthai'] = 0xF88C;\n t['maieklowrightthai'] = 0xF88B;\n t['maiekthai'] = 0x0E48;\n t['maiekupperleftthai'] = 0xF88A;\n t['maihanakatleftthai'] = 0xF884;\n t['maihanakatthai'] = 0x0E31;\n t['maitaikhuleftthai'] = 0xF889;\n t['maitaikhuthai'] = 0x0E47;\n t['maitholowleftthai'] = 0xF88F;\n t['maitholowrightthai'] = 0xF88E;\n t['maithothai'] = 0x0E49;\n t['maithoupperleftthai'] = 0xF88D;\n t['maitrilowleftthai'] = 0xF892;\n t['maitrilowrightthai'] = 0xF891;\n t['maitrithai'] = 0x0E4A;\n t['maitriupperleftthai'] = 0xF890;\n t['maiyamokthai'] = 0x0E46;\n t['makatakana'] = 0x30DE;\n t['makatakanahalfwidth'] = 0xFF8F;\n t['male'] = 0x2642;\n t['mansyonsquare'] = 0x3347;\n t['maqafhebrew'] = 0x05BE;\n t['mars'] = 0x2642;\n t['masoracirclehebrew'] = 0x05AF;\n t['masquare'] = 0x3383;\n t['mbopomofo'] = 0x3107;\n t['mbsquare'] = 0x33D4;\n t['mcircle'] = 0x24DC;\n t['mcubedsquare'] = 0x33A5;\n t['mdotaccent'] = 0x1E41;\n t['mdotbelow'] = 0x1E43;\n t['meemarabic'] = 0x0645;\n t['meemfinalarabic'] = 0xFEE2;\n t['meeminitialarabic'] = 0xFEE3;\n t['meemmedialarabic'] = 0xFEE4;\n t['meemmeeminitialarabic'] = 0xFCD1;\n t['meemmeemisolatedarabic'] = 0xFC48;\n t['meetorusquare'] = 0x334D;\n t['mehiragana'] = 0x3081;\n t['meizierasquare'] = 0x337E;\n t['mekatakana'] = 0x30E1;\n t['mekatakanahalfwidth'] = 0xFF92;\n t['mem'] = 0x05DE;\n t['memdagesh'] = 0xFB3E;\n t['memdageshhebrew'] = 0xFB3E;\n t['memhebrew'] = 0x05DE;\n t['menarmenian'] = 0x0574;\n t['merkhahebrew'] = 0x05A5;\n t['merkhakefulahebrew'] = 0x05A6;\n t['merkhakefulalefthebrew'] = 0x05A6;\n t['merkhalefthebrew'] = 0x05A5;\n t['mhook'] = 0x0271;\n t['mhzsquare'] = 0x3392;\n t['middledotkatakanahalfwidth'] = 0xFF65;\n t['middot'] = 0x00B7;\n t['mieumacirclekorean'] = 0x3272;\n t['mieumaparenkorean'] = 0x3212;\n t['mieumcirclekorean'] = 0x3264;\n t['mieumkorean'] = 0x3141;\n t['mieumpansioskorean'] = 0x3170;\n t['mieumparenkorean'] = 0x3204;\n t['mieumpieupkorean'] = 0x316E;\n t['mieumsioskorean'] = 0x316F;\n t['mihiragana'] = 0x307F;\n t['mikatakana'] = 0x30DF;\n t['mikatakanahalfwidth'] = 0xFF90;\n t['minus'] = 0x2212;\n t['minusbelowcmb'] = 0x0320;\n t['minuscircle'] = 0x2296;\n t['minusmod'] = 0x02D7;\n t['minusplus'] = 0x2213;\n t['minute'] = 0x2032;\n t['miribaarusquare'] = 0x334A;\n t['mirisquare'] = 0x3349;\n t['mlonglegturned'] = 0x0270;\n t['mlsquare'] = 0x3396;\n t['mmcubedsquare'] = 0x33A3;\n t['mmonospace'] = 0xFF4D;\n t['mmsquaredsquare'] = 0x339F;\n t['mohiragana'] = 0x3082;\n t['mohmsquare'] = 0x33C1;\n t['mokatakana'] = 0x30E2;\n t['mokatakanahalfwidth'] = 0xFF93;\n t['molsquare'] = 0x33D6;\n t['momathai'] = 0x0E21;\n t['moverssquare'] = 0x33A7;\n t['moverssquaredsquare'] = 0x33A8;\n t['mparen'] = 0x24A8;\n t['mpasquare'] = 0x33AB;\n t['mssquare'] = 0x33B3;\n t['msuperior'] = 0xF6EF;\n t['mturned'] = 0x026F;\n t['mu'] = 0x00B5;\n t['mu1'] = 0x00B5;\n t['muasquare'] = 0x3382;\n t['muchgreater'] = 0x226B;\n t['muchless'] = 0x226A;\n t['mufsquare'] = 0x338C;\n t['mugreek'] = 0x03BC;\n t['mugsquare'] = 0x338D;\n t['muhiragana'] = 0x3080;\n t['mukatakana'] = 0x30E0;\n t['mukatakanahalfwidth'] = 0xFF91;\n t['mulsquare'] = 0x3395;\n t['multiply'] = 0x00D7;\n t['mumsquare'] = 0x339B;\n t['munahhebrew'] = 0x05A3;\n t['munahlefthebrew'] = 0x05A3;\n t['musicalnote'] = 0x266A;\n t['musicalnotedbl'] = 0x266B;\n t['musicflatsign'] = 0x266D;\n t['musicsharpsign'] = 0x266F;\n t['mussquare'] = 0x33B2;\n t['muvsquare'] = 0x33B6;\n t['muwsquare'] = 0x33BC;\n t['mvmegasquare'] = 0x33B9;\n t['mvsquare'] = 0x33B7;\n t['mwmegasquare'] = 0x33BF;\n t['mwsquare'] = 0x33BD;\n t['n'] = 0x006E;\n t['nabengali'] = 0x09A8;\n t['nabla'] = 0x2207;\n t['nacute'] = 0x0144;\n t['nadeva'] = 0x0928;\n t['nagujarati'] = 0x0AA8;\n t['nagurmukhi'] = 0x0A28;\n t['nahiragana'] = 0x306A;\n t['nakatakana'] = 0x30CA;\n t['nakatakanahalfwidth'] = 0xFF85;\n t['napostrophe'] = 0x0149;\n t['nasquare'] = 0x3381;\n t['nbopomofo'] = 0x310B;\n t['nbspace'] = 0x00A0;\n t['ncaron'] = 0x0148;\n t['ncedilla'] = 0x0146;\n t['ncircle'] = 0x24DD;\n t['ncircumflexbelow'] = 0x1E4B;\n t['ncommaaccent'] = 0x0146;\n t['ndotaccent'] = 0x1E45;\n t['ndotbelow'] = 0x1E47;\n t['nehiragana'] = 0x306D;\n t['nekatakana'] = 0x30CD;\n t['nekatakanahalfwidth'] = 0xFF88;\n t['newsheqelsign'] = 0x20AA;\n t['nfsquare'] = 0x338B;\n t['ngabengali'] = 0x0999;\n t['ngadeva'] = 0x0919;\n t['ngagujarati'] = 0x0A99;\n t['ngagurmukhi'] = 0x0A19;\n t['ngonguthai'] = 0x0E07;\n t['nhiragana'] = 0x3093;\n t['nhookleft'] = 0x0272;\n t['nhookretroflex'] = 0x0273;\n t['nieunacirclekorean'] = 0x326F;\n t['nieunaparenkorean'] = 0x320F;\n t['nieuncieuckorean'] = 0x3135;\n t['nieuncirclekorean'] = 0x3261;\n t['nieunhieuhkorean'] = 0x3136;\n t['nieunkorean'] = 0x3134;\n t['nieunpansioskorean'] = 0x3168;\n t['nieunparenkorean'] = 0x3201;\n t['nieunsioskorean'] = 0x3167;\n t['nieuntikeutkorean'] = 0x3166;\n t['nihiragana'] = 0x306B;\n t['nikatakana'] = 0x30CB;\n t['nikatakanahalfwidth'] = 0xFF86;\n t['nikhahitleftthai'] = 0xF899;\n t['nikhahitthai'] = 0x0E4D;\n t['nine'] = 0x0039;\n t['ninearabic'] = 0x0669;\n t['ninebengali'] = 0x09EF;\n t['ninecircle'] = 0x2468;\n t['ninecircleinversesansserif'] = 0x2792;\n t['ninedeva'] = 0x096F;\n t['ninegujarati'] = 0x0AEF;\n t['ninegurmukhi'] = 0x0A6F;\n t['ninehackarabic'] = 0x0669;\n t['ninehangzhou'] = 0x3029;\n t['nineideographicparen'] = 0x3228;\n t['nineinferior'] = 0x2089;\n t['ninemonospace'] = 0xFF19;\n t['nineoldstyle'] = 0xF739;\n t['nineparen'] = 0x247C;\n t['nineperiod'] = 0x2490;\n t['ninepersian'] = 0x06F9;\n t['nineroman'] = 0x2178;\n t['ninesuperior'] = 0x2079;\n t['nineteencircle'] = 0x2472;\n t['nineteenparen'] = 0x2486;\n t['nineteenperiod'] = 0x249A;\n t['ninethai'] = 0x0E59;\n t['nj'] = 0x01CC;\n t['njecyrillic'] = 0x045A;\n t['nkatakana'] = 0x30F3;\n t['nkatakanahalfwidth'] = 0xFF9D;\n t['nlegrightlong'] = 0x019E;\n t['nlinebelow'] = 0x1E49;\n t['nmonospace'] = 0xFF4E;\n t['nmsquare'] = 0x339A;\n t['nnabengali'] = 0x09A3;\n t['nnadeva'] = 0x0923;\n t['nnagujarati'] = 0x0AA3;\n t['nnagurmukhi'] = 0x0A23;\n t['nnnadeva'] = 0x0929;\n t['nohiragana'] = 0x306E;\n t['nokatakana'] = 0x30CE;\n t['nokatakanahalfwidth'] = 0xFF89;\n t['nonbreakingspace'] = 0x00A0;\n t['nonenthai'] = 0x0E13;\n t['nonuthai'] = 0x0E19;\n t['noonarabic'] = 0x0646;\n t['noonfinalarabic'] = 0xFEE6;\n t['noonghunnaarabic'] = 0x06BA;\n t['noonghunnafinalarabic'] = 0xFB9F;\n t['nooninitialarabic'] = 0xFEE7;\n t['noonjeeminitialarabic'] = 0xFCD2;\n t['noonjeemisolatedarabic'] = 0xFC4B;\n t['noonmedialarabic'] = 0xFEE8;\n t['noonmeeminitialarabic'] = 0xFCD5;\n t['noonmeemisolatedarabic'] = 0xFC4E;\n t['noonnoonfinalarabic'] = 0xFC8D;\n t['notcontains'] = 0x220C;\n t['notelement'] = 0x2209;\n t['notelementof'] = 0x2209;\n t['notequal'] = 0x2260;\n t['notgreater'] = 0x226F;\n t['notgreaternorequal'] = 0x2271;\n t['notgreaternorless'] = 0x2279;\n t['notidentical'] = 0x2262;\n t['notless'] = 0x226E;\n t['notlessnorequal'] = 0x2270;\n t['notparallel'] = 0x2226;\n t['notprecedes'] = 0x2280;\n t['notsubset'] = 0x2284;\n t['notsucceeds'] = 0x2281;\n t['notsuperset'] = 0x2285;\n t['nowarmenian'] = 0x0576;\n t['nparen'] = 0x24A9;\n t['nssquare'] = 0x33B1;\n t['nsuperior'] = 0x207F;\n t['ntilde'] = 0x00F1;\n t['nu'] = 0x03BD;\n t['nuhiragana'] = 0x306C;\n t['nukatakana'] = 0x30CC;\n t['nukatakanahalfwidth'] = 0xFF87;\n t['nuktabengali'] = 0x09BC;\n t['nuktadeva'] = 0x093C;\n t['nuktagujarati'] = 0x0ABC;\n t['nuktagurmukhi'] = 0x0A3C;\n t['numbersign'] = 0x0023;\n t['numbersignmonospace'] = 0xFF03;\n t['numbersignsmall'] = 0xFE5F;\n t['numeralsigngreek'] = 0x0374;\n t['numeralsignlowergreek'] = 0x0375;\n t['numero'] = 0x2116;\n t['nun'] = 0x05E0;\n t['nundagesh'] = 0xFB40;\n t['nundageshhebrew'] = 0xFB40;\n t['nunhebrew'] = 0x05E0;\n t['nvsquare'] = 0x33B5;\n t['nwsquare'] = 0x33BB;\n t['nyabengali'] = 0x099E;\n t['nyadeva'] = 0x091E;\n t['nyagujarati'] = 0x0A9E;\n t['nyagurmukhi'] = 0x0A1E;\n t['o'] = 0x006F;\n t['oacute'] = 0x00F3;\n t['oangthai'] = 0x0E2D;\n t['obarred'] = 0x0275;\n t['obarredcyrillic'] = 0x04E9;\n t['obarreddieresiscyrillic'] = 0x04EB;\n t['obengali'] = 0x0993;\n t['obopomofo'] = 0x311B;\n t['obreve'] = 0x014F;\n t['ocandradeva'] = 0x0911;\n t['ocandragujarati'] = 0x0A91;\n t['ocandravowelsigndeva'] = 0x0949;\n t['ocandravowelsigngujarati'] = 0x0AC9;\n t['ocaron'] = 0x01D2;\n t['ocircle'] = 0x24DE;\n t['ocircumflex'] = 0x00F4;\n t['ocircumflexacute'] = 0x1ED1;\n t['ocircumflexdotbelow'] = 0x1ED9;\n t['ocircumflexgrave'] = 0x1ED3;\n t['ocircumflexhookabove'] = 0x1ED5;\n t['ocircumflextilde'] = 0x1ED7;\n t['ocyrillic'] = 0x043E;\n t['odblacute'] = 0x0151;\n t['odblgrave'] = 0x020D;\n t['odeva'] = 0x0913;\n t['odieresis'] = 0x00F6;\n t['odieresiscyrillic'] = 0x04E7;\n t['odotbelow'] = 0x1ECD;\n t['oe'] = 0x0153;\n t['oekorean'] = 0x315A;\n t['ogonek'] = 0x02DB;\n t['ogonekcmb'] = 0x0328;\n t['ograve'] = 0x00F2;\n t['ogujarati'] = 0x0A93;\n t['oharmenian'] = 0x0585;\n t['ohiragana'] = 0x304A;\n t['ohookabove'] = 0x1ECF;\n t['ohorn'] = 0x01A1;\n t['ohornacute'] = 0x1EDB;\n t['ohorndotbelow'] = 0x1EE3;\n t['ohorngrave'] = 0x1EDD;\n t['ohornhookabove'] = 0x1EDF;\n t['ohorntilde'] = 0x1EE1;\n t['ohungarumlaut'] = 0x0151;\n t['oi'] = 0x01A3;\n t['oinvertedbreve'] = 0x020F;\n t['okatakana'] = 0x30AA;\n t['okatakanahalfwidth'] = 0xFF75;\n t['okorean'] = 0x3157;\n t['olehebrew'] = 0x05AB;\n t['omacron'] = 0x014D;\n t['omacronacute'] = 0x1E53;\n t['omacrongrave'] = 0x1E51;\n t['omdeva'] = 0x0950;\n t['omega'] = 0x03C9;\n t['omega1'] = 0x03D6;\n t['omegacyrillic'] = 0x0461;\n t['omegalatinclosed'] = 0x0277;\n t['omegaroundcyrillic'] = 0x047B;\n t['omegatitlocyrillic'] = 0x047D;\n t['omegatonos'] = 0x03CE;\n t['omgujarati'] = 0x0AD0;\n t['omicron'] = 0x03BF;\n t['omicrontonos'] = 0x03CC;\n t['omonospace'] = 0xFF4F;\n t['one'] = 0x0031;\n t['onearabic'] = 0x0661;\n t['onebengali'] = 0x09E7;\n t['onecircle'] = 0x2460;\n t['onecircleinversesansserif'] = 0x278A;\n t['onedeva'] = 0x0967;\n t['onedotenleader'] = 0x2024;\n t['oneeighth'] = 0x215B;\n t['onefitted'] = 0xF6DC;\n t['onegujarati'] = 0x0AE7;\n t['onegurmukhi'] = 0x0A67;\n t['onehackarabic'] = 0x0661;\n t['onehalf'] = 0x00BD;\n t['onehangzhou'] = 0x3021;\n t['oneideographicparen'] = 0x3220;\n t['oneinferior'] = 0x2081;\n t['onemonospace'] = 0xFF11;\n t['onenumeratorbengali'] = 0x09F4;\n t['oneoldstyle'] = 0xF731;\n t['oneparen'] = 0x2474;\n t['oneperiod'] = 0x2488;\n t['onepersian'] = 0x06F1;\n t['onequarter'] = 0x00BC;\n t['oneroman'] = 0x2170;\n t['onesuperior'] = 0x00B9;\n t['onethai'] = 0x0E51;\n t['onethird'] = 0x2153;\n t['oogonek'] = 0x01EB;\n t['oogonekmacron'] = 0x01ED;\n t['oogurmukhi'] = 0x0A13;\n t['oomatragurmukhi'] = 0x0A4B;\n t['oopen'] = 0x0254;\n t['oparen'] = 0x24AA;\n t['openbullet'] = 0x25E6;\n t['option'] = 0x2325;\n t['ordfeminine'] = 0x00AA;\n t['ordmasculine'] = 0x00BA;\n t['orthogonal'] = 0x221F;\n t['oshortdeva'] = 0x0912;\n t['oshortvowelsigndeva'] = 0x094A;\n t['oslash'] = 0x00F8;\n t['oslashacute'] = 0x01FF;\n t['osmallhiragana'] = 0x3049;\n t['osmallkatakana'] = 0x30A9;\n t['osmallkatakanahalfwidth'] = 0xFF6B;\n t['ostrokeacute'] = 0x01FF;\n t['osuperior'] = 0xF6F0;\n t['otcyrillic'] = 0x047F;\n t['otilde'] = 0x00F5;\n t['otildeacute'] = 0x1E4D;\n t['otildedieresis'] = 0x1E4F;\n t['oubopomofo'] = 0x3121;\n t['overline'] = 0x203E;\n t['overlinecenterline'] = 0xFE4A;\n t['overlinecmb'] = 0x0305;\n t['overlinedashed'] = 0xFE49;\n t['overlinedblwavy'] = 0xFE4C;\n t['overlinewavy'] = 0xFE4B;\n t['overscore'] = 0x00AF;\n t['ovowelsignbengali'] = 0x09CB;\n t['ovowelsigndeva'] = 0x094B;\n t['ovowelsigngujarati'] = 0x0ACB;\n t['p'] = 0x0070;\n t['paampssquare'] = 0x3380;\n t['paasentosquare'] = 0x332B;\n t['pabengali'] = 0x09AA;\n t['pacute'] = 0x1E55;\n t['padeva'] = 0x092A;\n t['pagedown'] = 0x21DF;\n t['pageup'] = 0x21DE;\n t['pagujarati'] = 0x0AAA;\n t['pagurmukhi'] = 0x0A2A;\n t['pahiragana'] = 0x3071;\n t['paiyannoithai'] = 0x0E2F;\n t['pakatakana'] = 0x30D1;\n t['palatalizationcyrilliccmb'] = 0x0484;\n t['palochkacyrillic'] = 0x04C0;\n t['pansioskorean'] = 0x317F;\n t['paragraph'] = 0x00B6;\n t['parallel'] = 0x2225;\n t['parenleft'] = 0x0028;\n t['parenleftaltonearabic'] = 0xFD3E;\n t['parenleftbt'] = 0xF8ED;\n t['parenleftex'] = 0xF8EC;\n t['parenleftinferior'] = 0x208D;\n t['parenleftmonospace'] = 0xFF08;\n t['parenleftsmall'] = 0xFE59;\n t['parenleftsuperior'] = 0x207D;\n t['parenlefttp'] = 0xF8EB;\n t['parenleftvertical'] = 0xFE35;\n t['parenright'] = 0x0029;\n t['parenrightaltonearabic'] = 0xFD3F;\n t['parenrightbt'] = 0xF8F8;\n t['parenrightex'] = 0xF8F7;\n t['parenrightinferior'] = 0x208E;\n t['parenrightmonospace'] = 0xFF09;\n t['parenrightsmall'] = 0xFE5A;\n t['parenrightsuperior'] = 0x207E;\n t['parenrighttp'] = 0xF8F6;\n t['parenrightvertical'] = 0xFE36;\n t['partialdiff'] = 0x2202;\n t['paseqhebrew'] = 0x05C0;\n t['pashtahebrew'] = 0x0599;\n t['pasquare'] = 0x33A9;\n t['patah'] = 0x05B7;\n t['patah11'] = 0x05B7;\n t['patah1d'] = 0x05B7;\n t['patah2a'] = 0x05B7;\n t['patahhebrew'] = 0x05B7;\n t['patahnarrowhebrew'] = 0x05B7;\n t['patahquarterhebrew'] = 0x05B7;\n t['patahwidehebrew'] = 0x05B7;\n t['pazerhebrew'] = 0x05A1;\n t['pbopomofo'] = 0x3106;\n t['pcircle'] = 0x24DF;\n t['pdotaccent'] = 0x1E57;\n t['pe'] = 0x05E4;\n t['pecyrillic'] = 0x043F;\n t['pedagesh'] = 0xFB44;\n t['pedageshhebrew'] = 0xFB44;\n t['peezisquare'] = 0x333B;\n t['pefinaldageshhebrew'] = 0xFB43;\n t['peharabic'] = 0x067E;\n t['peharmenian'] = 0x057A;\n t['pehebrew'] = 0x05E4;\n t['pehfinalarabic'] = 0xFB57;\n t['pehinitialarabic'] = 0xFB58;\n t['pehiragana'] = 0x307A;\n t['pehmedialarabic'] = 0xFB59;\n t['pekatakana'] = 0x30DA;\n t['pemiddlehookcyrillic'] = 0x04A7;\n t['perafehebrew'] = 0xFB4E;\n t['percent'] = 0x0025;\n t['percentarabic'] = 0x066A;\n t['percentmonospace'] = 0xFF05;\n t['percentsmall'] = 0xFE6A;\n t['period'] = 0x002E;\n t['periodarmenian'] = 0x0589;\n t['periodcentered'] = 0x00B7;\n t['periodhalfwidth'] = 0xFF61;\n t['periodinferior'] = 0xF6E7;\n t['periodmonospace'] = 0xFF0E;\n t['periodsmall'] = 0xFE52;\n t['periodsuperior'] = 0xF6E8;\n t['perispomenigreekcmb'] = 0x0342;\n t['perpendicular'] = 0x22A5;\n t['perthousand'] = 0x2030;\n t['peseta'] = 0x20A7;\n t['pfsquare'] = 0x338A;\n t['phabengali'] = 0x09AB;\n t['phadeva'] = 0x092B;\n t['phagujarati'] = 0x0AAB;\n t['phagurmukhi'] = 0x0A2B;\n t['phi'] = 0x03C6;\n t['phi1'] = 0x03D5;\n t['phieuphacirclekorean'] = 0x327A;\n t['phieuphaparenkorean'] = 0x321A;\n t['phieuphcirclekorean'] = 0x326C;\n t['phieuphkorean'] = 0x314D;\n t['phieuphparenkorean'] = 0x320C;\n t['philatin'] = 0x0278;\n t['phinthuthai'] = 0x0E3A;\n t['phisymbolgreek'] = 0x03D5;\n t['phook'] = 0x01A5;\n t['phophanthai'] = 0x0E1E;\n t['phophungthai'] = 0x0E1C;\n t['phosamphaothai'] = 0x0E20;\n t['pi'] = 0x03C0;\n t['pieupacirclekorean'] = 0x3273;\n t['pieupaparenkorean'] = 0x3213;\n t['pieupcieuckorean'] = 0x3176;\n t['pieupcirclekorean'] = 0x3265;\n t['pieupkiyeokkorean'] = 0x3172;\n t['pieupkorean'] = 0x3142;\n t['pieupparenkorean'] = 0x3205;\n t['pieupsioskiyeokkorean'] = 0x3174;\n t['pieupsioskorean'] = 0x3144;\n t['pieupsiostikeutkorean'] = 0x3175;\n t['pieupthieuthkorean'] = 0x3177;\n t['pieuptikeutkorean'] = 0x3173;\n t['pihiragana'] = 0x3074;\n t['pikatakana'] = 0x30D4;\n t['pisymbolgreek'] = 0x03D6;\n t['piwrarmenian'] = 0x0583;\n t['plus'] = 0x002B;\n t['plusbelowcmb'] = 0x031F;\n t['pluscircle'] = 0x2295;\n t['plusminus'] = 0x00B1;\n t['plusmod'] = 0x02D6;\n t['plusmonospace'] = 0xFF0B;\n t['plussmall'] = 0xFE62;\n t['plussuperior'] = 0x207A;\n t['pmonospace'] = 0xFF50;\n t['pmsquare'] = 0x33D8;\n t['pohiragana'] = 0x307D;\n t['pointingindexdownwhite'] = 0x261F;\n t['pointingindexleftwhite'] = 0x261C;\n t['pointingindexrightwhite'] = 0x261E;\n t['pointingindexupwhite'] = 0x261D;\n t['pokatakana'] = 0x30DD;\n t['poplathai'] = 0x0E1B;\n t['postalmark'] = 0x3012;\n t['postalmarkface'] = 0x3020;\n t['pparen'] = 0x24AB;\n t['precedes'] = 0x227A;\n t['prescription'] = 0x211E;\n t['primemod'] = 0x02B9;\n t['primereversed'] = 0x2035;\n t['product'] = 0x220F;\n t['projective'] = 0x2305;\n t['prolongedkana'] = 0x30FC;\n t['propellor'] = 0x2318;\n t['propersubset'] = 0x2282;\n t['propersuperset'] = 0x2283;\n t['proportion'] = 0x2237;\n t['proportional'] = 0x221D;\n t['psi'] = 0x03C8;\n t['psicyrillic'] = 0x0471;\n t['psilipneumatacyrilliccmb'] = 0x0486;\n t['pssquare'] = 0x33B0;\n t['puhiragana'] = 0x3077;\n t['pukatakana'] = 0x30D7;\n t['pvsquare'] = 0x33B4;\n t['pwsquare'] = 0x33BA;\n t['q'] = 0x0071;\n t['qadeva'] = 0x0958;\n t['qadmahebrew'] = 0x05A8;\n t['qafarabic'] = 0x0642;\n t['qaffinalarabic'] = 0xFED6;\n t['qafinitialarabic'] = 0xFED7;\n t['qafmedialarabic'] = 0xFED8;\n t['qamats'] = 0x05B8;\n t['qamats10'] = 0x05B8;\n t['qamats1a'] = 0x05B8;\n t['qamats1c'] = 0x05B8;\n t['qamats27'] = 0x05B8;\n t['qamats29'] = 0x05B8;\n t['qamats33'] = 0x05B8;\n t['qamatsde'] = 0x05B8;\n t['qamatshebrew'] = 0x05B8;\n t['qamatsnarrowhebrew'] = 0x05B8;\n t['qamatsqatanhebrew'] = 0x05B8;\n t['qamatsqatannarrowhebrew'] = 0x05B8;\n t['qamatsqatanquarterhebrew'] = 0x05B8;\n t['qamatsqatanwidehebrew'] = 0x05B8;\n t['qamatsquarterhebrew'] = 0x05B8;\n t['qamatswidehebrew'] = 0x05B8;\n t['qarneyparahebrew'] = 0x059F;\n t['qbopomofo'] = 0x3111;\n t['qcircle'] = 0x24E0;\n t['qhook'] = 0x02A0;\n t['qmonospace'] = 0xFF51;\n t['qof'] = 0x05E7;\n t['qofdagesh'] = 0xFB47;\n t['qofdageshhebrew'] = 0xFB47;\n t['qofhebrew'] = 0x05E7;\n t['qparen'] = 0x24AC;\n t['quarternote'] = 0x2669;\n t['qubuts'] = 0x05BB;\n t['qubuts18'] = 0x05BB;\n t['qubuts25'] = 0x05BB;\n t['qubuts31'] = 0x05BB;\n t['qubutshebrew'] = 0x05BB;\n t['qubutsnarrowhebrew'] = 0x05BB;\n t['qubutsquarterhebrew'] = 0x05BB;\n t['qubutswidehebrew'] = 0x05BB;\n t['question'] = 0x003F;\n t['questionarabic'] = 0x061F;\n t['questionarmenian'] = 0x055E;\n t['questiondown'] = 0x00BF;\n t['questiondownsmall'] = 0xF7BF;\n t['questiongreek'] = 0x037E;\n t['questionmonospace'] = 0xFF1F;\n t['questionsmall'] = 0xF73F;\n t['quotedbl'] = 0x0022;\n t['quotedblbase'] = 0x201E;\n t['quotedblleft'] = 0x201C;\n t['quotedblmonospace'] = 0xFF02;\n t['quotedblprime'] = 0x301E;\n t['quotedblprimereversed'] = 0x301D;\n t['quotedblright'] = 0x201D;\n t['quoteleft'] = 0x2018;\n t['quoteleftreversed'] = 0x201B;\n t['quotereversed'] = 0x201B;\n t['quoteright'] = 0x2019;\n t['quoterightn'] = 0x0149;\n t['quotesinglbase'] = 0x201A;\n t['quotesingle'] = 0x0027;\n t['quotesinglemonospace'] = 0xFF07;\n t['r'] = 0x0072;\n t['raarmenian'] = 0x057C;\n t['rabengali'] = 0x09B0;\n t['racute'] = 0x0155;\n t['radeva'] = 0x0930;\n t['radical'] = 0x221A;\n t['radicalex'] = 0xF8E5;\n t['radoverssquare'] = 0x33AE;\n t['radoverssquaredsquare'] = 0x33AF;\n t['radsquare'] = 0x33AD;\n t['rafe'] = 0x05BF;\n t['rafehebrew'] = 0x05BF;\n t['ragujarati'] = 0x0AB0;\n t['ragurmukhi'] = 0x0A30;\n t['rahiragana'] = 0x3089;\n t['rakatakana'] = 0x30E9;\n t['rakatakanahalfwidth'] = 0xFF97;\n t['ralowerdiagonalbengali'] = 0x09F1;\n t['ramiddlediagonalbengali'] = 0x09F0;\n t['ramshorn'] = 0x0264;\n t['ratio'] = 0x2236;\n t['rbopomofo'] = 0x3116;\n t['rcaron'] = 0x0159;\n t['rcedilla'] = 0x0157;\n t['rcircle'] = 0x24E1;\n t['rcommaaccent'] = 0x0157;\n t['rdblgrave'] = 0x0211;\n t['rdotaccent'] = 0x1E59;\n t['rdotbelow'] = 0x1E5B;\n t['rdotbelowmacron'] = 0x1E5D;\n t['referencemark'] = 0x203B;\n t['reflexsubset'] = 0x2286;\n t['reflexsuperset'] = 0x2287;\n t['registered'] = 0x00AE;\n t['registersans'] = 0xF8E8;\n t['registerserif'] = 0xF6DA;\n t['reharabic'] = 0x0631;\n t['reharmenian'] = 0x0580;\n t['rehfinalarabic'] = 0xFEAE;\n t['rehiragana'] = 0x308C;\n t['rekatakana'] = 0x30EC;\n t['rekatakanahalfwidth'] = 0xFF9A;\n t['resh'] = 0x05E8;\n t['reshdageshhebrew'] = 0xFB48;\n t['reshhebrew'] = 0x05E8;\n t['reversedtilde'] = 0x223D;\n t['reviahebrew'] = 0x0597;\n t['reviamugrashhebrew'] = 0x0597;\n t['revlogicalnot'] = 0x2310;\n t['rfishhook'] = 0x027E;\n t['rfishhookreversed'] = 0x027F;\n t['rhabengali'] = 0x09DD;\n t['rhadeva'] = 0x095D;\n t['rho'] = 0x03C1;\n t['rhook'] = 0x027D;\n t['rhookturned'] = 0x027B;\n t['rhookturnedsuperior'] = 0x02B5;\n t['rhosymbolgreek'] = 0x03F1;\n t['rhotichookmod'] = 0x02DE;\n t['rieulacirclekorean'] = 0x3271;\n t['rieulaparenkorean'] = 0x3211;\n t['rieulcirclekorean'] = 0x3263;\n t['rieulhieuhkorean'] = 0x3140;\n t['rieulkiyeokkorean'] = 0x313A;\n t['rieulkiyeoksioskorean'] = 0x3169;\n t['rieulkorean'] = 0x3139;\n t['rieulmieumkorean'] = 0x313B;\n t['rieulpansioskorean'] = 0x316C;\n t['rieulparenkorean'] = 0x3203;\n t['rieulphieuphkorean'] = 0x313F;\n t['rieulpieupkorean'] = 0x313C;\n t['rieulpieupsioskorean'] = 0x316B;\n t['rieulsioskorean'] = 0x313D;\n t['rieulthieuthkorean'] = 0x313E;\n t['rieultikeutkorean'] = 0x316A;\n t['rieulyeorinhieuhkorean'] = 0x316D;\n t['rightangle'] = 0x221F;\n t['righttackbelowcmb'] = 0x0319;\n t['righttriangle'] = 0x22BF;\n t['rihiragana'] = 0x308A;\n t['rikatakana'] = 0x30EA;\n t['rikatakanahalfwidth'] = 0xFF98;\n t['ring'] = 0x02DA;\n t['ringbelowcmb'] = 0x0325;\n t['ringcmb'] = 0x030A;\n t['ringhalfleft'] = 0x02BF;\n t['ringhalfleftarmenian'] = 0x0559;\n t['ringhalfleftbelowcmb'] = 0x031C;\n t['ringhalfleftcentered'] = 0x02D3;\n t['ringhalfright'] = 0x02BE;\n t['ringhalfrightbelowcmb'] = 0x0339;\n t['ringhalfrightcentered'] = 0x02D2;\n t['rinvertedbreve'] = 0x0213;\n t['rittorusquare'] = 0x3351;\n t['rlinebelow'] = 0x1E5F;\n t['rlongleg'] = 0x027C;\n t['rlonglegturned'] = 0x027A;\n t['rmonospace'] = 0xFF52;\n t['rohiragana'] = 0x308D;\n t['rokatakana'] = 0x30ED;\n t['rokatakanahalfwidth'] = 0xFF9B;\n t['roruathai'] = 0x0E23;\n t['rparen'] = 0x24AD;\n t['rrabengali'] = 0x09DC;\n t['rradeva'] = 0x0931;\n t['rragurmukhi'] = 0x0A5C;\n t['rreharabic'] = 0x0691;\n t['rrehfinalarabic'] = 0xFB8D;\n t['rrvocalicbengali'] = 0x09E0;\n t['rrvocalicdeva'] = 0x0960;\n t['rrvocalicgujarati'] = 0x0AE0;\n t['rrvocalicvowelsignbengali'] = 0x09C4;\n t['rrvocalicvowelsigndeva'] = 0x0944;\n t['rrvocalicvowelsigngujarati'] = 0x0AC4;\n t['rsuperior'] = 0xF6F1;\n t['rtblock'] = 0x2590;\n t['rturned'] = 0x0279;\n t['rturnedsuperior'] = 0x02B4;\n t['ruhiragana'] = 0x308B;\n t['rukatakana'] = 0x30EB;\n t['rukatakanahalfwidth'] = 0xFF99;\n t['rupeemarkbengali'] = 0x09F2;\n t['rupeesignbengali'] = 0x09F3;\n t['rupiah'] = 0xF6DD;\n t['ruthai'] = 0x0E24;\n t['rvocalicbengali'] = 0x098B;\n t['rvocalicdeva'] = 0x090B;\n t['rvocalicgujarati'] = 0x0A8B;\n t['rvocalicvowelsignbengali'] = 0x09C3;\n t['rvocalicvowelsigndeva'] = 0x0943;\n t['rvocalicvowelsigngujarati'] = 0x0AC3;\n t['s'] = 0x0073;\n t['sabengali'] = 0x09B8;\n t['sacute'] = 0x015B;\n t['sacutedotaccent'] = 0x1E65;\n t['sadarabic'] = 0x0635;\n t['sadeva'] = 0x0938;\n t['sadfinalarabic'] = 0xFEBA;\n t['sadinitialarabic'] = 0xFEBB;\n t['sadmedialarabic'] = 0xFEBC;\n t['sagujarati'] = 0x0AB8;\n t['sagurmukhi'] = 0x0A38;\n t['sahiragana'] = 0x3055;\n t['sakatakana'] = 0x30B5;\n t['sakatakanahalfwidth'] = 0xFF7B;\n t['sallallahoualayhewasallamarabic'] = 0xFDFA;\n t['samekh'] = 0x05E1;\n t['samekhdagesh'] = 0xFB41;\n t['samekhdageshhebrew'] = 0xFB41;\n t['samekhhebrew'] = 0x05E1;\n t['saraaathai'] = 0x0E32;\n t['saraaethai'] = 0x0E41;\n t['saraaimaimalaithai'] = 0x0E44;\n t['saraaimaimuanthai'] = 0x0E43;\n t['saraamthai'] = 0x0E33;\n t['saraathai'] = 0x0E30;\n t['saraethai'] = 0x0E40;\n t['saraiileftthai'] = 0xF886;\n t['saraiithai'] = 0x0E35;\n t['saraileftthai'] = 0xF885;\n t['saraithai'] = 0x0E34;\n t['saraothai'] = 0x0E42;\n t['saraueeleftthai'] = 0xF888;\n t['saraueethai'] = 0x0E37;\n t['saraueleftthai'] = 0xF887;\n t['sarauethai'] = 0x0E36;\n t['sarauthai'] = 0x0E38;\n t['sarauuthai'] = 0x0E39;\n t['sbopomofo'] = 0x3119;\n t['scaron'] = 0x0161;\n t['scarondotaccent'] = 0x1E67;\n t['scedilla'] = 0x015F;\n t['schwa'] = 0x0259;\n t['schwacyrillic'] = 0x04D9;\n t['schwadieresiscyrillic'] = 0x04DB;\n t['schwahook'] = 0x025A;\n t['scircle'] = 0x24E2;\n t['scircumflex'] = 0x015D;\n t['scommaaccent'] = 0x0219;\n t['sdotaccent'] = 0x1E61;\n t['sdotbelow'] = 0x1E63;\n t['sdotbelowdotaccent'] = 0x1E69;\n t['seagullbelowcmb'] = 0x033C;\n t['second'] = 0x2033;\n t['secondtonechinese'] = 0x02CA;\n t['section'] = 0x00A7;\n t['seenarabic'] = 0x0633;\n t['seenfinalarabic'] = 0xFEB2;\n t['seeninitialarabic'] = 0xFEB3;\n t['seenmedialarabic'] = 0xFEB4;\n t['segol'] = 0x05B6;\n t['segol13'] = 0x05B6;\n t['segol1f'] = 0x05B6;\n t['segol2c'] = 0x05B6;\n t['segolhebrew'] = 0x05B6;\n t['segolnarrowhebrew'] = 0x05B6;\n t['segolquarterhebrew'] = 0x05B6;\n t['segoltahebrew'] = 0x0592;\n t['segolwidehebrew'] = 0x05B6;\n t['seharmenian'] = 0x057D;\n t['sehiragana'] = 0x305B;\n t['sekatakana'] = 0x30BB;\n t['sekatakanahalfwidth'] = 0xFF7E;\n t['semicolon'] = 0x003B;\n t['semicolonarabic'] = 0x061B;\n t['semicolonmonospace'] = 0xFF1B;\n t['semicolonsmall'] = 0xFE54;\n t['semivoicedmarkkana'] = 0x309C;\n t['semivoicedmarkkanahalfwidth'] = 0xFF9F;\n t['sentisquare'] = 0x3322;\n t['sentosquare'] = 0x3323;\n t['seven'] = 0x0037;\n t['sevenarabic'] = 0x0667;\n t['sevenbengali'] = 0x09ED;\n t['sevencircle'] = 0x2466;\n t['sevencircleinversesansserif'] = 0x2790;\n t['sevendeva'] = 0x096D;\n t['seveneighths'] = 0x215E;\n t['sevengujarati'] = 0x0AED;\n t['sevengurmukhi'] = 0x0A6D;\n t['sevenhackarabic'] = 0x0667;\n t['sevenhangzhou'] = 0x3027;\n t['sevenideographicparen'] = 0x3226;\n t['seveninferior'] = 0x2087;\n t['sevenmonospace'] = 0xFF17;\n t['sevenoldstyle'] = 0xF737;\n t['sevenparen'] = 0x247A;\n t['sevenperiod'] = 0x248E;\n t['sevenpersian'] = 0x06F7;\n t['sevenroman'] = 0x2176;\n t['sevensuperior'] = 0x2077;\n t['seventeencircle'] = 0x2470;\n t['seventeenparen'] = 0x2484;\n t['seventeenperiod'] = 0x2498;\n t['seventhai'] = 0x0E57;\n t['sfthyphen'] = 0x00AD;\n t['shaarmenian'] = 0x0577;\n t['shabengali'] = 0x09B6;\n t['shacyrillic'] = 0x0448;\n t['shaddaarabic'] = 0x0651;\n t['shaddadammaarabic'] = 0xFC61;\n t['shaddadammatanarabic'] = 0xFC5E;\n t['shaddafathaarabic'] = 0xFC60;\n t['shaddakasraarabic'] = 0xFC62;\n t['shaddakasratanarabic'] = 0xFC5F;\n t['shade'] = 0x2592;\n t['shadedark'] = 0x2593;\n t['shadelight'] = 0x2591;\n t['shademedium'] = 0x2592;\n t['shadeva'] = 0x0936;\n t['shagujarati'] = 0x0AB6;\n t['shagurmukhi'] = 0x0A36;\n t['shalshelethebrew'] = 0x0593;\n t['shbopomofo'] = 0x3115;\n t['shchacyrillic'] = 0x0449;\n t['sheenarabic'] = 0x0634;\n t['sheenfinalarabic'] = 0xFEB6;\n t['sheeninitialarabic'] = 0xFEB7;\n t['sheenmedialarabic'] = 0xFEB8;\n t['sheicoptic'] = 0x03E3;\n t['sheqel'] = 0x20AA;\n t['sheqelhebrew'] = 0x20AA;\n t['sheva'] = 0x05B0;\n t['sheva115'] = 0x05B0;\n t['sheva15'] = 0x05B0;\n t['sheva22'] = 0x05B0;\n t['sheva2e'] = 0x05B0;\n t['shevahebrew'] = 0x05B0;\n t['shevanarrowhebrew'] = 0x05B0;\n t['shevaquarterhebrew'] = 0x05B0;\n t['shevawidehebrew'] = 0x05B0;\n t['shhacyrillic'] = 0x04BB;\n t['shimacoptic'] = 0x03ED;\n t['shin'] = 0x05E9;\n t['shindagesh'] = 0xFB49;\n t['shindageshhebrew'] = 0xFB49;\n t['shindageshshindot'] = 0xFB2C;\n t['shindageshshindothebrew'] = 0xFB2C;\n t['shindageshsindot'] = 0xFB2D;\n t['shindageshsindothebrew'] = 0xFB2D;\n t['shindothebrew'] = 0x05C1;\n t['shinhebrew'] = 0x05E9;\n t['shinshindot'] = 0xFB2A;\n t['shinshindothebrew'] = 0xFB2A;\n t['shinsindot'] = 0xFB2B;\n t['shinsindothebrew'] = 0xFB2B;\n t['shook'] = 0x0282;\n t['sigma'] = 0x03C3;\n t['sigma1'] = 0x03C2;\n t['sigmafinal'] = 0x03C2;\n t['sigmalunatesymbolgreek'] = 0x03F2;\n t['sihiragana'] = 0x3057;\n t['sikatakana'] = 0x30B7;\n t['sikatakanahalfwidth'] = 0xFF7C;\n t['siluqhebrew'] = 0x05BD;\n t['siluqlefthebrew'] = 0x05BD;\n t['similar'] = 0x223C;\n t['sindothebrew'] = 0x05C2;\n t['siosacirclekorean'] = 0x3274;\n t['siosaparenkorean'] = 0x3214;\n t['sioscieuckorean'] = 0x317E;\n t['sioscirclekorean'] = 0x3266;\n t['sioskiyeokkorean'] = 0x317A;\n t['sioskorean'] = 0x3145;\n t['siosnieunkorean'] = 0x317B;\n t['siosparenkorean'] = 0x3206;\n t['siospieupkorean'] = 0x317D;\n t['siostikeutkorean'] = 0x317C;\n t['six'] = 0x0036;\n t['sixarabic'] = 0x0666;\n t['sixbengali'] = 0x09EC;\n t['sixcircle'] = 0x2465;\n t['sixcircleinversesansserif'] = 0x278F;\n t['sixdeva'] = 0x096C;\n t['sixgujarati'] = 0x0AEC;\n t['sixgurmukhi'] = 0x0A6C;\n t['sixhackarabic'] = 0x0666;\n t['sixhangzhou'] = 0x3026;\n t['sixideographicparen'] = 0x3225;\n t['sixinferior'] = 0x2086;\n t['sixmonospace'] = 0xFF16;\n t['sixoldstyle'] = 0xF736;\n t['sixparen'] = 0x2479;\n t['sixperiod'] = 0x248D;\n t['sixpersian'] = 0x06F6;\n t['sixroman'] = 0x2175;\n t['sixsuperior'] = 0x2076;\n t['sixteencircle'] = 0x246F;\n t['sixteencurrencydenominatorbengali'] = 0x09F9;\n t['sixteenparen'] = 0x2483;\n t['sixteenperiod'] = 0x2497;\n t['sixthai'] = 0x0E56;\n t['slash'] = 0x002F;\n t['slashmonospace'] = 0xFF0F;\n t['slong'] = 0x017F;\n t['slongdotaccent'] = 0x1E9B;\n t['smileface'] = 0x263A;\n t['smonospace'] = 0xFF53;\n t['sofpasuqhebrew'] = 0x05C3;\n t['softhyphen'] = 0x00AD;\n t['softsigncyrillic'] = 0x044C;\n t['sohiragana'] = 0x305D;\n t['sokatakana'] = 0x30BD;\n t['sokatakanahalfwidth'] = 0xFF7F;\n t['soliduslongoverlaycmb'] = 0x0338;\n t['solidusshortoverlaycmb'] = 0x0337;\n t['sorusithai'] = 0x0E29;\n t['sosalathai'] = 0x0E28;\n t['sosothai'] = 0x0E0B;\n t['sosuathai'] = 0x0E2A;\n t['space'] = 0x0020;\n t['spacehackarabic'] = 0x0020;\n t['spade'] = 0x2660;\n t['spadesuitblack'] = 0x2660;\n t['spadesuitwhite'] = 0x2664;\n t['sparen'] = 0x24AE;\n t['squarebelowcmb'] = 0x033B;\n t['squarecc'] = 0x33C4;\n t['squarecm'] = 0x339D;\n t['squarediagonalcrosshatchfill'] = 0x25A9;\n t['squarehorizontalfill'] = 0x25A4;\n t['squarekg'] = 0x338F;\n t['squarekm'] = 0x339E;\n t['squarekmcapital'] = 0x33CE;\n t['squareln'] = 0x33D1;\n t['squarelog'] = 0x33D2;\n t['squaremg'] = 0x338E;\n t['squaremil'] = 0x33D5;\n t['squaremm'] = 0x339C;\n t['squaremsquared'] = 0x33A1;\n t['squareorthogonalcrosshatchfill'] = 0x25A6;\n t['squareupperlefttolowerrightfill'] = 0x25A7;\n t['squareupperrighttolowerleftfill'] = 0x25A8;\n t['squareverticalfill'] = 0x25A5;\n t['squarewhitewithsmallblack'] = 0x25A3;\n t['srsquare'] = 0x33DB;\n t['ssabengali'] = 0x09B7;\n t['ssadeva'] = 0x0937;\n t['ssagujarati'] = 0x0AB7;\n t['ssangcieuckorean'] = 0x3149;\n t['ssanghieuhkorean'] = 0x3185;\n t['ssangieungkorean'] = 0x3180;\n t['ssangkiyeokkorean'] = 0x3132;\n t['ssangnieunkorean'] = 0x3165;\n t['ssangpieupkorean'] = 0x3143;\n t['ssangsioskorean'] = 0x3146;\n t['ssangtikeutkorean'] = 0x3138;\n t['ssuperior'] = 0xF6F2;\n t['sterling'] = 0x00A3;\n t['sterlingmonospace'] = 0xFFE1;\n t['strokelongoverlaycmb'] = 0x0336;\n t['strokeshortoverlaycmb'] = 0x0335;\n t['subset'] = 0x2282;\n t['subsetnotequal'] = 0x228A;\n t['subsetorequal'] = 0x2286;\n t['succeeds'] = 0x227B;\n t['suchthat'] = 0x220B;\n t['suhiragana'] = 0x3059;\n t['sukatakana'] = 0x30B9;\n t['sukatakanahalfwidth'] = 0xFF7D;\n t['sukunarabic'] = 0x0652;\n t['summation'] = 0x2211;\n t['sun'] = 0x263C;\n t['superset'] = 0x2283;\n t['supersetnotequal'] = 0x228B;\n t['supersetorequal'] = 0x2287;\n t['svsquare'] = 0x33DC;\n t['syouwaerasquare'] = 0x337C;\n t['t'] = 0x0074;\n t['tabengali'] = 0x09A4;\n t['tackdown'] = 0x22A4;\n t['tackleft'] = 0x22A3;\n t['tadeva'] = 0x0924;\n t['tagujarati'] = 0x0AA4;\n t['tagurmukhi'] = 0x0A24;\n t['taharabic'] = 0x0637;\n t['tahfinalarabic'] = 0xFEC2;\n t['tahinitialarabic'] = 0xFEC3;\n t['tahiragana'] = 0x305F;\n t['tahmedialarabic'] = 0xFEC4;\n t['taisyouerasquare'] = 0x337D;\n t['takatakana'] = 0x30BF;\n t['takatakanahalfwidth'] = 0xFF80;\n t['tatweelarabic'] = 0x0640;\n t['tau'] = 0x03C4;\n t['tav'] = 0x05EA;\n t['tavdages'] = 0xFB4A;\n t['tavdagesh'] = 0xFB4A;\n t['tavdageshhebrew'] = 0xFB4A;\n t['tavhebrew'] = 0x05EA;\n t['tbar'] = 0x0167;\n t['tbopomofo'] = 0x310A;\n t['tcaron'] = 0x0165;\n t['tccurl'] = 0x02A8;\n t['tcedilla'] = 0x0163;\n t['tcheharabic'] = 0x0686;\n t['tchehfinalarabic'] = 0xFB7B;\n t['tchehinitialarabic'] = 0xFB7C;\n t['tchehmedialarabic'] = 0xFB7D;\n t['tcircle'] = 0x24E3;\n t['tcircumflexbelow'] = 0x1E71;\n t['tcommaaccent'] = 0x0163;\n t['tdieresis'] = 0x1E97;\n t['tdotaccent'] = 0x1E6B;\n t['tdotbelow'] = 0x1E6D;\n t['tecyrillic'] = 0x0442;\n t['tedescendercyrillic'] = 0x04AD;\n t['teharabic'] = 0x062A;\n t['tehfinalarabic'] = 0xFE96;\n t['tehhahinitialarabic'] = 0xFCA2;\n t['tehhahisolatedarabic'] = 0xFC0C;\n t['tehinitialarabic'] = 0xFE97;\n t['tehiragana'] = 0x3066;\n t['tehjeeminitialarabic'] = 0xFCA1;\n t['tehjeemisolatedarabic'] = 0xFC0B;\n t['tehmarbutaarabic'] = 0x0629;\n t['tehmarbutafinalarabic'] = 0xFE94;\n t['tehmedialarabic'] = 0xFE98;\n t['tehmeeminitialarabic'] = 0xFCA4;\n t['tehmeemisolatedarabic'] = 0xFC0E;\n t['tehnoonfinalarabic'] = 0xFC73;\n t['tekatakana'] = 0x30C6;\n t['tekatakanahalfwidth'] = 0xFF83;\n t['telephone'] = 0x2121;\n t['telephoneblack'] = 0x260E;\n t['telishagedolahebrew'] = 0x05A0;\n t['telishaqetanahebrew'] = 0x05A9;\n t['tencircle'] = 0x2469;\n t['tenideographicparen'] = 0x3229;\n t['tenparen'] = 0x247D;\n t['tenperiod'] = 0x2491;\n t['tenroman'] = 0x2179;\n t['tesh'] = 0x02A7;\n t['tet'] = 0x05D8;\n t['tetdagesh'] = 0xFB38;\n t['tetdageshhebrew'] = 0xFB38;\n t['tethebrew'] = 0x05D8;\n t['tetsecyrillic'] = 0x04B5;\n t['tevirhebrew'] = 0x059B;\n t['tevirlefthebrew'] = 0x059B;\n t['thabengali'] = 0x09A5;\n t['thadeva'] = 0x0925;\n t['thagujarati'] = 0x0AA5;\n t['thagurmukhi'] = 0x0A25;\n t['thalarabic'] = 0x0630;\n t['thalfinalarabic'] = 0xFEAC;\n t['thanthakhatlowleftthai'] = 0xF898;\n t['thanthakhatlowrightthai'] = 0xF897;\n t['thanthakhatthai'] = 0x0E4C;\n t['thanthakhatupperleftthai'] = 0xF896;\n t['theharabic'] = 0x062B;\n t['thehfinalarabic'] = 0xFE9A;\n t['thehinitialarabic'] = 0xFE9B;\n t['thehmedialarabic'] = 0xFE9C;\n t['thereexists'] = 0x2203;\n t['therefore'] = 0x2234;\n t['theta'] = 0x03B8;\n t['theta1'] = 0x03D1;\n t['thetasymbolgreek'] = 0x03D1;\n t['thieuthacirclekorean'] = 0x3279;\n t['thieuthaparenkorean'] = 0x3219;\n t['thieuthcirclekorean'] = 0x326B;\n t['thieuthkorean'] = 0x314C;\n t['thieuthparenkorean'] = 0x320B;\n t['thirteencircle'] = 0x246C;\n t['thirteenparen'] = 0x2480;\n t['thirteenperiod'] = 0x2494;\n t['thonangmonthothai'] = 0x0E11;\n t['thook'] = 0x01AD;\n t['thophuthaothai'] = 0x0E12;\n t['thorn'] = 0x00FE;\n t['thothahanthai'] = 0x0E17;\n t['thothanthai'] = 0x0E10;\n t['thothongthai'] = 0x0E18;\n t['thothungthai'] = 0x0E16;\n t['thousandcyrillic'] = 0x0482;\n t['thousandsseparatorarabic'] = 0x066C;\n t['thousandsseparatorpersian'] = 0x066C;\n t['three'] = 0x0033;\n t['threearabic'] = 0x0663;\n t['threebengali'] = 0x09E9;\n t['threecircle'] = 0x2462;\n t['threecircleinversesansserif'] = 0x278C;\n t['threedeva'] = 0x0969;\n t['threeeighths'] = 0x215C;\n t['threegujarati'] = 0x0AE9;\n t['threegurmukhi'] = 0x0A69;\n t['threehackarabic'] = 0x0663;\n t['threehangzhou'] = 0x3023;\n t['threeideographicparen'] = 0x3222;\n t['threeinferior'] = 0x2083;\n t['threemonospace'] = 0xFF13;\n t['threenumeratorbengali'] = 0x09F6;\n t['threeoldstyle'] = 0xF733;\n t['threeparen'] = 0x2476;\n t['threeperiod'] = 0x248A;\n t['threepersian'] = 0x06F3;\n t['threequarters'] = 0x00BE;\n t['threequartersemdash'] = 0xF6DE;\n t['threeroman'] = 0x2172;\n t['threesuperior'] = 0x00B3;\n t['threethai'] = 0x0E53;\n t['thzsquare'] = 0x3394;\n t['tihiragana'] = 0x3061;\n t['tikatakana'] = 0x30C1;\n t['tikatakanahalfwidth'] = 0xFF81;\n t['tikeutacirclekorean'] = 0x3270;\n t['tikeutaparenkorean'] = 0x3210;\n t['tikeutcirclekorean'] = 0x3262;\n t['tikeutkorean'] = 0x3137;\n t['tikeutparenkorean'] = 0x3202;\n t['tilde'] = 0x02DC;\n t['tildebelowcmb'] = 0x0330;\n t['tildecmb'] = 0x0303;\n t['tildecomb'] = 0x0303;\n t['tildedoublecmb'] = 0x0360;\n t['tildeoperator'] = 0x223C;\n t['tildeoverlaycmb'] = 0x0334;\n t['tildeverticalcmb'] = 0x033E;\n t['timescircle'] = 0x2297;\n t['tipehahebrew'] = 0x0596;\n t['tipehalefthebrew'] = 0x0596;\n t['tippigurmukhi'] = 0x0A70;\n t['titlocyrilliccmb'] = 0x0483;\n t['tiwnarmenian'] = 0x057F;\n t['tlinebelow'] = 0x1E6F;\n t['tmonospace'] = 0xFF54;\n t['toarmenian'] = 0x0569;\n t['tohiragana'] = 0x3068;\n t['tokatakana'] = 0x30C8;\n t['tokatakanahalfwidth'] = 0xFF84;\n t['tonebarextrahighmod'] = 0x02E5;\n t['tonebarextralowmod'] = 0x02E9;\n t['tonebarhighmod'] = 0x02E6;\n t['tonebarlowmod'] = 0x02E8;\n t['tonebarmidmod'] = 0x02E7;\n t['tonefive'] = 0x01BD;\n t['tonesix'] = 0x0185;\n t['tonetwo'] = 0x01A8;\n t['tonos'] = 0x0384;\n t['tonsquare'] = 0x3327;\n t['topatakthai'] = 0x0E0F;\n t['tortoiseshellbracketleft'] = 0x3014;\n t['tortoiseshellbracketleftsmall'] = 0xFE5D;\n t['tortoiseshellbracketleftvertical'] = 0xFE39;\n t['tortoiseshellbracketright'] = 0x3015;\n t['tortoiseshellbracketrightsmall'] = 0xFE5E;\n t['tortoiseshellbracketrightvertical'] = 0xFE3A;\n t['totaothai'] = 0x0E15;\n t['tpalatalhook'] = 0x01AB;\n t['tparen'] = 0x24AF;\n t['trademark'] = 0x2122;\n t['trademarksans'] = 0xF8EA;\n t['trademarkserif'] = 0xF6DB;\n t['tretroflexhook'] = 0x0288;\n t['triagdn'] = 0x25BC;\n t['triaglf'] = 0x25C4;\n t['triagrt'] = 0x25BA;\n t['triagup'] = 0x25B2;\n t['ts'] = 0x02A6;\n t['tsadi'] = 0x05E6;\n t['tsadidagesh'] = 0xFB46;\n t['tsadidageshhebrew'] = 0xFB46;\n t['tsadihebrew'] = 0x05E6;\n t['tsecyrillic'] = 0x0446;\n t['tsere'] = 0x05B5;\n t['tsere12'] = 0x05B5;\n t['tsere1e'] = 0x05B5;\n t['tsere2b'] = 0x05B5;\n t['tserehebrew'] = 0x05B5;\n t['tserenarrowhebrew'] = 0x05B5;\n t['tserequarterhebrew'] = 0x05B5;\n t['tserewidehebrew'] = 0x05B5;\n t['tshecyrillic'] = 0x045B;\n t['tsuperior'] = 0xF6F3;\n t['ttabengali'] = 0x099F;\n t['ttadeva'] = 0x091F;\n t['ttagujarati'] = 0x0A9F;\n t['ttagurmukhi'] = 0x0A1F;\n t['tteharabic'] = 0x0679;\n t['ttehfinalarabic'] = 0xFB67;\n t['ttehinitialarabic'] = 0xFB68;\n t['ttehmedialarabic'] = 0xFB69;\n t['tthabengali'] = 0x09A0;\n t['tthadeva'] = 0x0920;\n t['tthagujarati'] = 0x0AA0;\n t['tthagurmukhi'] = 0x0A20;\n t['tturned'] = 0x0287;\n t['tuhiragana'] = 0x3064;\n t['tukatakana'] = 0x30C4;\n t['tukatakanahalfwidth'] = 0xFF82;\n t['tusmallhiragana'] = 0x3063;\n t['tusmallkatakana'] = 0x30C3;\n t['tusmallkatakanahalfwidth'] = 0xFF6F;\n t['twelvecircle'] = 0x246B;\n t['twelveparen'] = 0x247F;\n t['twelveperiod'] = 0x2493;\n t['twelveroman'] = 0x217B;\n t['twentycircle'] = 0x2473;\n t['twentyhangzhou'] = 0x5344;\n t['twentyparen'] = 0x2487;\n t['twentyperiod'] = 0x249B;\n t['two'] = 0x0032;\n t['twoarabic'] = 0x0662;\n t['twobengali'] = 0x09E8;\n t['twocircle'] = 0x2461;\n t['twocircleinversesansserif'] = 0x278B;\n t['twodeva'] = 0x0968;\n t['twodotenleader'] = 0x2025;\n t['twodotleader'] = 0x2025;\n t['twodotleadervertical'] = 0xFE30;\n t['twogujarati'] = 0x0AE8;\n t['twogurmukhi'] = 0x0A68;\n t['twohackarabic'] = 0x0662;\n t['twohangzhou'] = 0x3022;\n t['twoideographicparen'] = 0x3221;\n t['twoinferior'] = 0x2082;\n t['twomonospace'] = 0xFF12;\n t['twonumeratorbengali'] = 0x09F5;\n t['twooldstyle'] = 0xF732;\n t['twoparen'] = 0x2475;\n t['twoperiod'] = 0x2489;\n t['twopersian'] = 0x06F2;\n t['tworoman'] = 0x2171;\n t['twostroke'] = 0x01BB;\n t['twosuperior'] = 0x00B2;\n t['twothai'] = 0x0E52;\n t['twothirds'] = 0x2154;\n t['u'] = 0x0075;\n t['uacute'] = 0x00FA;\n t['ubar'] = 0x0289;\n t['ubengali'] = 0x0989;\n t['ubopomofo'] = 0x3128;\n t['ubreve'] = 0x016D;\n t['ucaron'] = 0x01D4;\n t['ucircle'] = 0x24E4;\n t['ucircumflex'] = 0x00FB;\n t['ucircumflexbelow'] = 0x1E77;\n t['ucyrillic'] = 0x0443;\n t['udattadeva'] = 0x0951;\n t['udblacute'] = 0x0171;\n t['udblgrave'] = 0x0215;\n t['udeva'] = 0x0909;\n t['udieresis'] = 0x00FC;\n t['udieresisacute'] = 0x01D8;\n t['udieresisbelow'] = 0x1E73;\n t['udieresiscaron'] = 0x01DA;\n t['udieresiscyrillic'] = 0x04F1;\n t['udieresisgrave'] = 0x01DC;\n t['udieresismacron'] = 0x01D6;\n t['udotbelow'] = 0x1EE5;\n t['ugrave'] = 0x00F9;\n t['ugujarati'] = 0x0A89;\n t['ugurmukhi'] = 0x0A09;\n t['uhiragana'] = 0x3046;\n t['uhookabove'] = 0x1EE7;\n t['uhorn'] = 0x01B0;\n t['uhornacute'] = 0x1EE9;\n t['uhorndotbelow'] = 0x1EF1;\n t['uhorngrave'] = 0x1EEB;\n t['uhornhookabove'] = 0x1EED;\n t['uhorntilde'] = 0x1EEF;\n t['uhungarumlaut'] = 0x0171;\n t['uhungarumlautcyrillic'] = 0x04F3;\n t['uinvertedbreve'] = 0x0217;\n t['ukatakana'] = 0x30A6;\n t['ukatakanahalfwidth'] = 0xFF73;\n t['ukcyrillic'] = 0x0479;\n t['ukorean'] = 0x315C;\n t['umacron'] = 0x016B;\n t['umacroncyrillic'] = 0x04EF;\n t['umacrondieresis'] = 0x1E7B;\n t['umatragurmukhi'] = 0x0A41;\n t['umonospace'] = 0xFF55;\n t['underscore'] = 0x005F;\n t['underscoredbl'] = 0x2017;\n t['underscoremonospace'] = 0xFF3F;\n t['underscorevertical'] = 0xFE33;\n t['underscorewavy'] = 0xFE4F;\n t['union'] = 0x222A;\n t['universal'] = 0x2200;\n t['uogonek'] = 0x0173;\n t['uparen'] = 0x24B0;\n t['upblock'] = 0x2580;\n t['upperdothebrew'] = 0x05C4;\n t['upsilon'] = 0x03C5;\n t['upsilondieresis'] = 0x03CB;\n t['upsilondieresistonos'] = 0x03B0;\n t['upsilonlatin'] = 0x028A;\n t['upsilontonos'] = 0x03CD;\n t['uptackbelowcmb'] = 0x031D;\n t['uptackmod'] = 0x02D4;\n t['uragurmukhi'] = 0x0A73;\n t['uring'] = 0x016F;\n t['ushortcyrillic'] = 0x045E;\n t['usmallhiragana'] = 0x3045;\n t['usmallkatakana'] = 0x30A5;\n t['usmallkatakanahalfwidth'] = 0xFF69;\n t['ustraightcyrillic'] = 0x04AF;\n t['ustraightstrokecyrillic'] = 0x04B1;\n t['utilde'] = 0x0169;\n t['utildeacute'] = 0x1E79;\n t['utildebelow'] = 0x1E75;\n t['uubengali'] = 0x098A;\n t['uudeva'] = 0x090A;\n t['uugujarati'] = 0x0A8A;\n t['uugurmukhi'] = 0x0A0A;\n t['uumatragurmukhi'] = 0x0A42;\n t['uuvowelsignbengali'] = 0x09C2;\n t['uuvowelsigndeva'] = 0x0942;\n t['uuvowelsigngujarati'] = 0x0AC2;\n t['uvowelsignbengali'] = 0x09C1;\n t['uvowelsigndeva'] = 0x0941;\n t['uvowelsigngujarati'] = 0x0AC1;\n t['v'] = 0x0076;\n t['vadeva'] = 0x0935;\n t['vagujarati'] = 0x0AB5;\n t['vagurmukhi'] = 0x0A35;\n t['vakatakana'] = 0x30F7;\n t['vav'] = 0x05D5;\n t['vavdagesh'] = 0xFB35;\n t['vavdagesh65'] = 0xFB35;\n t['vavdageshhebrew'] = 0xFB35;\n t['vavhebrew'] = 0x05D5;\n t['vavholam'] = 0xFB4B;\n t['vavholamhebrew'] = 0xFB4B;\n t['vavvavhebrew'] = 0x05F0;\n t['vavyodhebrew'] = 0x05F1;\n t['vcircle'] = 0x24E5;\n t['vdotbelow'] = 0x1E7F;\n t['vecyrillic'] = 0x0432;\n t['veharabic'] = 0x06A4;\n t['vehfinalarabic'] = 0xFB6B;\n t['vehinitialarabic'] = 0xFB6C;\n t['vehmedialarabic'] = 0xFB6D;\n t['vekatakana'] = 0x30F9;\n t['venus'] = 0x2640;\n t['verticalbar'] = 0x007C;\n t['verticallineabovecmb'] = 0x030D;\n t['verticallinebelowcmb'] = 0x0329;\n t['verticallinelowmod'] = 0x02CC;\n t['verticallinemod'] = 0x02C8;\n t['vewarmenian'] = 0x057E;\n t['vhook'] = 0x028B;\n t['vikatakana'] = 0x30F8;\n t['viramabengali'] = 0x09CD;\n t['viramadeva'] = 0x094D;\n t['viramagujarati'] = 0x0ACD;\n t['visargabengali'] = 0x0983;\n t['visargadeva'] = 0x0903;\n t['visargagujarati'] = 0x0A83;\n t['vmonospace'] = 0xFF56;\n t['voarmenian'] = 0x0578;\n t['voicediterationhiragana'] = 0x309E;\n t['voicediterationkatakana'] = 0x30FE;\n t['voicedmarkkana'] = 0x309B;\n t['voicedmarkkanahalfwidth'] = 0xFF9E;\n t['vokatakana'] = 0x30FA;\n t['vparen'] = 0x24B1;\n t['vtilde'] = 0x1E7D;\n t['vturned'] = 0x028C;\n t['vuhiragana'] = 0x3094;\n t['vukatakana'] = 0x30F4;\n t['w'] = 0x0077;\n t['wacute'] = 0x1E83;\n t['waekorean'] = 0x3159;\n t['wahiragana'] = 0x308F;\n t['wakatakana'] = 0x30EF;\n t['wakatakanahalfwidth'] = 0xFF9C;\n t['wakorean'] = 0x3158;\n t['wasmallhiragana'] = 0x308E;\n t['wasmallkatakana'] = 0x30EE;\n t['wattosquare'] = 0x3357;\n t['wavedash'] = 0x301C;\n t['wavyunderscorevertical'] = 0xFE34;\n t['wawarabic'] = 0x0648;\n t['wawfinalarabic'] = 0xFEEE;\n t['wawhamzaabovearabic'] = 0x0624;\n t['wawhamzaabovefinalarabic'] = 0xFE86;\n t['wbsquare'] = 0x33DD;\n t['wcircle'] = 0x24E6;\n t['wcircumflex'] = 0x0175;\n t['wdieresis'] = 0x1E85;\n t['wdotaccent'] = 0x1E87;\n t['wdotbelow'] = 0x1E89;\n t['wehiragana'] = 0x3091;\n t['weierstrass'] = 0x2118;\n t['wekatakana'] = 0x30F1;\n t['wekorean'] = 0x315E;\n t['weokorean'] = 0x315D;\n t['wgrave'] = 0x1E81;\n t['whitebullet'] = 0x25E6;\n t['whitecircle'] = 0x25CB;\n t['whitecircleinverse'] = 0x25D9;\n t['whitecornerbracketleft'] = 0x300E;\n t['whitecornerbracketleftvertical'] = 0xFE43;\n t['whitecornerbracketright'] = 0x300F;\n t['whitecornerbracketrightvertical'] = 0xFE44;\n t['whitediamond'] = 0x25C7;\n t['whitediamondcontainingblacksmalldiamond'] = 0x25C8;\n t['whitedownpointingsmalltriangle'] = 0x25BF;\n t['whitedownpointingtriangle'] = 0x25BD;\n t['whiteleftpointingsmalltriangle'] = 0x25C3;\n t['whiteleftpointingtriangle'] = 0x25C1;\n t['whitelenticularbracketleft'] = 0x3016;\n t['whitelenticularbracketright'] = 0x3017;\n t['whiterightpointingsmalltriangle'] = 0x25B9;\n t['whiterightpointingtriangle'] = 0x25B7;\n t['whitesmallsquare'] = 0x25AB;\n t['whitesmilingface'] = 0x263A;\n t['whitesquare'] = 0x25A1;\n t['whitestar'] = 0x2606;\n t['whitetelephone'] = 0x260F;\n t['whitetortoiseshellbracketleft'] = 0x3018;\n t['whitetortoiseshellbracketright'] = 0x3019;\n t['whiteuppointingsmalltriangle'] = 0x25B5;\n t['whiteuppointingtriangle'] = 0x25B3;\n t['wihiragana'] = 0x3090;\n t['wikatakana'] = 0x30F0;\n t['wikorean'] = 0x315F;\n t['wmonospace'] = 0xFF57;\n t['wohiragana'] = 0x3092;\n t['wokatakana'] = 0x30F2;\n t['wokatakanahalfwidth'] = 0xFF66;\n t['won'] = 0x20A9;\n t['wonmonospace'] = 0xFFE6;\n t['wowaenthai'] = 0x0E27;\n t['wparen'] = 0x24B2;\n t['wring'] = 0x1E98;\n t['wsuperior'] = 0x02B7;\n t['wturned'] = 0x028D;\n t['wynn'] = 0x01BF;\n t['x'] = 0x0078;\n t['xabovecmb'] = 0x033D;\n t['xbopomofo'] = 0x3112;\n t['xcircle'] = 0x24E7;\n t['xdieresis'] = 0x1E8D;\n t['xdotaccent'] = 0x1E8B;\n t['xeharmenian'] = 0x056D;\n t['xi'] = 0x03BE;\n t['xmonospace'] = 0xFF58;\n t['xparen'] = 0x24B3;\n t['xsuperior'] = 0x02E3;\n t['y'] = 0x0079;\n t['yaadosquare'] = 0x334E;\n t['yabengali'] = 0x09AF;\n t['yacute'] = 0x00FD;\n t['yadeva'] = 0x092F;\n t['yaekorean'] = 0x3152;\n t['yagujarati'] = 0x0AAF;\n t['yagurmukhi'] = 0x0A2F;\n t['yahiragana'] = 0x3084;\n t['yakatakana'] = 0x30E4;\n t['yakatakanahalfwidth'] = 0xFF94;\n t['yakorean'] = 0x3151;\n t['yamakkanthai'] = 0x0E4E;\n t['yasmallhiragana'] = 0x3083;\n t['yasmallkatakana'] = 0x30E3;\n t['yasmallkatakanahalfwidth'] = 0xFF6C;\n t['yatcyrillic'] = 0x0463;\n t['ycircle'] = 0x24E8;\n t['ycircumflex'] = 0x0177;\n t['ydieresis'] = 0x00FF;\n t['ydotaccent'] = 0x1E8F;\n t['ydotbelow'] = 0x1EF5;\n t['yeharabic'] = 0x064A;\n t['yehbarreearabic'] = 0x06D2;\n t['yehbarreefinalarabic'] = 0xFBAF;\n t['yehfinalarabic'] = 0xFEF2;\n t['yehhamzaabovearabic'] = 0x0626;\n t['yehhamzaabovefinalarabic'] = 0xFE8A;\n t['yehhamzaaboveinitialarabic'] = 0xFE8B;\n t['yehhamzaabovemedialarabic'] = 0xFE8C;\n t['yehinitialarabic'] = 0xFEF3;\n t['yehmedialarabic'] = 0xFEF4;\n t['yehmeeminitialarabic'] = 0xFCDD;\n t['yehmeemisolatedarabic'] = 0xFC58;\n t['yehnoonfinalarabic'] = 0xFC94;\n t['yehthreedotsbelowarabic'] = 0x06D1;\n t['yekorean'] = 0x3156;\n t['yen'] = 0x00A5;\n t['yenmonospace'] = 0xFFE5;\n t['yeokorean'] = 0x3155;\n t['yeorinhieuhkorean'] = 0x3186;\n t['yerahbenyomohebrew'] = 0x05AA;\n t['yerahbenyomolefthebrew'] = 0x05AA;\n t['yericyrillic'] = 0x044B;\n t['yerudieresiscyrillic'] = 0x04F9;\n t['yesieungkorean'] = 0x3181;\n t['yesieungpansioskorean'] = 0x3183;\n t['yesieungsioskorean'] = 0x3182;\n t['yetivhebrew'] = 0x059A;\n t['ygrave'] = 0x1EF3;\n t['yhook'] = 0x01B4;\n t['yhookabove'] = 0x1EF7;\n t['yiarmenian'] = 0x0575;\n t['yicyrillic'] = 0x0457;\n t['yikorean'] = 0x3162;\n t['yinyang'] = 0x262F;\n t['yiwnarmenian'] = 0x0582;\n t['ymonospace'] = 0xFF59;\n t['yod'] = 0x05D9;\n t['yoddagesh'] = 0xFB39;\n t['yoddageshhebrew'] = 0xFB39;\n t['yodhebrew'] = 0x05D9;\n t['yodyodhebrew'] = 0x05F2;\n t['yodyodpatahhebrew'] = 0xFB1F;\n t['yohiragana'] = 0x3088;\n t['yoikorean'] = 0x3189;\n t['yokatakana'] = 0x30E8;\n t['yokatakanahalfwidth'] = 0xFF96;\n t['yokorean'] = 0x315B;\n t['yosmallhiragana'] = 0x3087;\n t['yosmallkatakana'] = 0x30E7;\n t['yosmallkatakanahalfwidth'] = 0xFF6E;\n t['yotgreek'] = 0x03F3;\n t['yoyaekorean'] = 0x3188;\n t['yoyakorean'] = 0x3187;\n t['yoyakthai'] = 0x0E22;\n t['yoyingthai'] = 0x0E0D;\n t['yparen'] = 0x24B4;\n t['ypogegrammeni'] = 0x037A;\n t['ypogegrammenigreekcmb'] = 0x0345;\n t['yr'] = 0x01A6;\n t['yring'] = 0x1E99;\n t['ysuperior'] = 0x02B8;\n t['ytilde'] = 0x1EF9;\n t['yturned'] = 0x028E;\n t['yuhiragana'] = 0x3086;\n t['yuikorean'] = 0x318C;\n t['yukatakana'] = 0x30E6;\n t['yukatakanahalfwidth'] = 0xFF95;\n t['yukorean'] = 0x3160;\n t['yusbigcyrillic'] = 0x046B;\n t['yusbigiotifiedcyrillic'] = 0x046D;\n t['yuslittlecyrillic'] = 0x0467;\n t['yuslittleiotifiedcyrillic'] = 0x0469;\n t['yusmallhiragana'] = 0x3085;\n t['yusmallkatakana'] = 0x30E5;\n t['yusmallkatakanahalfwidth'] = 0xFF6D;\n t['yuyekorean'] = 0x318B;\n t['yuyeokorean'] = 0x318A;\n t['yyabengali'] = 0x09DF;\n t['yyadeva'] = 0x095F;\n t['z'] = 0x007A;\n t['zaarmenian'] = 0x0566;\n t['zacute'] = 0x017A;\n t['zadeva'] = 0x095B;\n t['zagurmukhi'] = 0x0A5B;\n t['zaharabic'] = 0x0638;\n t['zahfinalarabic'] = 0xFEC6;\n t['zahinitialarabic'] = 0xFEC7;\n t['zahiragana'] = 0x3056;\n t['zahmedialarabic'] = 0xFEC8;\n t['zainarabic'] = 0x0632;\n t['zainfinalarabic'] = 0xFEB0;\n t['zakatakana'] = 0x30B6;\n t['zaqefgadolhebrew'] = 0x0595;\n t['zaqefqatanhebrew'] = 0x0594;\n t['zarqahebrew'] = 0x0598;\n t['zayin'] = 0x05D6;\n t['zayindagesh'] = 0xFB36;\n t['zayindageshhebrew'] = 0xFB36;\n t['zayinhebrew'] = 0x05D6;\n t['zbopomofo'] = 0x3117;\n t['zcaron'] = 0x017E;\n t['zcircle'] = 0x24E9;\n t['zcircumflex'] = 0x1E91;\n t['zcurl'] = 0x0291;\n t['zdot'] = 0x017C;\n t['zdotaccent'] = 0x017C;\n t['zdotbelow'] = 0x1E93;\n t['zecyrillic'] = 0x0437;\n t['zedescendercyrillic'] = 0x0499;\n t['zedieresiscyrillic'] = 0x04DF;\n t['zehiragana'] = 0x305C;\n t['zekatakana'] = 0x30BC;\n t['zero'] = 0x0030;\n t['zeroarabic'] = 0x0660;\n t['zerobengali'] = 0x09E6;\n t['zerodeva'] = 0x0966;\n t['zerogujarati'] = 0x0AE6;\n t['zerogurmukhi'] = 0x0A66;\n t['zerohackarabic'] = 0x0660;\n t['zeroinferior'] = 0x2080;\n t['zeromonospace'] = 0xFF10;\n t['zerooldstyle'] = 0xF730;\n t['zeropersian'] = 0x06F0;\n t['zerosuperior'] = 0x2070;\n t['zerothai'] = 0x0E50;\n t['zerowidthjoiner'] = 0xFEFF;\n t['zerowidthnonjoiner'] = 0x200C;\n t['zerowidthspace'] = 0x200B;\n t['zeta'] = 0x03B6;\n t['zhbopomofo'] = 0x3113;\n t['zhearmenian'] = 0x056A;\n t['zhebrevecyrillic'] = 0x04C2;\n t['zhecyrillic'] = 0x0436;\n t['zhedescendercyrillic'] = 0x0497;\n t['zhedieresiscyrillic'] = 0x04DD;\n t['zihiragana'] = 0x3058;\n t['zikatakana'] = 0x30B8;\n t['zinorhebrew'] = 0x05AE;\n t['zlinebelow'] = 0x1E95;\n t['zmonospace'] = 0xFF5A;\n t['zohiragana'] = 0x305E;\n t['zokatakana'] = 0x30BE;\n t['zparen'] = 0x24B5;\n t['zretroflexhook'] = 0x0290;\n t['zstroke'] = 0x01B6;\n t['zuhiragana'] = 0x305A;\n t['zukatakana'] = 0x30BA;\n t['.notdef'] = 0x0000;\n t['angbracketleftbig'] = 0x2329;\n t['angbracketleftBig'] = 0x2329;\n t['angbracketleftbigg'] = 0x2329;\n t['angbracketleftBigg'] = 0x2329;\n t['angbracketrightBig'] = 0x232A;\n t['angbracketrightbig'] = 0x232A;\n t['angbracketrightBigg'] = 0x232A;\n t['angbracketrightbigg'] = 0x232A;\n t['arrowhookleft'] = 0x21AA;\n t['arrowhookright'] = 0x21A9;\n t['arrowlefttophalf'] = 0x21BC;\n t['arrowleftbothalf'] = 0x21BD;\n t['arrownortheast'] = 0x2197;\n t['arrownorthwest'] = 0x2196;\n t['arrowrighttophalf'] = 0x21C0;\n t['arrowrightbothalf'] = 0x21C1;\n t['arrowsoutheast'] = 0x2198;\n t['arrowsouthwest'] = 0x2199;\n t['backslashbig'] = 0x2216;\n t['backslashBig'] = 0x2216;\n t['backslashBigg'] = 0x2216;\n t['backslashbigg'] = 0x2216;\n t['bardbl'] = 0x2016;\n t['bracehtipdownleft'] = 0xFE37;\n t['bracehtipdownright'] = 0xFE37;\n t['bracehtipupleft'] = 0xFE38;\n t['bracehtipupright'] = 0xFE38;\n t['braceleftBig'] = 0x007B;\n t['braceleftbig'] = 0x007B;\n t['braceleftbigg'] = 0x007B;\n t['braceleftBigg'] = 0x007B;\n t['bracerightBig'] = 0x007D;\n t['bracerightbig'] = 0x007D;\n t['bracerightbigg'] = 0x007D;\n t['bracerightBigg'] = 0x007D;\n t['bracketleftbig'] = 0x005B;\n t['bracketleftBig'] = 0x005B;\n t['bracketleftbigg'] = 0x005B;\n t['bracketleftBigg'] = 0x005B;\n t['bracketrightBig'] = 0x005D;\n t['bracketrightbig'] = 0x005D;\n t['bracketrightbigg'] = 0x005D;\n t['bracketrightBigg'] = 0x005D;\n t['ceilingleftbig'] = 0x2308;\n t['ceilingleftBig'] = 0x2308;\n t['ceilingleftBigg'] = 0x2308;\n t['ceilingleftbigg'] = 0x2308;\n t['ceilingrightbig'] = 0x2309;\n t['ceilingrightBig'] = 0x2309;\n t['ceilingrightbigg'] = 0x2309;\n t['ceilingrightBigg'] = 0x2309;\n t['circledotdisplay'] = 0x2299;\n t['circledottext'] = 0x2299;\n t['circlemultiplydisplay'] = 0x2297;\n t['circlemultiplytext'] = 0x2297;\n t['circleplusdisplay'] = 0x2295;\n t['circleplustext'] = 0x2295;\n t['contintegraldisplay'] = 0x222E;\n t['contintegraltext'] = 0x222E;\n t['coproductdisplay'] = 0x2210;\n t['coproducttext'] = 0x2210;\n t['floorleftBig'] = 0x230A;\n t['floorleftbig'] = 0x230A;\n t['floorleftbigg'] = 0x230A;\n t['floorleftBigg'] = 0x230A;\n t['floorrightbig'] = 0x230B;\n t['floorrightBig'] = 0x230B;\n t['floorrightBigg'] = 0x230B;\n t['floorrightbigg'] = 0x230B;\n t['hatwide'] = 0x0302;\n t['hatwider'] = 0x0302;\n t['hatwidest'] = 0x0302;\n t['intercal'] = 0x1D40;\n t['integraldisplay'] = 0x222B;\n t['integraltext'] = 0x222B;\n t['intersectiondisplay'] = 0x22C2;\n t['intersectiontext'] = 0x22C2;\n t['logicalanddisplay'] = 0x2227;\n t['logicalandtext'] = 0x2227;\n t['logicalordisplay'] = 0x2228;\n t['logicalortext'] = 0x2228;\n t['parenleftBig'] = 0x0028;\n t['parenleftbig'] = 0x0028;\n t['parenleftBigg'] = 0x0028;\n t['parenleftbigg'] = 0x0028;\n t['parenrightBig'] = 0x0029;\n t['parenrightbig'] = 0x0029;\n t['parenrightBigg'] = 0x0029;\n t['parenrightbigg'] = 0x0029;\n t['prime'] = 0x2032;\n t['productdisplay'] = 0x220F;\n t['producttext'] = 0x220F;\n t['radicalbig'] = 0x221A;\n t['radicalBig'] = 0x221A;\n t['radicalBigg'] = 0x221A;\n t['radicalbigg'] = 0x221A;\n t['radicalbt'] = 0x221A;\n t['radicaltp'] = 0x221A;\n t['radicalvertex'] = 0x221A;\n t['slashbig'] = 0x002F;\n t['slashBig'] = 0x002F;\n t['slashBigg'] = 0x002F;\n t['slashbigg'] = 0x002F;\n t['summationdisplay'] = 0x2211;\n t['summationtext'] = 0x2211;\n t['tildewide'] = 0x02DC;\n t['tildewider'] = 0x02DC;\n t['tildewidest'] = 0x02DC;\n t['uniondisplay'] = 0x22C3;\n t['unionmultidisplay'] = 0x228E;\n t['unionmultitext'] = 0x228E;\n t['unionsqdisplay'] = 0x2294;\n t['unionsqtext'] = 0x2294;\n t['uniontext'] = 0x22C3;\n t['vextenddouble'] = 0x2225;\n t['vextendsingle'] = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t['space'] = 0x0020;\n t['a1'] = 0x2701;\n t['a2'] = 0x2702;\n t['a202'] = 0x2703;\n t['a3'] = 0x2704;\n t['a4'] = 0x260E;\n t['a5'] = 0x2706;\n t['a119'] = 0x2707;\n t['a118'] = 0x2708;\n t['a117'] = 0x2709;\n t['a11'] = 0x261B;\n t['a12'] = 0x261E;\n t['a13'] = 0x270C;\n t['a14'] = 0x270D;\n t['a15'] = 0x270E;\n t['a16'] = 0x270F;\n t['a105'] = 0x2710;\n t['a17'] = 0x2711;\n t['a18'] = 0x2712;\n t['a19'] = 0x2713;\n t['a20'] = 0x2714;\n t['a21'] = 0x2715;\n t['a22'] = 0x2716;\n t['a23'] = 0x2717;\n t['a24'] = 0x2718;\n t['a25'] = 0x2719;\n t['a26'] = 0x271A;\n t['a27'] = 0x271B;\n t['a28'] = 0x271C;\n t['a6'] = 0x271D;\n t['a7'] = 0x271E;\n t['a8'] = 0x271F;\n t['a9'] = 0x2720;\n t['a10'] = 0x2721;\n t['a29'] = 0x2722;\n t['a30'] = 0x2723;\n t['a31'] = 0x2724;\n t['a32'] = 0x2725;\n t['a33'] = 0x2726;\n t['a34'] = 0x2727;\n t['a35'] = 0x2605;\n t['a36'] = 0x2729;\n t['a37'] = 0x272A;\n t['a38'] = 0x272B;\n t['a39'] = 0x272C;\n t['a40'] = 0x272D;\n t['a41'] = 0x272E;\n t['a42'] = 0x272F;\n t['a43'] = 0x2730;\n t['a44'] = 0x2731;\n t['a45'] = 0x2732;\n t['a46'] = 0x2733;\n t['a47'] = 0x2734;\n t['a48'] = 0x2735;\n t['a49'] = 0x2736;\n t['a50'] = 0x2737;\n t['a51'] = 0x2738;\n t['a52'] = 0x2739;\n t['a53'] = 0x273A;\n t['a54'] = 0x273B;\n t['a55'] = 0x273C;\n t['a56'] = 0x273D;\n t['a57'] = 0x273E;\n t['a58'] = 0x273F;\n t['a59'] = 0x2740;\n t['a60'] = 0x2741;\n t['a61'] = 0x2742;\n t['a62'] = 0x2743;\n t['a63'] = 0x2744;\n t['a64'] = 0x2745;\n t['a65'] = 0x2746;\n t['a66'] = 0x2747;\n t['a67'] = 0x2748;\n t['a68'] = 0x2749;\n t['a69'] = 0x274A;\n t['a70'] = 0x274B;\n t['a71'] = 0x25CF;\n t['a72'] = 0x274D;\n t['a73'] = 0x25A0;\n t['a74'] = 0x274F;\n t['a203'] = 0x2750;\n t['a75'] = 0x2751;\n t['a204'] = 0x2752;\n t['a76'] = 0x25B2;\n t['a77'] = 0x25BC;\n t['a78'] = 0x25C6;\n t['a79'] = 0x2756;\n t['a81'] = 0x25D7;\n t['a82'] = 0x2758;\n t['a83'] = 0x2759;\n t['a84'] = 0x275A;\n t['a97'] = 0x275B;\n t['a98'] = 0x275C;\n t['a99'] = 0x275D;\n t['a100'] = 0x275E;\n t['a101'] = 0x2761;\n t['a102'] = 0x2762;\n t['a103'] = 0x2763;\n t['a104'] = 0x2764;\n t['a106'] = 0x2765;\n t['a107'] = 0x2766;\n t['a108'] = 0x2767;\n t['a112'] = 0x2663;\n t['a111'] = 0x2666;\n t['a110'] = 0x2665;\n t['a109'] = 0x2660;\n t['a120'] = 0x2460;\n t['a121'] = 0x2461;\n t['a122'] = 0x2462;\n t['a123'] = 0x2463;\n t['a124'] = 0x2464;\n t['a125'] = 0x2465;\n t['a126'] = 0x2466;\n t['a127'] = 0x2467;\n t['a128'] = 0x2468;\n t['a129'] = 0x2469;\n t['a130'] = 0x2776;\n t['a131'] = 0x2777;\n t['a132'] = 0x2778;\n t['a133'] = 0x2779;\n t['a134'] = 0x277A;\n t['a135'] = 0x277B;\n t['a136'] = 0x277C;\n t['a137'] = 0x277D;\n t['a138'] = 0x277E;\n t['a139'] = 0x277F;\n t['a140'] = 0x2780;\n t['a141'] = 0x2781;\n t['a142'] = 0x2782;\n t['a143'] = 0x2783;\n t['a144'] = 0x2784;\n t['a145'] = 0x2785;\n t['a146'] = 0x2786;\n t['a147'] = 0x2787;\n t['a148'] = 0x2788;\n t['a149'] = 0x2789;\n t['a150'] = 0x278A;\n t['a151'] = 0x278B;\n t['a152'] = 0x278C;\n t['a153'] = 0x278D;\n t['a154'] = 0x278E;\n t['a155'] = 0x278F;\n t['a156'] = 0x2790;\n t['a157'] = 0x2791;\n t['a158'] = 0x2792;\n t['a159'] = 0x2793;\n t['a160'] = 0x2794;\n t['a161'] = 0x2192;\n t['a163'] = 0x2194;\n t['a164'] = 0x2195;\n t['a196'] = 0x2798;\n t['a165'] = 0x2799;\n t['a192'] = 0x279A;\n t['a166'] = 0x279B;\n t['a167'] = 0x279C;\n t['a168'] = 0x279D;\n t['a169'] = 0x279E;\n t['a170'] = 0x279F;\n t['a171'] = 0x27A0;\n t['a172'] = 0x27A1;\n t['a173'] = 0x27A2;\n t['a162'] = 0x27A3;\n t['a174'] = 0x27A4;\n t['a175'] = 0x27A5;\n t['a176'] = 0x27A6;\n t['a177'] = 0x27A7;\n t['a178'] = 0x27A8;\n t['a179'] = 0x27A9;\n t['a193'] = 0x27AA;\n t['a180'] = 0x27AB;\n t['a199'] = 0x27AC;\n t['a181'] = 0x27AD;\n t['a200'] = 0x27AE;\n t['a182'] = 0x27AF;\n t['a201'] = 0x27B1;\n t['a183'] = 0x27B2;\n t['a184'] = 0x27B3;\n t['a197'] = 0x27B4;\n t['a185'] = 0x27B5;\n t['a194'] = 0x27B6;\n t['a198'] = 0x27B7;\n t['a186'] = 0x27B8;\n t['a195'] = 0x27B9;\n t['a187'] = 0x27BA;\n t['a188'] = 0x27BB;\n t['a189'] = 0x27BC;\n t['a190'] = 0x27BD;\n t['a191'] = 0x27BE;\n t['a89'] = 0x2768;\n t['a90'] = 0x2769;\n t['a93'] = 0x276A;\n t['a94'] = 0x276B;\n t['a91'] = 0x276C;\n t['a92'] = 0x276D;\n t['a205'] = 0x276E;\n t['a85'] = 0x276F;\n t['a206'] = 0x2770;\n t['a86'] = 0x2771;\n t['a87'] = 0x2772;\n t['a88'] = 0x2773;\n t['a95'] = 0x2774;\n t['a96'] = 0x2775;\n t['.notdef'] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n  t['ArialNarrow'] = 'Helvetica';\n  t['ArialNarrow-Bold'] = 'Helvetica-Bold';\n  t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['ArialNarrow-Italic'] = 'Helvetica-Oblique';\n  t['ArialBlack'] = 'Helvetica';\n  t['ArialBlack-Bold'] = 'Helvetica-Bold';\n  t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['ArialBlack-Italic'] = 'Helvetica-Oblique';\n  t['Arial-Black'] = 'Helvetica';\n  t['Arial-Black-Bold'] = 'Helvetica-Bold';\n  t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Arial-Black-Italic'] = 'Helvetica-Oblique';\n  t['Arial'] = 'Helvetica';\n  t['Arial-Bold'] = 'Helvetica-Bold';\n  t['Arial-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Arial-Italic'] = 'Helvetica-Oblique';\n  t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique';\n  t['Arial-BoldMT'] = 'Helvetica-Bold';\n  t['Arial-ItalicMT'] = 'Helvetica-Oblique';\n  t['ArialMT'] = 'Helvetica';\n  t['Courier-Bold'] = 'Courier-Bold';\n  t['Courier-BoldItalic'] = 'Courier-BoldOblique';\n  t['Courier-Italic'] = 'Courier-Oblique';\n  t['CourierNew'] = 'Courier';\n  t['CourierNew-Bold'] = 'Courier-Bold';\n  t['CourierNew-BoldItalic'] = 'Courier-BoldOblique';\n  t['CourierNew-Italic'] = 'Courier-Oblique';\n  t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique';\n  t['CourierNewPS-BoldMT'] = 'Courier-Bold';\n  t['CourierNewPS-ItalicMT'] = 'Courier-Oblique';\n  t['CourierNewPSMT'] = 'Courier';\n  t['Helvetica'] = 'Helvetica';\n  t['Helvetica-Bold'] = 'Helvetica-Bold';\n  t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique';\n  t['Helvetica-Italic'] = 'Helvetica-Oblique';\n  t['Helvetica-Oblique'] = 'Helvetica-Oblique';\n  t['SegoeUISymbol'] = 'Helvetica';\n  t['Symbol-Bold'] = 'Symbol';\n  t['Symbol-BoldItalic'] = 'Symbol';\n  t['Symbol-Italic'] = 'Symbol';\n  t['TimesNewRoman'] = 'Times-Roman';\n  t['TimesNewRoman-Bold'] = 'Times-Bold';\n  t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRoman-Italic'] = 'Times-Italic';\n  t['TimesNewRomanPS'] = 'Times-Roman';\n  t['TimesNewRomanPS-Bold'] = 'Times-Bold';\n  t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic';\n  t['TimesNewRomanPS-BoldMT'] = 'Times-Bold';\n  t['TimesNewRomanPS-Italic'] = 'Times-Italic';\n  t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic';\n  t['TimesNewRomanPSMT'] = 'Times-Roman';\n  t['TimesNewRomanPSMT-Bold'] = 'Times-Bold';\n  t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';\n});\nexports.getStdFontMap = getStdFontMap;\nvar getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n  t['Calibri'] = 'Helvetica';\n  t['Calibri-Bold'] = 'Helvetica-Bold';\n  t['Calibri-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Calibri-Italic'] = 'Helvetica-Oblique';\n  t['CenturyGothic'] = 'Helvetica';\n  t['CenturyGothic-Bold'] = 'Helvetica-Bold';\n  t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['CenturyGothic-Italic'] = 'Helvetica-Oblique';\n  t['ComicSansMS'] = 'Comic Sans MS';\n  t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold';\n  t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic';\n  t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic';\n  t['LucidaConsole'] = 'Courier';\n  t['LucidaConsole-Bold'] = 'Courier-Bold';\n  t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique';\n  t['LucidaConsole-Italic'] = 'Courier-Oblique';\n  t['LucidaSans-Demi'] = 'Helvetica-Bold';\n  t['MS-Gothic'] = 'MS Gothic';\n  t['MS-Gothic-Bold'] = 'MS Gothic-Bold';\n  t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic';\n  t['MS-Gothic-Italic'] = 'MS Gothic-Italic';\n  t['MS-Mincho'] = 'MS Mincho';\n  t['MS-Mincho-Bold'] = 'MS Mincho-Bold';\n  t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic';\n  t['MS-Mincho-Italic'] = 'MS Mincho-Italic';\n  t['MS-PGothic'] = 'MS PGothic';\n  t['MS-PGothic-Bold'] = 'MS PGothic-Bold';\n  t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic';\n  t['MS-PGothic-Italic'] = 'MS PGothic-Italic';\n  t['MS-PMincho'] = 'MS PMincho';\n  t['MS-PMincho-Bold'] = 'MS PMincho-Bold';\n  t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic';\n  t['MS-PMincho-Italic'] = 'MS PMincho-Italic';\n  t['NuptialScript'] = 'Times-Italic';\n  t['Wingdings'] = 'ZapfDingbats';\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nvar getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t['Adobe Jenson'] = true;\n  t['Adobe Text'] = true;\n  t['Albertus'] = true;\n  t['Aldus'] = true;\n  t['Alexandria'] = true;\n  t['Algerian'] = true;\n  t['American Typewriter'] = true;\n  t['Antiqua'] = true;\n  t['Apex'] = true;\n  t['Arno'] = true;\n  t['Aster'] = true;\n  t['Aurora'] = true;\n  t['Baskerville'] = true;\n  t['Bell'] = true;\n  t['Bembo'] = true;\n  t['Bembo Schoolbook'] = true;\n  t['Benguiat'] = true;\n  t['Berkeley Old Style'] = true;\n  t['Bernhard Modern'] = true;\n  t['Berthold City'] = true;\n  t['Bodoni'] = true;\n  t['Bauer Bodoni'] = true;\n  t['Book Antiqua'] = true;\n  t['Bookman'] = true;\n  t['Bordeaux Roman'] = true;\n  t['Californian FB'] = true;\n  t['Calisto'] = true;\n  t['Calvert'] = true;\n  t['Capitals'] = true;\n  t['Cambria'] = true;\n  t['Cartier'] = true;\n  t['Caslon'] = true;\n  t['Catull'] = true;\n  t['Centaur'] = true;\n  t['Century Old Style'] = true;\n  t['Century Schoolbook'] = true;\n  t['Chaparral'] = true;\n  t['Charis SIL'] = true;\n  t['Cheltenham'] = true;\n  t['Cholla Slab'] = true;\n  t['Clarendon'] = true;\n  t['Clearface'] = true;\n  t['Cochin'] = true;\n  t['Colonna'] = true;\n  t['Computer Modern'] = true;\n  t['Concrete Roman'] = true;\n  t['Constantia'] = true;\n  t['Cooper Black'] = true;\n  t['Corona'] = true;\n  t['Ecotype'] = true;\n  t['Egyptienne'] = true;\n  t['Elephant'] = true;\n  t['Excelsior'] = true;\n  t['Fairfield'] = true;\n  t['FF Scala'] = true;\n  t['Folkard'] = true;\n  t['Footlight'] = true;\n  t['FreeSerif'] = true;\n  t['Friz Quadrata'] = true;\n  t['Garamond'] = true;\n  t['Gentium'] = true;\n  t['Georgia'] = true;\n  t['Gloucester'] = true;\n  t['Goudy Old Style'] = true;\n  t['Goudy Schoolbook'] = true;\n  t['Goudy Pro Font'] = true;\n  t['Granjon'] = true;\n  t['Guardian Egyptian'] = true;\n  t['Heather'] = true;\n  t['Hercules'] = true;\n  t['High Tower Text'] = true;\n  t['Hiroshige'] = true;\n  t['Hoefler Text'] = true;\n  t['Humana Serif'] = true;\n  t['Imprint'] = true;\n  t['Ionic No. 5'] = true;\n  t['Janson'] = true;\n  t['Joanna'] = true;\n  t['Korinna'] = true;\n  t['Lexicon'] = true;\n  t['Liberation Serif'] = true;\n  t['Linux Libertine'] = true;\n  t['Literaturnaya'] = true;\n  t['Lucida'] = true;\n  t['Lucida Bright'] = true;\n  t['Melior'] = true;\n  t['Memphis'] = true;\n  t['Miller'] = true;\n  t['Minion'] = true;\n  t['Modern'] = true;\n  t['Mona Lisa'] = true;\n  t['Mrs Eaves'] = true;\n  t['MS Serif'] = true;\n  t['Museo Slab'] = true;\n  t['New York'] = true;\n  t['Nimbus Roman'] = true;\n  t['NPS Rawlinson Roadway'] = true;\n  t['NuptialScript'] = true;\n  t['Palatino'] = true;\n  t['Perpetua'] = true;\n  t['Plantin'] = true;\n  t['Plantin Schoolbook'] = true;\n  t['Playbill'] = true;\n  t['Poor Richard'] = true;\n  t['Rawlinson Roadway'] = true;\n  t['Renault'] = true;\n  t['Requiem'] = true;\n  t['Rockwell'] = true;\n  t['Roman'] = true;\n  t['Rotis Serif'] = true;\n  t['Sabon'] = true;\n  t['Scala'] = true;\n  t['Seagull'] = true;\n  t['Sistina'] = true;\n  t['Souvenir'] = true;\n  t['STIX'] = true;\n  t['Stone Informal'] = true;\n  t['Stone Serif'] = true;\n  t['Sylfaen'] = true;\n  t['Times'] = true;\n  t['Trajan'] = true;\n  t['Trinité'] = true;\n  t['Trump Mediaeval'] = true;\n  t['Utopia'] = true;\n  t['Vale Type'] = true;\n  t['Bitstream Vera'] = true;\n  t['Vera Serif'] = true;\n  t['Versailles'] = true;\n  t['Wanted'] = true;\n  t['Weiss'] = true;\n  t['Wide Latin'] = true;\n  t['Windsor'] = true;\n  t['XITS'] = true;\n});\nexports.getSerifFonts = getSerifFonts;\nvar getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t['Dingbats'] = true;\n  t['Symbol'] = true;\n  t['ZapfDingbats'] = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nvar getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[227] = 353;\n  t[229] = 382;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nvar getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nvar getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[17] = 66;\n  t[18] = 67;\n  t[24] = 68;\n  t[28] = 69;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[94] = 83;\n  t[100] = 84;\n  t[104] = 85;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[127] = 90;\n  t[258] = 97;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[282] = 100;\n  t[286] = 101;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[383] = 243;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[400] = 115;\n  t[401] = 347;\n  t[410] = 116;\n  t[437] = 117;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[460] = 122;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00A9;\n t[63193] = 0x00A9;\n t[63720] = 0x00AE;\n t[63194] = 0x00AE;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23A7;\n t[63730] = 0x23A8;\n t[63731] = 0x23A9;\n t[63740] = 0x23AB;\n t[63741] = 0x23AC;\n t[63742] = 0x23AD;\n t[63726] = 0x23A1;\n t[63727] = 0x23A2;\n t[63728] = 0x23A3;\n t[63737] = 0x23A4;\n t[63738] = 0x23A5;\n t[63739] = 0x23A6;\n t[63723] = 0x239B;\n t[63724] = 0x239C;\n t[63725] = 0x239D;\n t[63734] = 0x239E;\n t[63735] = 0x239F;\n t[63736] = 0x23A0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xFFF0 && code <= 0xFFFF) {\n  return 0;\n } else if (code >= 0xF600 && code <= 0xF8FF) {\n  return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00AD) {\n  return 0x002D;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n  return unicode;\n }\n if (!name) {\n  return -1;\n }\n if (name[0] === 'u') {\n  var nameLen = name.length, hexStr;\n  if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') {\n   hexStr = name.substring(3);\n  } else if (nameLen >= 5 && nameLen <= 7) {\n   hexStr = name.substring(1);\n  } else {\n   return -1;\n  }\n  if (hexStr === hexStr.toUpperCase()) {\n   unicode = parseInt(hexStr, 16);\n   if (unicode >= 0) {\n    return unicode;\n   }\n  }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n  'begin': 0x0000,\n  'end': 0x007F\n },\n {\n  'begin': 0x0080,\n  'end': 0x00FF\n },\n {\n  'begin': 0x0100,\n  'end': 0x017F\n },\n {\n  'begin': 0x0180,\n  'end': 0x024F\n },\n {\n  'begin': 0x0250,\n  'end': 0x02AF\n },\n {\n  'begin': 0x02B0,\n  'end': 0x02FF\n },\n {\n  'begin': 0x0300,\n  'end': 0x036F\n },\n {\n  'begin': 0x0370,\n  'end': 0x03FF\n },\n {\n  'begin': 0x2C80,\n  'end': 0x2CFF\n },\n {\n  'begin': 0x0400,\n  'end': 0x04FF\n },\n {\n  'begin': 0x0530,\n  'end': 0x058F\n },\n {\n  'begin': 0x0590,\n  'end': 0x05FF\n },\n {\n  'begin': 0xA500,\n  'end': 0xA63F\n },\n {\n  'begin': 0x0600,\n  'end': 0x06FF\n },\n {\n  'begin': 0x07C0,\n  'end': 0x07FF\n },\n {\n  'begin': 0x0900,\n  'end': 0x097F\n },\n {\n  'begin': 0x0980,\n  'end': 0x09FF\n },\n {\n  'begin': 0x0A00,\n  'end': 0x0A7F\n },\n {\n  'begin': 0x0A80,\n  'end': 0x0AFF\n },\n {\n  'begin': 0x0B00,\n  'end': 0x0B7F\n },\n {\n  'begin': 0x0B80,\n  'end': 0x0BFF\n },\n {\n  'begin': 0x0C00,\n  'end': 0x0C7F\n },\n {\n  'begin': 0x0C80,\n  'end': 0x0CFF\n },\n {\n  'begin': 0x0D00,\n  'end': 0x0D7F\n },\n {\n  'begin': 0x0E00,\n  'end': 0x0E7F\n },\n {\n  'begin': 0x0E80,\n  'end': 0x0EFF\n },\n {\n  'begin': 0x10A0,\n  'end': 0x10FF\n },\n {\n  'begin': 0x1B00,\n  'end': 0x1B7F\n },\n {\n  'begin': 0x1100,\n  'end': 0x11FF\n },\n {\n  'begin': 0x1E00,\n  'end': 0x1EFF\n },\n {\n  'begin': 0x1F00,\n  'end': 0x1FFF\n },\n {\n  'begin': 0x2000,\n  'end': 0x206F\n },\n {\n  'begin': 0x2070,\n  'end': 0x209F\n },\n {\n  'begin': 0x20A0,\n  'end': 0x20CF\n },\n {\n  'begin': 0x20D0,\n  'end': 0x20FF\n },\n {\n  'begin': 0x2100,\n  'end': 0x214F\n },\n {\n  'begin': 0x2150,\n  'end': 0x218F\n },\n {\n  'begin': 0x2190,\n  'end': 0x21FF\n },\n {\n  'begin': 0x2200,\n  'end': 0x22FF\n },\n {\n  'begin': 0x2300,\n  'end': 0x23FF\n },\n {\n  'begin': 0x2400,\n  'end': 0x243F\n },\n {\n  'begin': 0x2440,\n  'end': 0x245F\n },\n {\n  'begin': 0x2460,\n  'end': 0x24FF\n },\n {\n  'begin': 0x2500,\n  'end': 0x257F\n },\n {\n  'begin': 0x2580,\n  'end': 0x259F\n },\n {\n  'begin': 0x25A0,\n  'end': 0x25FF\n },\n {\n  'begin': 0x2600,\n  'end': 0x26FF\n },\n {\n  'begin': 0x2700,\n  'end': 0x27BF\n },\n {\n  'begin': 0x3000,\n  'end': 0x303F\n },\n {\n  'begin': 0x3040,\n  'end': 0x309F\n },\n {\n  'begin': 0x30A0,\n  'end': 0x30FF\n },\n {\n  'begin': 0x3100,\n  'end': 0x312F\n },\n {\n  'begin': 0x3130,\n  'end': 0x318F\n },\n {\n  'begin': 0xA840,\n  'end': 0xA87F\n },\n {\n  'begin': 0x3200,\n  'end': 0x32FF\n },\n {\n  'begin': 0x3300,\n  'end': 0x33FF\n },\n {\n  'begin': 0xAC00,\n  'end': 0xD7AF\n },\n {\n  'begin': 0xD800,\n  'end': 0xDFFF\n },\n {\n  'begin': 0x10900,\n  'end': 0x1091F\n },\n {\n  'begin': 0x4E00,\n  'end': 0x9FFF\n },\n {\n  'begin': 0xE000,\n  'end': 0xF8FF\n },\n {\n  'begin': 0x31C0,\n  'end': 0x31EF\n },\n {\n  'begin': 0xFB00,\n  'end': 0xFB4F\n },\n {\n  'begin': 0xFB50,\n  'end': 0xFDFF\n },\n {\n  'begin': 0xFE20,\n  'end': 0xFE2F\n },\n {\n  'begin': 0xFE10,\n  'end': 0xFE1F\n },\n {\n  'begin': 0xFE50,\n  'end': 0xFE6F\n },\n {\n  'begin': 0xFE70,\n  'end': 0xFEFF\n },\n {\n  'begin': 0xFF00,\n  'end': 0xFFEF\n },\n {\n  'begin': 0xFFF0,\n  'end': 0xFFFF\n },\n {\n  'begin': 0x0F00,\n  'end': 0x0FFF\n },\n {\n  'begin': 0x0700,\n  'end': 0x074F\n },\n {\n  'begin': 0x0780,\n  'end': 0x07BF\n },\n {\n  'begin': 0x0D80,\n  'end': 0x0DFF\n },\n {\n  'begin': 0x1000,\n  'end': 0x109F\n },\n {\n  'begin': 0x1200,\n  'end': 0x137F\n },\n {\n  'begin': 0x13A0,\n  'end': 0x13FF\n },\n {\n  'begin': 0x1400,\n  'end': 0x167F\n },\n {\n  'begin': 0x1680,\n  'end': 0x169F\n },\n {\n  'begin': 0x16A0,\n  'end': 0x16FF\n },\n {\n  'begin': 0x1780,\n  'end': 0x17FF\n },\n {\n  'begin': 0x1800,\n  'end': 0x18AF\n },\n {\n  'begin': 0x2800,\n  'end': 0x28FF\n },\n {\n  'begin': 0xA000,\n  'end': 0xA48F\n },\n {\n  'begin': 0x1700,\n  'end': 0x171F\n },\n {\n  'begin': 0x10300,\n  'end': 0x1032F\n },\n {\n  'begin': 0x10330,\n  'end': 0x1034F\n },\n {\n  'begin': 0x10400,\n  'end': 0x1044F\n },\n {\n  'begin': 0x1D000,\n  'end': 0x1D0FF\n },\n {\n  'begin': 0x1D400,\n  'end': 0x1D7FF\n },\n {\n  'begin': 0xFF000,\n  'end': 0xFFFFD\n },\n {\n  'begin': 0xFE00,\n  'end': 0xFE0F\n },\n {\n  'begin': 0xE0000,\n  'end': 0xE007F\n },\n {\n  'begin': 0x1900,\n  'end': 0x194F\n },\n {\n  'begin': 0x1950,\n  'end': 0x197F\n },\n {\n  'begin': 0x1980,\n  'end': 0x19DF\n },\n {\n  'begin': 0x1A00,\n  'end': 0x1A1F\n },\n {\n  'begin': 0x2C00,\n  'end': 0x2C5F\n },\n {\n  'begin': 0x2D30,\n  'end': 0x2D7F\n },\n {\n  'begin': 0x4DC0,\n  'end': 0x4DFF\n },\n {\n  'begin': 0xA800,\n  'end': 0xA82F\n },\n {\n  'begin': 0x10000,\n  'end': 0x1007F\n },\n {\n  'begin': 0x10140,\n  'end': 0x1018F\n },\n {\n  'begin': 0x10380,\n  'end': 0x1039F\n },\n {\n  'begin': 0x103A0,\n  'end': 0x103DF\n },\n {\n  'begin': 0x10450,\n  'end': 0x1047F\n },\n {\n  'begin': 0x10480,\n  'end': 0x104AF\n },\n {\n  'begin': 0x10800,\n  'end': 0x1083F\n },\n {\n  'begin': 0x10A00,\n  'end': 0x10A5F\n },\n {\n  'begin': 0x1D300,\n  'end': 0x1D35F\n },\n {\n  'begin': 0x12000,\n  'end': 0x123FF\n },\n {\n  'begin': 0x1D360,\n  'end': 0x1D37F\n },\n {\n  'begin': 0x1B80,\n  'end': 0x1BBF\n },\n {\n  'begin': 0x1C00,\n  'end': 0x1C4F\n },\n {\n  'begin': 0x1C50,\n  'end': 0x1C7F\n },\n {\n  'begin': 0xA880,\n  'end': 0xA8DF\n },\n {\n  'begin': 0xA900,\n  'end': 0xA92F\n },\n {\n  'begin': 0xA930,\n  'end': 0xA95F\n },\n {\n  'begin': 0xAA00,\n  'end': 0xAA5F\n },\n {\n  'begin': 0x10190,\n  'end': 0x101CF\n },\n {\n  'begin': 0x101D0,\n  'end': 0x101FF\n },\n {\n  'begin': 0x102A0,\n  'end': 0x102DF\n },\n {\n  'begin': 0x1F030,\n  'end': 0x1F09F\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n  var range = UnicodeRanges[i];\n  if (value >= range.begin && value < range.end) {\n   return i;\n  }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t['\\u00A8'] = '\\u0020\\u0308';\n t['\\u00AF'] = '\\u0020\\u0304';\n t['\\u00B4'] = '\\u0020\\u0301';\n t['\\u00B5'] = '\\u03BC';\n t['\\u00B8'] = '\\u0020\\u0327';\n t['\\u0132'] = '\\u0049\\u004A';\n t['\\u0133'] = '\\u0069\\u006A';\n t['\\u013F'] = '\\u004C\\u00B7';\n t['\\u0140'] = '\\u006C\\u00B7';\n t['\\u0149'] = '\\u02BC\\u006E';\n t['\\u017F'] = '\\u0073';\n t['\\u01C4'] = '\\u0044\\u017D';\n t['\\u01C5'] = '\\u0044\\u017E';\n t['\\u01C6'] = '\\u0064\\u017E';\n t['\\u01C7'] = '\\u004C\\u004A';\n t['\\u01C8'] = '\\u004C\\u006A';\n t['\\u01C9'] = '\\u006C\\u006A';\n t['\\u01CA'] = '\\u004E\\u004A';\n t['\\u01CB'] = '\\u004E\\u006A';\n t['\\u01CC'] = '\\u006E\\u006A';\n t['\\u01F1'] = '\\u0044\\u005A';\n t['\\u01F2'] = '\\u0044\\u007A';\n t['\\u01F3'] = '\\u0064\\u007A';\n t['\\u02D8'] = '\\u0020\\u0306';\n t['\\u02D9'] = '\\u0020\\u0307';\n t['\\u02DA'] = '\\u0020\\u030A';\n t['\\u02DB'] = '\\u0020\\u0328';\n t['\\u02DC'] = '\\u0020\\u0303';\n t['\\u02DD'] = '\\u0020\\u030B';\n t['\\u037A'] = '\\u0020\\u0345';\n t['\\u0384'] = '\\u0020\\u0301';\n t['\\u03D0'] = '\\u03B2';\n t['\\u03D1'] = '\\u03B8';\n t['\\u03D2'] = '\\u03A5';\n t['\\u03D5'] = '\\u03C6';\n t['\\u03D6'] = '\\u03C0';\n t['\\u03F0'] = '\\u03BA';\n t['\\u03F1'] = '\\u03C1';\n t['\\u03F2'] = '\\u03C2';\n t['\\u03F4'] = '\\u0398';\n t['\\u03F5'] = '\\u03B5';\n t['\\u03F9'] = '\\u03A3';\n t['\\u0587'] = '\\u0565\\u0582';\n t['\\u0675'] = '\\u0627\\u0674';\n t['\\u0676'] = '\\u0648\\u0674';\n t['\\u0677'] = '\\u06C7\\u0674';\n t['\\u0678'] = '\\u064A\\u0674';\n t['\\u0E33'] = '\\u0E4D\\u0E32';\n t['\\u0EB3'] = '\\u0ECD\\u0EB2';\n t['\\u0EDC'] = '\\u0EAB\\u0E99';\n t['\\u0EDD'] = '\\u0EAB\\u0EA1';\n t['\\u0F77'] = '\\u0FB2\\u0F81';\n t['\\u0F79'] = '\\u0FB3\\u0F81';\n t['\\u1E9A'] = '\\u0061\\u02BE';\n t['\\u1FBD'] = '\\u0020\\u0313';\n t['\\u1FBF'] = '\\u0020\\u0313';\n t['\\u1FC0'] = '\\u0020\\u0342';\n t['\\u1FFE'] = '\\u0020\\u0314';\n t['\\u2002'] = '\\u0020';\n t['\\u2003'] = '\\u0020';\n t['\\u2004'] = '\\u0020';\n t['\\u2005'] = '\\u0020';\n t['\\u2006'] = '\\u0020';\n t['\\u2008'] = '\\u0020';\n t['\\u2009'] = '\\u0020';\n t['\\u200A'] = '\\u0020';\n t['\\u2017'] = '\\u0020\\u0333';\n t['\\u2024'] = '\\u002E';\n t['\\u2025'] = '\\u002E\\u002E';\n t['\\u2026'] = '\\u002E\\u002E\\u002E';\n t['\\u2033'] = '\\u2032\\u2032';\n t['\\u2034'] = '\\u2032\\u2032\\u2032';\n t['\\u2036'] = '\\u2035\\u2035';\n t['\\u2037'] = '\\u2035\\u2035\\u2035';\n t['\\u203C'] = '\\u0021\\u0021';\n t['\\u203E'] = '\\u0020\\u0305';\n t['\\u2047'] = '\\u003F\\u003F';\n t['\\u2048'] = '\\u003F\\u0021';\n t['\\u2049'] = '\\u0021\\u003F';\n t['\\u2057'] = '\\u2032\\u2032\\u2032\\u2032';\n t['\\u205F'] = '\\u0020';\n t['\\u20A8'] = '\\u0052\\u0073';\n t['\\u2100'] = '\\u0061\\u002F\\u0063';\n t['\\u2101'] = '\\u0061\\u002F\\u0073';\n t['\\u2103'] = '\\u00B0\\u0043';\n t['\\u2105'] = '\\u0063\\u002F\\u006F';\n t['\\u2106'] = '\\u0063\\u002F\\u0075';\n t['\\u2107'] = '\\u0190';\n t['\\u2109'] = '\\u00B0\\u0046';\n t['\\u2116'] = '\\u004E\\u006F';\n t['\\u2121'] = '\\u0054\\u0045\\u004C';\n t['\\u2135'] = '\\u05D0';\n t['\\u2136'] = '\\u05D1';\n t['\\u2137'] = '\\u05D2';\n t['\\u2138'] = '\\u05D3';\n t['\\u213B'] = '\\u0046\\u0041\\u0058';\n t['\\u2160'] = '\\u0049';\n t['\\u2161'] = '\\u0049\\u0049';\n t['\\u2162'] = '\\u0049\\u0049\\u0049';\n t['\\u2163'] = '\\u0049\\u0056';\n t['\\u2164'] = '\\u0056';\n t['\\u2165'] = '\\u0056\\u0049';\n t['\\u2166'] = '\\u0056\\u0049\\u0049';\n t['\\u2167'] = '\\u0056\\u0049\\u0049\\u0049';\n t['\\u2168'] = '\\u0049\\u0058';\n t['\\u2169'] = '\\u0058';\n t['\\u216A'] = '\\u0058\\u0049';\n t['\\u216B'] = '\\u0058\\u0049\\u0049';\n t['\\u216C'] = '\\u004C';\n t['\\u216D'] = '\\u0043';\n t['\\u216E'] = '\\u0044';\n t['\\u216F'] = '\\u004D';\n t['\\u2170'] = '\\u0069';\n t['\\u2171'] = '\\u0069\\u0069';\n t['\\u2172'] = '\\u0069\\u0069\\u0069';\n t['\\u2173'] = '\\u0069\\u0076';\n t['\\u2174'] = '\\u0076';\n t['\\u2175'] = '\\u0076\\u0069';\n t['\\u2176'] = '\\u0076\\u0069\\u0069';\n t['\\u2177'] = '\\u0076\\u0069\\u0069\\u0069';\n t['\\u2178'] = '\\u0069\\u0078';\n t['\\u2179'] = '\\u0078';\n t['\\u217A'] = '\\u0078\\u0069';\n t['\\u217B'] = '\\u0078\\u0069\\u0069';\n t['\\u217C'] = '\\u006C';\n t['\\u217D'] = '\\u0063';\n t['\\u217E'] = '\\u0064';\n t['\\u217F'] = '\\u006D';\n t['\\u222C'] = '\\u222B\\u222B';\n t['\\u222D'] = '\\u222B\\u222B\\u222B';\n t['\\u222F'] = '\\u222E\\u222E';\n t['\\u2230'] = '\\u222E\\u222E\\u222E';\n t['\\u2474'] = '\\u0028\\u0031\\u0029';\n t['\\u2475'] = '\\u0028\\u0032\\u0029';\n t['\\u2476'] = '\\u0028\\u0033\\u0029';\n t['\\u2477'] = '\\u0028\\u0034\\u0029';\n t['\\u2478'] = '\\u0028\\u0035\\u0029';\n t['\\u2479'] = '\\u0028\\u0036\\u0029';\n t['\\u247A'] = '\\u0028\\u0037\\u0029';\n t['\\u247B'] = '\\u0028\\u0038\\u0029';\n t['\\u247C'] = '\\u0028\\u0039\\u0029';\n t['\\u247D'] = '\\u0028\\u0031\\u0030\\u0029';\n t['\\u247E'] = '\\u0028\\u0031\\u0031\\u0029';\n t['\\u247F'] = '\\u0028\\u0031\\u0032\\u0029';\n t['\\u2480'] = '\\u0028\\u0031\\u0033\\u0029';\n t['\\u2481'] = '\\u0028\\u0031\\u0034\\u0029';\n t['\\u2482'] = '\\u0028\\u0031\\u0035\\u0029';\n t['\\u2483'] = '\\u0028\\u0031\\u0036\\u0029';\n t['\\u2484'] = '\\u0028\\u0031\\u0037\\u0029';\n t['\\u2485'] = '\\u0028\\u0031\\u0038\\u0029';\n t['\\u2486'] = '\\u0028\\u0031\\u0039\\u0029';\n t['\\u2487'] = '\\u0028\\u0032\\u0030\\u0029';\n t['\\u2488'] = '\\u0031\\u002E';\n t['\\u2489'] = '\\u0032\\u002E';\n t['\\u248A'] = '\\u0033\\u002E';\n t['\\u248B'] = '\\u0034\\u002E';\n t['\\u248C'] = '\\u0035\\u002E';\n t['\\u248D'] = '\\u0036\\u002E';\n t['\\u248E'] = '\\u0037\\u002E';\n t['\\u248F'] = '\\u0038\\u002E';\n t['\\u2490'] = '\\u0039\\u002E';\n t['\\u2491'] = '\\u0031\\u0030\\u002E';\n t['\\u2492'] = '\\u0031\\u0031\\u002E';\n t['\\u2493'] = '\\u0031\\u0032\\u002E';\n t['\\u2494'] = '\\u0031\\u0033\\u002E';\n t['\\u2495'] = '\\u0031\\u0034\\u002E';\n t['\\u2496'] = '\\u0031\\u0035\\u002E';\n t['\\u2497'] = '\\u0031\\u0036\\u002E';\n t['\\u2498'] = '\\u0031\\u0037\\u002E';\n t['\\u2499'] = '\\u0031\\u0038\\u002E';\n t['\\u249A'] = '\\u0031\\u0039\\u002E';\n t['\\u249B'] = '\\u0032\\u0030\\u002E';\n t['\\u249C'] = '\\u0028\\u0061\\u0029';\n t['\\u249D'] = '\\u0028\\u0062\\u0029';\n t['\\u249E'] = '\\u0028\\u0063\\u0029';\n t['\\u249F'] = '\\u0028\\u0064\\u0029';\n t['\\u24A0'] = '\\u0028\\u0065\\u0029';\n t['\\u24A1'] = '\\u0028\\u0066\\u0029';\n t['\\u24A2'] = '\\u0028\\u0067\\u0029';\n t['\\u24A3'] = '\\u0028\\u0068\\u0029';\n t['\\u24A4'] = '\\u0028\\u0069\\u0029';\n t['\\u24A5'] = '\\u0028\\u006A\\u0029';\n t['\\u24A6'] = '\\u0028\\u006B\\u0029';\n t['\\u24A7'] = '\\u0028\\u006C\\u0029';\n t['\\u24A8'] = '\\u0028\\u006D\\u0029';\n t['\\u24A9'] = '\\u0028\\u006E\\u0029';\n t['\\u24AA'] = '\\u0028\\u006F\\u0029';\n t['\\u24AB'] = '\\u0028\\u0070\\u0029';\n t['\\u24AC'] = '\\u0028\\u0071\\u0029';\n t['\\u24AD'] = '\\u0028\\u0072\\u0029';\n t['\\u24AE'] = '\\u0028\\u0073\\u0029';\n t['\\u24AF'] = '\\u0028\\u0074\\u0029';\n t['\\u24B0'] = '\\u0028\\u0075\\u0029';\n t['\\u24B1'] = '\\u0028\\u0076\\u0029';\n t['\\u24B2'] = '\\u0028\\u0077\\u0029';\n t['\\u24B3'] = '\\u0028\\u0078\\u0029';\n t['\\u24B4'] = '\\u0028\\u0079\\u0029';\n t['\\u24B5'] = '\\u0028\\u007A\\u0029';\n t['\\u2A0C'] = '\\u222B\\u222B\\u222B\\u222B';\n t['\\u2A74'] = '\\u003A\\u003A\\u003D';\n t['\\u2A75'] = '\\u003D\\u003D';\n t['\\u2A76'] = '\\u003D\\u003D\\u003D';\n t['\\u2E9F'] = '\\u6BCD';\n t['\\u2EF3'] = '\\u9F9F';\n t['\\u2F00'] = '\\u4E00';\n t['\\u2F01'] = '\\u4E28';\n t['\\u2F02'] = '\\u4E36';\n t['\\u2F03'] = '\\u4E3F';\n t['\\u2F04'] = '\\u4E59';\n t['\\u2F05'] = '\\u4E85';\n t['\\u2F06'] = '\\u4E8C';\n t['\\u2F07'] = '\\u4EA0';\n t['\\u2F08'] = '\\u4EBA';\n t['\\u2F09'] = '\\u513F';\n t['\\u2F0A'] = '\\u5165';\n t['\\u2F0B'] = '\\u516B';\n t['\\u2F0C'] = '\\u5182';\n t['\\u2F0D'] = '\\u5196';\n t['\\u2F0E'] = '\\u51AB';\n t['\\u2F0F'] = '\\u51E0';\n t['\\u2F10'] = '\\u51F5';\n t['\\u2F11'] = '\\u5200';\n t['\\u2F12'] = '\\u529B';\n t['\\u2F13'] = '\\u52F9';\n t['\\u2F14'] = '\\u5315';\n t['\\u2F15'] = '\\u531A';\n t['\\u2F16'] = '\\u5338';\n t['\\u2F17'] = '\\u5341';\n t['\\u2F18'] = '\\u535C';\n t['\\u2F19'] = '\\u5369';\n t['\\u2F1A'] = '\\u5382';\n t['\\u2F1B'] = '\\u53B6';\n t['\\u2F1C'] = '\\u53C8';\n t['\\u2F1D'] = '\\u53E3';\n t['\\u2F1E'] = '\\u56D7';\n t['\\u2F1F'] = '\\u571F';\n t['\\u2F20'] = '\\u58EB';\n t['\\u2F21'] = '\\u5902';\n t['\\u2F22'] = '\\u590A';\n t['\\u2F23'] = '\\u5915';\n t['\\u2F24'] = '\\u5927';\n t['\\u2F25'] = '\\u5973';\n t['\\u2F26'] = '\\u5B50';\n t['\\u2F27'] = '\\u5B80';\n t['\\u2F28'] = '\\u5BF8';\n t['\\u2F29'] = '\\u5C0F';\n t['\\u2F2A'] = '\\u5C22';\n t['\\u2F2B'] = '\\u5C38';\n t['\\u2F2C'] = '\\u5C6E';\n t['\\u2F2D'] = '\\u5C71';\n t['\\u2F2E'] = '\\u5DDB';\n t['\\u2F2F'] = '\\u5DE5';\n t['\\u2F30'] = '\\u5DF1';\n t['\\u2F31'] = '\\u5DFE';\n t['\\u2F32'] = '\\u5E72';\n t['\\u2F33'] = '\\u5E7A';\n t['\\u2F34'] = '\\u5E7F';\n t['\\u2F35'] = '\\u5EF4';\n t['\\u2F36'] = '\\u5EFE';\n t['\\u2F37'] = '\\u5F0B';\n t['\\u2F38'] = '\\u5F13';\n t['\\u2F39'] = '\\u5F50';\n t['\\u2F3A'] = '\\u5F61';\n t['\\u2F3B'] = '\\u5F73';\n t['\\u2F3C'] = '\\u5FC3';\n t['\\u2F3D'] = '\\u6208';\n t['\\u2F3E'] = '\\u6236';\n t['\\u2F3F'] = '\\u624B';\n t['\\u2F40'] = '\\u652F';\n t['\\u2F41'] = '\\u6534';\n t['\\u2F42'] = '\\u6587';\n t['\\u2F43'] = '\\u6597';\n t['\\u2F44'] = '\\u65A4';\n t['\\u2F45'] = '\\u65B9';\n t['\\u2F46'] = '\\u65E0';\n t['\\u2F47'] = '\\u65E5';\n t['\\u2F48'] = '\\u66F0';\n t['\\u2F49'] = '\\u6708';\n t['\\u2F4A'] = '\\u6728';\n t['\\u2F4B'] = '\\u6B20';\n t['\\u2F4C'] = '\\u6B62';\n t['\\u2F4D'] = '\\u6B79';\n t['\\u2F4E'] = '\\u6BB3';\n t['\\u2F4F'] = '\\u6BCB';\n t['\\u2F50'] = '\\u6BD4';\n t['\\u2F51'] = '\\u6BDB';\n t['\\u2F52'] = '\\u6C0F';\n t['\\u2F53'] = '\\u6C14';\n t['\\u2F54'] = '\\u6C34';\n t['\\u2F55'] = '\\u706B';\n t['\\u2F56'] = '\\u722A';\n t['\\u2F57'] = '\\u7236';\n t['\\u2F58'] = '\\u723B';\n t['\\u2F59'] = '\\u723F';\n t['\\u2F5A'] = '\\u7247';\n t['\\u2F5B'] = '\\u7259';\n t['\\u2F5C'] = '\\u725B';\n t['\\u2F5D'] = '\\u72AC';\n t['\\u2F5E'] = '\\u7384';\n t['\\u2F5F'] = '\\u7389';\n t['\\u2F60'] = '\\u74DC';\n t['\\u2F61'] = '\\u74E6';\n t['\\u2F62'] = '\\u7518';\n t['\\u2F63'] = '\\u751F';\n t['\\u2F64'] = '\\u7528';\n t['\\u2F65'] = '\\u7530';\n t['\\u2F66'] = '\\u758B';\n t['\\u2F67'] = '\\u7592';\n t['\\u2F68'] = '\\u7676';\n t['\\u2F69'] = '\\u767D';\n t['\\u2F6A'] = '\\u76AE';\n t['\\u2F6B'] = '\\u76BF';\n t['\\u2F6C'] = '\\u76EE';\n t['\\u2F6D'] = '\\u77DB';\n t['\\u2F6E'] = '\\u77E2';\n t['\\u2F6F'] = '\\u77F3';\n t['\\u2F70'] = '\\u793A';\n t['\\u2F71'] = '\\u79B8';\n t['\\u2F72'] = '\\u79BE';\n t['\\u2F73'] = '\\u7A74';\n t['\\u2F74'] = '\\u7ACB';\n t['\\u2F75'] = '\\u7AF9';\n t['\\u2F76'] = '\\u7C73';\n t['\\u2F77'] = '\\u7CF8';\n t['\\u2F78'] = '\\u7F36';\n t['\\u2F79'] = '\\u7F51';\n t['\\u2F7A'] = '\\u7F8A';\n t['\\u2F7B'] = '\\u7FBD';\n t['\\u2F7C'] = '\\u8001';\n t['\\u2F7D'] = '\\u800C';\n t['\\u2F7E'] = '\\u8012';\n t['\\u2F7F'] = '\\u8033';\n t['\\u2F80'] = '\\u807F';\n t['\\u2F81'] = '\\u8089';\n t['\\u2F82'] = '\\u81E3';\n t['\\u2F83'] = '\\u81EA';\n t['\\u2F84'] = '\\u81F3';\n t['\\u2F85'] = '\\u81FC';\n t['\\u2F86'] = '\\u820C';\n t['\\u2F87'] = '\\u821B';\n t['\\u2F88'] = '\\u821F';\n t['\\u2F89'] = '\\u826E';\n t['\\u2F8A'] = '\\u8272';\n t['\\u2F8B'] = '\\u8278';\n t['\\u2F8C'] = '\\u864D';\n t['\\u2F8D'] = '\\u866B';\n t['\\u2F8E'] = '\\u8840';\n t['\\u2F8F'] = '\\u884C';\n t['\\u2F90'] = '\\u8863';\n t['\\u2F91'] = '\\u897E';\n t['\\u2F92'] = '\\u898B';\n t['\\u2F93'] = '\\u89D2';\n t['\\u2F94'] = '\\u8A00';\n t['\\u2F95'] = '\\u8C37';\n t['\\u2F96'] = '\\u8C46';\n t['\\u2F97'] = '\\u8C55';\n t['\\u2F98'] = '\\u8C78';\n t['\\u2F99'] = '\\u8C9D';\n t['\\u2F9A'] = '\\u8D64';\n t['\\u2F9B'] = '\\u8D70';\n t['\\u2F9C'] = '\\u8DB3';\n t['\\u2F9D'] = '\\u8EAB';\n t['\\u2F9E'] = '\\u8ECA';\n t['\\u2F9F'] = '\\u8F9B';\n t['\\u2FA0'] = '\\u8FB0';\n t['\\u2FA1'] = '\\u8FB5';\n t['\\u2FA2'] = '\\u9091';\n t['\\u2FA3'] = '\\u9149';\n t['\\u2FA4'] = '\\u91C6';\n t['\\u2FA5'] = '\\u91CC';\n t['\\u2FA6'] = '\\u91D1';\n t['\\u2FA7'] = '\\u9577';\n t['\\u2FA8'] = '\\u9580';\n t['\\u2FA9'] = '\\u961C';\n t['\\u2FAA'] = '\\u96B6';\n t['\\u2FAB'] = '\\u96B9';\n t['\\u2FAC'] = '\\u96E8';\n t['\\u2FAD'] = '\\u9751';\n t['\\u2FAE'] = '\\u975E';\n t['\\u2FAF'] = '\\u9762';\n t['\\u2FB0'] = '\\u9769';\n t['\\u2FB1'] = '\\u97CB';\n t['\\u2FB2'] = '\\u97ED';\n t['\\u2FB3'] = '\\u97F3';\n t['\\u2FB4'] = '\\u9801';\n t['\\u2FB5'] = '\\u98A8';\n t['\\u2FB6'] = '\\u98DB';\n t['\\u2FB7'] = '\\u98DF';\n t['\\u2FB8'] = '\\u9996';\n t['\\u2FB9'] = '\\u9999';\n t['\\u2FBA'] = '\\u99AC';\n t['\\u2FBB'] = '\\u9AA8';\n t['\\u2FBC'] = '\\u9AD8';\n t['\\u2FBD'] = '\\u9ADF';\n t['\\u2FBE'] = '\\u9B25';\n t['\\u2FBF'] = '\\u9B2F';\n t['\\u2FC0'] = '\\u9B32';\n t['\\u2FC1'] = '\\u9B3C';\n t['\\u2FC2'] = '\\u9B5A';\n t['\\u2FC3'] = '\\u9CE5';\n t['\\u2FC4'] = '\\u9E75';\n t['\\u2FC5'] = '\\u9E7F';\n t['\\u2FC6'] = '\\u9EA5';\n t['\\u2FC7'] = '\\u9EBB';\n t['\\u2FC8'] = '\\u9EC3';\n t['\\u2FC9'] = '\\u9ECD';\n t['\\u2FCA'] = '\\u9ED1';\n t['\\u2FCB'] = '\\u9EF9';\n t['\\u2FCC'] = '\\u9EFD';\n t['\\u2FCD'] = '\\u9F0E';\n t['\\u2FCE'] = '\\u9F13';\n t['\\u2FCF'] = '\\u9F20';\n t['\\u2FD0'] = '\\u9F3B';\n t['\\u2FD1'] = '\\u9F4A';\n t['\\u2FD2'] = '\\u9F52';\n t['\\u2FD3'] = '\\u9F8D';\n t['\\u2FD4'] = '\\u9F9C';\n t['\\u2FD5'] = '\\u9FA0';\n t['\\u3036'] = '\\u3012';\n t['\\u3038'] = '\\u5341';\n t['\\u3039'] = '\\u5344';\n t['\\u303A'] = '\\u5345';\n t['\\u309B'] = '\\u0020\\u3099';\n t['\\u309C'] = '\\u0020\\u309A';\n t['\\u3131'] = '\\u1100';\n t['\\u3132'] = '\\u1101';\n t['\\u3133'] = '\\u11AA';\n t['\\u3134'] = '\\u1102';\n t['\\u3135'] = '\\u11AC';\n t['\\u3136'] = '\\u11AD';\n t['\\u3137'] = '\\u1103';\n t['\\u3138'] = '\\u1104';\n t['\\u3139'] = '\\u1105';\n t['\\u313A'] = '\\u11B0';\n t['\\u313B'] = '\\u11B1';\n t['\\u313C'] = '\\u11B2';\n t['\\u313D'] = '\\u11B3';\n t['\\u313E'] = '\\u11B4';\n t['\\u313F'] = '\\u11B5';\n t['\\u3140'] = '\\u111A';\n t['\\u3141'] = '\\u1106';\n t['\\u3142'] = '\\u1107';\n t['\\u3143'] = '\\u1108';\n t['\\u3144'] = '\\u1121';\n t['\\u3145'] = '\\u1109';\n t['\\u3146'] = '\\u110A';\n t['\\u3147'] = '\\u110B';\n t['\\u3148'] = '\\u110C';\n t['\\u3149'] = '\\u110D';\n t['\\u314A'] = '\\u110E';\n t['\\u314B'] = '\\u110F';\n t['\\u314C'] = '\\u1110';\n t['\\u314D'] = '\\u1111';\n t['\\u314E'] = '\\u1112';\n t['\\u314F'] = '\\u1161';\n t['\\u3150'] = '\\u1162';\n t['\\u3151'] = '\\u1163';\n t['\\u3152'] = '\\u1164';\n t['\\u3153'] = '\\u1165';\n t['\\u3154'] = '\\u1166';\n t['\\u3155'] = '\\u1167';\n t['\\u3156'] = '\\u1168';\n t['\\u3157'] = '\\u1169';\n t['\\u3158'] = '\\u116A';\n t['\\u3159'] = '\\u116B';\n t['\\u315A'] = '\\u116C';\n t['\\u315B'] = '\\u116D';\n t['\\u315C'] = '\\u116E';\n t['\\u315D'] = '\\u116F';\n t['\\u315E'] = '\\u1170';\n t['\\u315F'] = '\\u1171';\n t['\\u3160'] = '\\u1172';\n t['\\u3161'] = '\\u1173';\n t['\\u3162'] = '\\u1174';\n t['\\u3163'] = '\\u1175';\n t['\\u3164'] = '\\u1160';\n t['\\u3165'] = '\\u1114';\n t['\\u3166'] = '\\u1115';\n t['\\u3167'] = '\\u11C7';\n t['\\u3168'] = '\\u11C8';\n t['\\u3169'] = '\\u11CC';\n t['\\u316A'] = '\\u11CE';\n t['\\u316B'] = '\\u11D3';\n t['\\u316C'] = '\\u11D7';\n t['\\u316D'] = '\\u11D9';\n t['\\u316E'] = '\\u111C';\n t['\\u316F'] = '\\u11DD';\n t['\\u3170'] = '\\u11DF';\n t['\\u3171'] = '\\u111D';\n t['\\u3172'] = '\\u111E';\n t['\\u3173'] = '\\u1120';\n t['\\u3174'] = '\\u1122';\n t['\\u3175'] = '\\u1123';\n t['\\u3176'] = '\\u1127';\n t['\\u3177'] = '\\u1129';\n t['\\u3178'] = '\\u112B';\n t['\\u3179'] = '\\u112C';\n t['\\u317A'] = '\\u112D';\n t['\\u317B'] = '\\u112E';\n t['\\u317C'] = '\\u112F';\n t['\\u317D'] = '\\u1132';\n t['\\u317E'] = '\\u1136';\n t['\\u317F'] = '\\u1140';\n t['\\u3180'] = '\\u1147';\n t['\\u3181'] = '\\u114C';\n t['\\u3182'] = '\\u11F1';\n t['\\u3183'] = '\\u11F2';\n t['\\u3184'] = '\\u1157';\n t['\\u3185'] = '\\u1158';\n t['\\u3186'] = '\\u1159';\n t['\\u3187'] = '\\u1184';\n t['\\u3188'] = '\\u1185';\n t['\\u3189'] = '\\u1188';\n t['\\u318A'] = '\\u1191';\n t['\\u318B'] = '\\u1192';\n t['\\u318C'] = '\\u1194';\n t['\\u318D'] = '\\u119E';\n t['\\u318E'] = '\\u11A1';\n t['\\u3200'] = '\\u0028\\u1100\\u0029';\n t['\\u3201'] = '\\u0028\\u1102\\u0029';\n t['\\u3202'] = '\\u0028\\u1103\\u0029';\n t['\\u3203'] = '\\u0028\\u1105\\u0029';\n t['\\u3204'] = '\\u0028\\u1106\\u0029';\n t['\\u3205'] = '\\u0028\\u1107\\u0029';\n t['\\u3206'] = '\\u0028\\u1109\\u0029';\n t['\\u3207'] = '\\u0028\\u110B\\u0029';\n t['\\u3208'] = '\\u0028\\u110C\\u0029';\n t['\\u3209'] = '\\u0028\\u110E\\u0029';\n t['\\u320A'] = '\\u0028\\u110F\\u0029';\n t['\\u320B'] = '\\u0028\\u1110\\u0029';\n t['\\u320C'] = '\\u0028\\u1111\\u0029';\n t['\\u320D'] = '\\u0028\\u1112\\u0029';\n t['\\u320E'] = '\\u0028\\u1100\\u1161\\u0029';\n t['\\u320F'] = '\\u0028\\u1102\\u1161\\u0029';\n t['\\u3210'] = '\\u0028\\u1103\\u1161\\u0029';\n t['\\u3211'] = '\\u0028\\u1105\\u1161\\u0029';\n t['\\u3212'] = '\\u0028\\u1106\\u1161\\u0029';\n t['\\u3213'] = '\\u0028\\u1107\\u1161\\u0029';\n t['\\u3214'] = '\\u0028\\u1109\\u1161\\u0029';\n t['\\u3215'] = '\\u0028\\u110B\\u1161\\u0029';\n t['\\u3216'] = '\\u0028\\u110C\\u1161\\u0029';\n t['\\u3217'] = '\\u0028\\u110E\\u1161\\u0029';\n t['\\u3218'] = '\\u0028\\u110F\\u1161\\u0029';\n t['\\u3219'] = '\\u0028\\u1110\\u1161\\u0029';\n t['\\u321A'] = '\\u0028\\u1111\\u1161\\u0029';\n t['\\u321B'] = '\\u0028\\u1112\\u1161\\u0029';\n t['\\u321C'] = '\\u0028\\u110C\\u116E\\u0029';\n t['\\u321D'] = '\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029';\n t['\\u321E'] = '\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029';\n t['\\u3220'] = '\\u0028\\u4E00\\u0029';\n t['\\u3221'] = '\\u0028\\u4E8C\\u0029';\n t['\\u3222'] = '\\u0028\\u4E09\\u0029';\n t['\\u3223'] = '\\u0028\\u56DB\\u0029';\n t['\\u3224'] = '\\u0028\\u4E94\\u0029';\n t['\\u3225'] = '\\u0028\\u516D\\u0029';\n t['\\u3226'] = '\\u0028\\u4E03\\u0029';\n t['\\u3227'] = '\\u0028\\u516B\\u0029';\n t['\\u3228'] = '\\u0028\\u4E5D\\u0029';\n t['\\u3229'] = '\\u0028\\u5341\\u0029';\n t['\\u322A'] = '\\u0028\\u6708\\u0029';\n t['\\u322B'] = '\\u0028\\u706B\\u0029';\n t['\\u322C'] = '\\u0028\\u6C34\\u0029';\n t['\\u322D'] = '\\u0028\\u6728\\u0029';\n t['\\u322E'] = '\\u0028\\u91D1\\u0029';\n t['\\u322F'] = '\\u0028\\u571F\\u0029';\n t['\\u3230'] = '\\u0028\\u65E5\\u0029';\n t['\\u3231'] = '\\u0028\\u682A\\u0029';\n t['\\u3232'] = '\\u0028\\u6709\\u0029';\n t['\\u3233'] = '\\u0028\\u793E\\u0029';\n t['\\u3234'] = '\\u0028\\u540D\\u0029';\n t['\\u3235'] = '\\u0028\\u7279\\u0029';\n t['\\u3236'] = '\\u0028\\u8CA1\\u0029';\n t['\\u3237'] = '\\u0028\\u795D\\u0029';\n t['\\u3238'] = '\\u0028\\u52B4\\u0029';\n t['\\u3239'] = '\\u0028\\u4EE3\\u0029';\n t['\\u323A'] = '\\u0028\\u547C\\u0029';\n t['\\u323B'] = '\\u0028\\u5B66\\u0029';\n t['\\u323C'] = '\\u0028\\u76E3\\u0029';\n t['\\u323D'] = '\\u0028\\u4F01\\u0029';\n t['\\u323E'] = '\\u0028\\u8CC7\\u0029';\n t['\\u323F'] = '\\u0028\\u5354\\u0029';\n t['\\u3240'] = '\\u0028\\u796D\\u0029';\n t['\\u3241'] = '\\u0028\\u4F11\\u0029';\n t['\\u3242'] = '\\u0028\\u81EA\\u0029';\n t['\\u3243'] = '\\u0028\\u81F3\\u0029';\n t['\\u32C0'] = '\\u0031\\u6708';\n t['\\u32C1'] = '\\u0032\\u6708';\n t['\\u32C2'] = '\\u0033\\u6708';\n t['\\u32C3'] = '\\u0034\\u6708';\n t['\\u32C4'] = '\\u0035\\u6708';\n t['\\u32C5'] = '\\u0036\\u6708';\n t['\\u32C6'] = '\\u0037\\u6708';\n t['\\u32C7'] = '\\u0038\\u6708';\n t['\\u32C8'] = '\\u0039\\u6708';\n t['\\u32C9'] = '\\u0031\\u0030\\u6708';\n t['\\u32CA'] = '\\u0031\\u0031\\u6708';\n t['\\u32CB'] = '\\u0031\\u0032\\u6708';\n t['\\u3358'] = '\\u0030\\u70B9';\n t['\\u3359'] = '\\u0031\\u70B9';\n t['\\u335A'] = '\\u0032\\u70B9';\n t['\\u335B'] = '\\u0033\\u70B9';\n t['\\u335C'] = '\\u0034\\u70B9';\n t['\\u335D'] = '\\u0035\\u70B9';\n t['\\u335E'] = '\\u0036\\u70B9';\n t['\\u335F'] = '\\u0037\\u70B9';\n t['\\u3360'] = '\\u0038\\u70B9';\n t['\\u3361'] = '\\u0039\\u70B9';\n t['\\u3362'] = '\\u0031\\u0030\\u70B9';\n t['\\u3363'] = '\\u0031\\u0031\\u70B9';\n t['\\u3364'] = '\\u0031\\u0032\\u70B9';\n t['\\u3365'] = '\\u0031\\u0033\\u70B9';\n t['\\u3366'] = '\\u0031\\u0034\\u70B9';\n t['\\u3367'] = '\\u0031\\u0035\\u70B9';\n t['\\u3368'] = '\\u0031\\u0036\\u70B9';\n t['\\u3369'] = '\\u0031\\u0037\\u70B9';\n t['\\u336A'] = '\\u0031\\u0038\\u70B9';\n t['\\u336B'] = '\\u0031\\u0039\\u70B9';\n t['\\u336C'] = '\\u0032\\u0030\\u70B9';\n t['\\u336D'] = '\\u0032\\u0031\\u70B9';\n t['\\u336E'] = '\\u0032\\u0032\\u70B9';\n t['\\u336F'] = '\\u0032\\u0033\\u70B9';\n t['\\u3370'] = '\\u0032\\u0034\\u70B9';\n t['\\u33E0'] = '\\u0031\\u65E5';\n t['\\u33E1'] = '\\u0032\\u65E5';\n t['\\u33E2'] = '\\u0033\\u65E5';\n t['\\u33E3'] = '\\u0034\\u65E5';\n t['\\u33E4'] = '\\u0035\\u65E5';\n t['\\u33E5'] = '\\u0036\\u65E5';\n t['\\u33E6'] = '\\u0037\\u65E5';\n t['\\u33E7'] = '\\u0038\\u65E5';\n t['\\u33E8'] = '\\u0039\\u65E5';\n t['\\u33E9'] = '\\u0031\\u0030\\u65E5';\n t['\\u33EA'] = '\\u0031\\u0031\\u65E5';\n t['\\u33EB'] = '\\u0031\\u0032\\u65E5';\n t['\\u33EC'] = '\\u0031\\u0033\\u65E5';\n t['\\u33ED'] = '\\u0031\\u0034\\u65E5';\n t['\\u33EE'] = '\\u0031\\u0035\\u65E5';\n t['\\u33EF'] = '\\u0031\\u0036\\u65E5';\n t['\\u33F0'] = '\\u0031\\u0037\\u65E5';\n t['\\u33F1'] = '\\u0031\\u0038\\u65E5';\n t['\\u33F2'] = '\\u0031\\u0039\\u65E5';\n t['\\u33F3'] = '\\u0032\\u0030\\u65E5';\n t['\\u33F4'] = '\\u0032\\u0031\\u65E5';\n t['\\u33F5'] = '\\u0032\\u0032\\u65E5';\n t['\\u33F6'] = '\\u0032\\u0033\\u65E5';\n t['\\u33F7'] = '\\u0032\\u0034\\u65E5';\n t['\\u33F8'] = '\\u0032\\u0035\\u65E5';\n t['\\u33F9'] = '\\u0032\\u0036\\u65E5';\n t['\\u33FA'] = '\\u0032\\u0037\\u65E5';\n t['\\u33FB'] = '\\u0032\\u0038\\u65E5';\n t['\\u33FC'] = '\\u0032\\u0039\\u65E5';\n t['\\u33FD'] = '\\u0033\\u0030\\u65E5';\n t['\\u33FE'] = '\\u0033\\u0031\\u65E5';\n t['\\uFB00'] = '\\u0066\\u0066';\n t['\\uFB01'] = '\\u0066\\u0069';\n t['\\uFB02'] = '\\u0066\\u006C';\n t['\\uFB03'] = '\\u0066\\u0066\\u0069';\n t['\\uFB04'] = '\\u0066\\u0066\\u006C';\n t['\\uFB05'] = '\\u017F\\u0074';\n t['\\uFB06'] = '\\u0073\\u0074';\n t['\\uFB13'] = '\\u0574\\u0576';\n t['\\uFB14'] = '\\u0574\\u0565';\n t['\\uFB15'] = '\\u0574\\u056B';\n t['\\uFB16'] = '\\u057E\\u0576';\n t['\\uFB17'] = '\\u0574\\u056D';\n t['\\uFB4F'] = '\\u05D0\\u05DC';\n t['\\uFB50'] = '\\u0671';\n t['\\uFB51'] = '\\u0671';\n t['\\uFB52'] = '\\u067B';\n t['\\uFB53'] = '\\u067B';\n t['\\uFB54'] = '\\u067B';\n t['\\uFB55'] = '\\u067B';\n t['\\uFB56'] = '\\u067E';\n t['\\uFB57'] = '\\u067E';\n t['\\uFB58'] = '\\u067E';\n t['\\uFB59'] = '\\u067E';\n t['\\uFB5A'] = '\\u0680';\n t['\\uFB5B'] = '\\u0680';\n t['\\uFB5C'] = '\\u0680';\n t['\\uFB5D'] = '\\u0680';\n t['\\uFB5E'] = '\\u067A';\n t['\\uFB5F'] = '\\u067A';\n t['\\uFB60'] = '\\u067A';\n t['\\uFB61'] = '\\u067A';\n t['\\uFB62'] = '\\u067F';\n t['\\uFB63'] = '\\u067F';\n t['\\uFB64'] = '\\u067F';\n t['\\uFB65'] = '\\u067F';\n t['\\uFB66'] = '\\u0679';\n t['\\uFB67'] = '\\u0679';\n t['\\uFB68'] = '\\u0679';\n t['\\uFB69'] = '\\u0679';\n t['\\uFB6A'] = '\\u06A4';\n t['\\uFB6B'] = '\\u06A4';\n t['\\uFB6C'] = '\\u06A4';\n t['\\uFB6D'] = '\\u06A4';\n t['\\uFB6E'] = '\\u06A6';\n t['\\uFB6F'] = '\\u06A6';\n t['\\uFB70'] = '\\u06A6';\n t['\\uFB71'] = '\\u06A6';\n t['\\uFB72'] = '\\u0684';\n t['\\uFB73'] = '\\u0684';\n t['\\uFB74'] = '\\u0684';\n t['\\uFB75'] = '\\u0684';\n t['\\uFB76'] = '\\u0683';\n t['\\uFB77'] = '\\u0683';\n t['\\uFB78'] = '\\u0683';\n t['\\uFB79'] = '\\u0683';\n t['\\uFB7A'] = '\\u0686';\n t['\\uFB7B'] = '\\u0686';\n t['\\uFB7C'] = '\\u0686';\n t['\\uFB7D'] = '\\u0686';\n t['\\uFB7E'] = '\\u0687';\n t['\\uFB7F'] = '\\u0687';\n t['\\uFB80'] = '\\u0687';\n t['\\uFB81'] = '\\u0687';\n t['\\uFB82'] = '\\u068D';\n t['\\uFB83'] = '\\u068D';\n t['\\uFB84'] = '\\u068C';\n t['\\uFB85'] = '\\u068C';\n t['\\uFB86'] = '\\u068E';\n t['\\uFB87'] = '\\u068E';\n t['\\uFB88'] = '\\u0688';\n t['\\uFB89'] = '\\u0688';\n t['\\uFB8A'] = '\\u0698';\n t['\\uFB8B'] = '\\u0698';\n t['\\uFB8C'] = '\\u0691';\n t['\\uFB8D'] = '\\u0691';\n t['\\uFB8E'] = '\\u06A9';\n t['\\uFB8F'] = '\\u06A9';\n t['\\uFB90'] = '\\u06A9';\n t['\\uFB91'] = '\\u06A9';\n t['\\uFB92'] = '\\u06AF';\n t['\\uFB93'] = '\\u06AF';\n t['\\uFB94'] = '\\u06AF';\n t['\\uFB95'] = '\\u06AF';\n t['\\uFB96'] = '\\u06B3';\n t['\\uFB97'] = '\\u06B3';\n t['\\uFB98'] = '\\u06B3';\n t['\\uFB99'] = '\\u06B3';\n t['\\uFB9A'] = '\\u06B1';\n t['\\uFB9B'] = '\\u06B1';\n t['\\uFB9C'] = '\\u06B1';\n t['\\uFB9D'] = '\\u06B1';\n t['\\uFB9E'] = '\\u06BA';\n t['\\uFB9F'] = '\\u06BA';\n t['\\uFBA0'] = '\\u06BB';\n t['\\uFBA1'] = '\\u06BB';\n t['\\uFBA2'] = '\\u06BB';\n t['\\uFBA3'] = '\\u06BB';\n t['\\uFBA4'] = '\\u06C0';\n t['\\uFBA5'] = '\\u06C0';\n t['\\uFBA6'] = '\\u06C1';\n t['\\uFBA7'] = '\\u06C1';\n t['\\uFBA8'] = '\\u06C1';\n t['\\uFBA9'] = '\\u06C1';\n t['\\uFBAA'] = '\\u06BE';\n t['\\uFBAB'] = '\\u06BE';\n t['\\uFBAC'] = '\\u06BE';\n t['\\uFBAD'] = '\\u06BE';\n t['\\uFBAE'] = '\\u06D2';\n t['\\uFBAF'] = '\\u06D2';\n t['\\uFBB0'] = '\\u06D3';\n t['\\uFBB1'] = '\\u06D3';\n t['\\uFBD3'] = '\\u06AD';\n t['\\uFBD4'] = '\\u06AD';\n t['\\uFBD5'] = '\\u06AD';\n t['\\uFBD6'] = '\\u06AD';\n t['\\uFBD7'] = '\\u06C7';\n t['\\uFBD8'] = '\\u06C7';\n t['\\uFBD9'] = '\\u06C6';\n t['\\uFBDA'] = '\\u06C6';\n t['\\uFBDB'] = '\\u06C8';\n t['\\uFBDC'] = '\\u06C8';\n t['\\uFBDD'] = '\\u0677';\n t['\\uFBDE'] = '\\u06CB';\n t['\\uFBDF'] = '\\u06CB';\n t['\\uFBE0'] = '\\u06C5';\n t['\\uFBE1'] = '\\u06C5';\n t['\\uFBE2'] = '\\u06C9';\n t['\\uFBE3'] = '\\u06C9';\n t['\\uFBE4'] = '\\u06D0';\n t['\\uFBE5'] = '\\u06D0';\n t['\\uFBE6'] = '\\u06D0';\n t['\\uFBE7'] = '\\u06D0';\n t['\\uFBE8'] = '\\u0649';\n t['\\uFBE9'] = '\\u0649';\n t['\\uFBEA'] = '\\u0626\\u0627';\n t['\\uFBEB'] = '\\u0626\\u0627';\n t['\\uFBEC'] = '\\u0626\\u06D5';\n t['\\uFBED'] = '\\u0626\\u06D5';\n t['\\uFBEE'] = '\\u0626\\u0648';\n t['\\uFBEF'] = '\\u0626\\u0648';\n t['\\uFBF0'] = '\\u0626\\u06C7';\n t['\\uFBF1'] = '\\u0626\\u06C7';\n t['\\uFBF2'] = '\\u0626\\u06C6';\n t['\\uFBF3'] = '\\u0626\\u06C6';\n t['\\uFBF4'] = '\\u0626\\u06C8';\n t['\\uFBF5'] = '\\u0626\\u06C8';\n t['\\uFBF6'] = '\\u0626\\u06D0';\n t['\\uFBF7'] = '\\u0626\\u06D0';\n t['\\uFBF8'] = '\\u0626\\u06D0';\n t['\\uFBF9'] = '\\u0626\\u0649';\n t['\\uFBFA'] = '\\u0626\\u0649';\n t['\\uFBFB'] = '\\u0626\\u0649';\n t['\\uFBFC'] = '\\u06CC';\n t['\\uFBFD'] = '\\u06CC';\n t['\\uFBFE'] = '\\u06CC';\n t['\\uFBFF'] = '\\u06CC';\n t['\\uFC00'] = '\\u0626\\u062C';\n t['\\uFC01'] = '\\u0626\\u062D';\n t['\\uFC02'] = '\\u0626\\u0645';\n t['\\uFC03'] = '\\u0626\\u0649';\n t['\\uFC04'] = '\\u0626\\u064A';\n t['\\uFC05'] = '\\u0628\\u062C';\n t['\\uFC06'] = '\\u0628\\u062D';\n t['\\uFC07'] = '\\u0628\\u062E';\n t['\\uFC08'] = '\\u0628\\u0645';\n t['\\uFC09'] = '\\u0628\\u0649';\n t['\\uFC0A'] = '\\u0628\\u064A';\n t['\\uFC0B'] = '\\u062A\\u062C';\n t['\\uFC0C'] = '\\u062A\\u062D';\n t['\\uFC0D'] = '\\u062A\\u062E';\n t['\\uFC0E'] = '\\u062A\\u0645';\n t['\\uFC0F'] = '\\u062A\\u0649';\n t['\\uFC10'] = '\\u062A\\u064A';\n t['\\uFC11'] = '\\u062B\\u062C';\n t['\\uFC12'] = '\\u062B\\u0645';\n t['\\uFC13'] = '\\u062B\\u0649';\n t['\\uFC14'] = '\\u062B\\u064A';\n t['\\uFC15'] = '\\u062C\\u062D';\n t['\\uFC16'] = '\\u062C\\u0645';\n t['\\uFC17'] = '\\u062D\\u062C';\n t['\\uFC18'] = '\\u062D\\u0645';\n t['\\uFC19'] = '\\u062E\\u062C';\n t['\\uFC1A'] = '\\u062E\\u062D';\n t['\\uFC1B'] = '\\u062E\\u0645';\n t['\\uFC1C'] = '\\u0633\\u062C';\n t['\\uFC1D'] = '\\u0633\\u062D';\n t['\\uFC1E'] = '\\u0633\\u062E';\n t['\\uFC1F'] = '\\u0633\\u0645';\n t['\\uFC20'] = '\\u0635\\u062D';\n t['\\uFC21'] = '\\u0635\\u0645';\n t['\\uFC22'] = '\\u0636\\u062C';\n t['\\uFC23'] = '\\u0636\\u062D';\n t['\\uFC24'] = '\\u0636\\u062E';\n t['\\uFC25'] = '\\u0636\\u0645';\n t['\\uFC26'] = '\\u0637\\u062D';\n t['\\uFC27'] = '\\u0637\\u0645';\n t['\\uFC28'] = '\\u0638\\u0645';\n t['\\uFC29'] = '\\u0639\\u062C';\n t['\\uFC2A'] = '\\u0639\\u0645';\n t['\\uFC2B'] = '\\u063A\\u062C';\n t['\\uFC2C'] = '\\u063A\\u0645';\n t['\\uFC2D'] = '\\u0641\\u062C';\n t['\\uFC2E'] = '\\u0641\\u062D';\n t['\\uFC2F'] = '\\u0641\\u062E';\n t['\\uFC30'] = '\\u0641\\u0645';\n t['\\uFC31'] = '\\u0641\\u0649';\n t['\\uFC32'] = '\\u0641\\u064A';\n t['\\uFC33'] = '\\u0642\\u062D';\n t['\\uFC34'] = '\\u0642\\u0645';\n t['\\uFC35'] = '\\u0642\\u0649';\n t['\\uFC36'] = '\\u0642\\u064A';\n t['\\uFC37'] = '\\u0643\\u0627';\n t['\\uFC38'] = '\\u0643\\u062C';\n t['\\uFC39'] = '\\u0643\\u062D';\n t['\\uFC3A'] = '\\u0643\\u062E';\n t['\\uFC3B'] = '\\u0643\\u0644';\n t['\\uFC3C'] = '\\u0643\\u0645';\n t['\\uFC3D'] = '\\u0643\\u0649';\n t['\\uFC3E'] = '\\u0643\\u064A';\n t['\\uFC3F'] = '\\u0644\\u062C';\n t['\\uFC40'] = '\\u0644\\u062D';\n t['\\uFC41'] = '\\u0644\\u062E';\n t['\\uFC42'] = '\\u0644\\u0645';\n t['\\uFC43'] = '\\u0644\\u0649';\n t['\\uFC44'] = '\\u0644\\u064A';\n t['\\uFC45'] = '\\u0645\\u062C';\n t['\\uFC46'] = '\\u0645\\u062D';\n t['\\uFC47'] = '\\u0645\\u062E';\n t['\\uFC48'] = '\\u0645\\u0645';\n t['\\uFC49'] = '\\u0645\\u0649';\n t['\\uFC4A'] = '\\u0645\\u064A';\n t['\\uFC4B'] = '\\u0646\\u062C';\n t['\\uFC4C'] = '\\u0646\\u062D';\n t['\\uFC4D'] = '\\u0646\\u062E';\n t['\\uFC4E'] = '\\u0646\\u0645';\n t['\\uFC4F'] = '\\u0646\\u0649';\n t['\\uFC50'] = '\\u0646\\u064A';\n t['\\uFC51'] = '\\u0647\\u062C';\n t['\\uFC52'] = '\\u0647\\u0645';\n t['\\uFC53'] = '\\u0647\\u0649';\n t['\\uFC54'] = '\\u0647\\u064A';\n t['\\uFC55'] = '\\u064A\\u062C';\n t['\\uFC56'] = '\\u064A\\u062D';\n t['\\uFC57'] = '\\u064A\\u062E';\n t['\\uFC58'] = '\\u064A\\u0645';\n t['\\uFC59'] = '\\u064A\\u0649';\n t['\\uFC5A'] = '\\u064A\\u064A';\n t['\\uFC5B'] = '\\u0630\\u0670';\n t['\\uFC5C'] = '\\u0631\\u0670';\n t['\\uFC5D'] = '\\u0649\\u0670';\n t['\\uFC5E'] = '\\u0020\\u064C\\u0651';\n t['\\uFC5F'] = '\\u0020\\u064D\\u0651';\n t['\\uFC60'] = '\\u0020\\u064E\\u0651';\n t['\\uFC61'] = '\\u0020\\u064F\\u0651';\n t['\\uFC62'] = '\\u0020\\u0650\\u0651';\n t['\\uFC63'] = '\\u0020\\u0651\\u0670';\n t['\\uFC64'] = '\\u0626\\u0631';\n t['\\uFC65'] = '\\u0626\\u0632';\n t['\\uFC66'] = '\\u0626\\u0645';\n t['\\uFC67'] = '\\u0626\\u0646';\n t['\\uFC68'] = '\\u0626\\u0649';\n t['\\uFC69'] = '\\u0626\\u064A';\n t['\\uFC6A'] = '\\u0628\\u0631';\n t['\\uFC6B'] = '\\u0628\\u0632';\n t['\\uFC6C'] = '\\u0628\\u0645';\n t['\\uFC6D'] = '\\u0628\\u0646';\n t['\\uFC6E'] = '\\u0628\\u0649';\n t['\\uFC6F'] = '\\u0628\\u064A';\n t['\\uFC70'] = '\\u062A\\u0631';\n t['\\uFC71'] = '\\u062A\\u0632';\n t['\\uFC72'] = '\\u062A\\u0645';\n t['\\uFC73'] = '\\u062A\\u0646';\n t['\\uFC74'] = '\\u062A\\u0649';\n t['\\uFC75'] = '\\u062A\\u064A';\n t['\\uFC76'] = '\\u062B\\u0631';\n t['\\uFC77'] = '\\u062B\\u0632';\n t['\\uFC78'] = '\\u062B\\u0645';\n t['\\uFC79'] = '\\u062B\\u0646';\n t['\\uFC7A'] = '\\u062B\\u0649';\n t['\\uFC7B'] = '\\u062B\\u064A';\n t['\\uFC7C'] = '\\u0641\\u0649';\n t['\\uFC7D'] = '\\u0641\\u064A';\n t['\\uFC7E'] = '\\u0642\\u0649';\n t['\\uFC7F'] = '\\u0642\\u064A';\n t['\\uFC80'] = '\\u0643\\u0627';\n t['\\uFC81'] = '\\u0643\\u0644';\n t['\\uFC82'] = '\\u0643\\u0645';\n t['\\uFC83'] = '\\u0643\\u0649';\n t['\\uFC84'] = '\\u0643\\u064A';\n t['\\uFC85'] = '\\u0644\\u0645';\n t['\\uFC86'] = '\\u0644\\u0649';\n t['\\uFC87'] = '\\u0644\\u064A';\n t['\\uFC88'] = '\\u0645\\u0627';\n t['\\uFC89'] = '\\u0645\\u0645';\n t['\\uFC8A'] = '\\u0646\\u0631';\n t['\\uFC8B'] = '\\u0646\\u0632';\n t['\\uFC8C'] = '\\u0646\\u0645';\n t['\\uFC8D'] = '\\u0646\\u0646';\n t['\\uFC8E'] = '\\u0646\\u0649';\n t['\\uFC8F'] = '\\u0646\\u064A';\n t['\\uFC90'] = '\\u0649\\u0670';\n t['\\uFC91'] = '\\u064A\\u0631';\n t['\\uFC92'] = '\\u064A\\u0632';\n t['\\uFC93'] = '\\u064A\\u0645';\n t['\\uFC94'] = '\\u064A\\u0646';\n t['\\uFC95'] = '\\u064A\\u0649';\n t['\\uFC96'] = '\\u064A\\u064A';\n t['\\uFC97'] = '\\u0626\\u062C';\n t['\\uFC98'] = '\\u0626\\u062D';\n t['\\uFC99'] = '\\u0626\\u062E';\n t['\\uFC9A'] = '\\u0626\\u0645';\n t['\\uFC9B'] = '\\u0626\\u0647';\n t['\\uFC9C'] = '\\u0628\\u062C';\n t['\\uFC9D'] = '\\u0628\\u062D';\n t['\\uFC9E'] = '\\u0628\\u062E';\n t['\\uFC9F'] = '\\u0628\\u0645';\n t['\\uFCA0'] = '\\u0628\\u0647';\n t['\\uFCA1'] = '\\u062A\\u062C';\n t['\\uFCA2'] = '\\u062A\\u062D';\n t['\\uFCA3'] = '\\u062A\\u062E';\n t['\\uFCA4'] = '\\u062A\\u0645';\n t['\\uFCA5'] = '\\u062A\\u0647';\n t['\\uFCA6'] = '\\u062B\\u0645';\n t['\\uFCA7'] = '\\u062C\\u062D';\n t['\\uFCA8'] = '\\u062C\\u0645';\n t['\\uFCA9'] = '\\u062D\\u062C';\n t['\\uFCAA'] = '\\u062D\\u0645';\n t['\\uFCAB'] = '\\u062E\\u062C';\n t['\\uFCAC'] = '\\u062E\\u0645';\n t['\\uFCAD'] = '\\u0633\\u062C';\n t['\\uFCAE'] = '\\u0633\\u062D';\n t['\\uFCAF'] = '\\u0633\\u062E';\n t['\\uFCB0'] = '\\u0633\\u0645';\n t['\\uFCB1'] = '\\u0635\\u062D';\n t['\\uFCB2'] = '\\u0635\\u062E';\n t['\\uFCB3'] = '\\u0635\\u0645';\n t['\\uFCB4'] = '\\u0636\\u062C';\n t['\\uFCB5'] = '\\u0636\\u062D';\n t['\\uFCB6'] = '\\u0636\\u062E';\n t['\\uFCB7'] = '\\u0636\\u0645';\n t['\\uFCB8'] = '\\u0637\\u062D';\n t['\\uFCB9'] = '\\u0638\\u0645';\n t['\\uFCBA'] = '\\u0639\\u062C';\n t['\\uFCBB'] = '\\u0639\\u0645';\n t['\\uFCBC'] = '\\u063A\\u062C';\n t['\\uFCBD'] = '\\u063A\\u0645';\n t['\\uFCBE'] = '\\u0641\\u062C';\n t['\\uFCBF'] = '\\u0641\\u062D';\n t['\\uFCC0'] = '\\u0641\\u062E';\n t['\\uFCC1'] = '\\u0641\\u0645';\n t['\\uFCC2'] = '\\u0642\\u062D';\n t['\\uFCC3'] = '\\u0642\\u0645';\n t['\\uFCC4'] = '\\u0643\\u062C';\n t['\\uFCC5'] = '\\u0643\\u062D';\n t['\\uFCC6'] = '\\u0643\\u062E';\n t['\\uFCC7'] = '\\u0643\\u0644';\n t['\\uFCC8'] = '\\u0643\\u0645';\n t['\\uFCC9'] = '\\u0644\\u062C';\n t['\\uFCCA'] = '\\u0644\\u062D';\n t['\\uFCCB'] = '\\u0644\\u062E';\n t['\\uFCCC'] = '\\u0644\\u0645';\n t['\\uFCCD'] = '\\u0644\\u0647';\n t['\\uFCCE'] = '\\u0645\\u062C';\n t['\\uFCCF'] = '\\u0645\\u062D';\n t['\\uFCD0'] = '\\u0645\\u062E';\n t['\\uFCD1'] = '\\u0645\\u0645';\n t['\\uFCD2'] = '\\u0646\\u062C';\n t['\\uFCD3'] = '\\u0646\\u062D';\n t['\\uFCD4'] = '\\u0646\\u062E';\n t['\\uFCD5'] = '\\u0646\\u0645';\n t['\\uFCD6'] = '\\u0646\\u0647';\n t['\\uFCD7'] = '\\u0647\\u062C';\n t['\\uFCD8'] = '\\u0647\\u0645';\n t['\\uFCD9'] = '\\u0647\\u0670';\n t['\\uFCDA'] = '\\u064A\\u062C';\n t['\\uFCDB'] = '\\u064A\\u062D';\n t['\\uFCDC'] = '\\u064A\\u062E';\n t['\\uFCDD'] = '\\u064A\\u0645';\n t['\\uFCDE'] = '\\u064A\\u0647';\n t['\\uFCDF'] = '\\u0626\\u0645';\n t['\\uFCE0'] = '\\u0626\\u0647';\n t['\\uFCE1'] = '\\u0628\\u0645';\n t['\\uFCE2'] = '\\u0628\\u0647';\n t['\\uFCE3'] = '\\u062A\\u0645';\n t['\\uFCE4'] = '\\u062A\\u0647';\n t['\\uFCE5'] = '\\u062B\\u0645';\n t['\\uFCE6'] = '\\u062B\\u0647';\n t['\\uFCE7'] = '\\u0633\\u0645';\n t['\\uFCE8'] = '\\u0633\\u0647';\n t['\\uFCE9'] = '\\u0634\\u0645';\n t['\\uFCEA'] = '\\u0634\\u0647';\n t['\\uFCEB'] = '\\u0643\\u0644';\n t['\\uFCEC'] = '\\u0643\\u0645';\n t['\\uFCED'] = '\\u0644\\u0645';\n t['\\uFCEE'] = '\\u0646\\u0645';\n t['\\uFCEF'] = '\\u0646\\u0647';\n t['\\uFCF0'] = '\\u064A\\u0645';\n t['\\uFCF1'] = '\\u064A\\u0647';\n t['\\uFCF2'] = '\\u0640\\u064E\\u0651';\n t['\\uFCF3'] = '\\u0640\\u064F\\u0651';\n t['\\uFCF4'] = '\\u0640\\u0650\\u0651';\n t['\\uFCF5'] = '\\u0637\\u0649';\n t['\\uFCF6'] = '\\u0637\\u064A';\n t['\\uFCF7'] = '\\u0639\\u0649';\n t['\\uFCF8'] = '\\u0639\\u064A';\n t['\\uFCF9'] = '\\u063A\\u0649';\n t['\\uFCFA'] = '\\u063A\\u064A';\n t['\\uFCFB'] = '\\u0633\\u0649';\n t['\\uFCFC'] = '\\u0633\\u064A';\n t['\\uFCFD'] = '\\u0634\\u0649';\n t['\\uFCFE'] = '\\u0634\\u064A';\n t['\\uFCFF'] = '\\u062D\\u0649';\n t['\\uFD00'] = '\\u062D\\u064A';\n t['\\uFD01'] = '\\u062C\\u0649';\n t['\\uFD02'] = '\\u062C\\u064A';\n t['\\uFD03'] = '\\u062E\\u0649';\n t['\\uFD04'] = '\\u062E\\u064A';\n t['\\uFD05'] = '\\u0635\\u0649';\n t['\\uFD06'] = '\\u0635\\u064A';\n t['\\uFD07'] = '\\u0636\\u0649';\n t['\\uFD08'] = '\\u0636\\u064A';\n t['\\uFD09'] = '\\u0634\\u062C';\n t['\\uFD0A'] = '\\u0634\\u062D';\n t['\\uFD0B'] = '\\u0634\\u062E';\n t['\\uFD0C'] = '\\u0634\\u0645';\n t['\\uFD0D'] = '\\u0634\\u0631';\n t['\\uFD0E'] = '\\u0633\\u0631';\n t['\\uFD0F'] = '\\u0635\\u0631';\n t['\\uFD10'] = '\\u0636\\u0631';\n t['\\uFD11'] = '\\u0637\\u0649';\n t['\\uFD12'] = '\\u0637\\u064A';\n t['\\uFD13'] = '\\u0639\\u0649';\n t['\\uFD14'] = '\\u0639\\u064A';\n t['\\uFD15'] = '\\u063A\\u0649';\n t['\\uFD16'] = '\\u063A\\u064A';\n t['\\uFD17'] = '\\u0633\\u0649';\n t['\\uFD18'] = '\\u0633\\u064A';\n t['\\uFD19'] = '\\u0634\\u0649';\n t['\\uFD1A'] = '\\u0634\\u064A';\n t['\\uFD1B'] = '\\u062D\\u0649';\n t['\\uFD1C'] = '\\u062D\\u064A';\n t['\\uFD1D'] = '\\u062C\\u0649';\n t['\\uFD1E'] = '\\u062C\\u064A';\n t['\\uFD1F'] = '\\u062E\\u0649';\n t['\\uFD20'] = '\\u062E\\u064A';\n t['\\uFD21'] = '\\u0635\\u0649';\n t['\\uFD22'] = '\\u0635\\u064A';\n t['\\uFD23'] = '\\u0636\\u0649';\n t['\\uFD24'] = '\\u0636\\u064A';\n t['\\uFD25'] = '\\u0634\\u062C';\n t['\\uFD26'] = '\\u0634\\u062D';\n t['\\uFD27'] = '\\u0634\\u062E';\n t['\\uFD28'] = '\\u0634\\u0645';\n t['\\uFD29'] = '\\u0634\\u0631';\n t['\\uFD2A'] = '\\u0633\\u0631';\n t['\\uFD2B'] = '\\u0635\\u0631';\n t['\\uFD2C'] = '\\u0636\\u0631';\n t['\\uFD2D'] = '\\u0634\\u062C';\n t['\\uFD2E'] = '\\u0634\\u062D';\n t['\\uFD2F'] = '\\u0634\\u062E';\n t['\\uFD30'] = '\\u0634\\u0645';\n t['\\uFD31'] = '\\u0633\\u0647';\n t['\\uFD32'] = '\\u0634\\u0647';\n t['\\uFD33'] = '\\u0637\\u0645';\n t['\\uFD34'] = '\\u0633\\u062C';\n t['\\uFD35'] = '\\u0633\\u062D';\n t['\\uFD36'] = '\\u0633\\u062E';\n t['\\uFD37'] = '\\u0634\\u062C';\n t['\\uFD38'] = '\\u0634\\u062D';\n t['\\uFD39'] = '\\u0634\\u062E';\n t['\\uFD3A'] = '\\u0637\\u0645';\n t['\\uFD3B'] = '\\u0638\\u0645';\n t['\\uFD3C'] = '\\u0627\\u064B';\n t['\\uFD3D'] = '\\u0627\\u064B';\n t['\\uFD50'] = '\\u062A\\u062C\\u0645';\n t['\\uFD51'] = '\\u062A\\u062D\\u062C';\n t['\\uFD52'] = '\\u062A\\u062D\\u062C';\n t['\\uFD53'] = '\\u062A\\u062D\\u0645';\n t['\\uFD54'] = '\\u062A\\u062E\\u0645';\n t['\\uFD55'] = '\\u062A\\u0645\\u062C';\n t['\\uFD56'] = '\\u062A\\u0645\\u062D';\n t['\\uFD57'] = '\\u062A\\u0645\\u062E';\n t['\\uFD58'] = '\\u062C\\u0645\\u062D';\n t['\\uFD59'] = '\\u062C\\u0645\\u062D';\n t['\\uFD5A'] = '\\u062D\\u0645\\u064A';\n t['\\uFD5B'] = '\\u062D\\u0645\\u0649';\n t['\\uFD5C'] = '\\u0633\\u062D\\u062C';\n t['\\uFD5D'] = '\\u0633\\u062C\\u062D';\n t['\\uFD5E'] = '\\u0633\\u062C\\u0649';\n t['\\uFD5F'] = '\\u0633\\u0645\\u062D';\n t['\\uFD60'] = '\\u0633\\u0645\\u062D';\n t['\\uFD61'] = '\\u0633\\u0645\\u062C';\n t['\\uFD62'] = '\\u0633\\u0645\\u0645';\n t['\\uFD63'] = '\\u0633\\u0645\\u0645';\n t['\\uFD64'] = '\\u0635\\u062D\\u062D';\n t['\\uFD65'] = '\\u0635\\u062D\\u062D';\n t['\\uFD66'] = '\\u0635\\u0645\\u0645';\n t['\\uFD67'] = '\\u0634\\u062D\\u0645';\n t['\\uFD68'] = '\\u0634\\u062D\\u0645';\n t['\\uFD69'] = '\\u0634\\u062C\\u064A';\n t['\\uFD6A'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6B'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6C'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6D'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6E'] = '\\u0636\\u062D\\u0649';\n t['\\uFD6F'] = '\\u0636\\u062E\\u0645';\n t['\\uFD70'] = '\\u0636\\u062E\\u0645';\n t['\\uFD71'] = '\\u0637\\u0645\\u062D';\n t['\\uFD72'] = '\\u0637\\u0645\\u062D';\n t['\\uFD73'] = '\\u0637\\u0645\\u0645';\n t['\\uFD74'] = '\\u0637\\u0645\\u064A';\n t['\\uFD75'] = '\\u0639\\u062C\\u0645';\n t['\\uFD76'] = '\\u0639\\u0645\\u0645';\n t['\\uFD77'] = '\\u0639\\u0645\\u0645';\n t['\\uFD78'] = '\\u0639\\u0645\\u0649';\n t['\\uFD79'] = '\\u063A\\u0645\\u0645';\n t['\\uFD7A'] = '\\u063A\\u0645\\u064A';\n t['\\uFD7B'] = '\\u063A\\u0645\\u0649';\n t['\\uFD7C'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7D'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7E'] = '\\u0642\\u0645\\u062D';\n t['\\uFD7F'] = '\\u0642\\u0645\\u0645';\n t['\\uFD80'] = '\\u0644\\u062D\\u0645';\n t['\\uFD81'] = '\\u0644\\u062D\\u064A';\n t['\\uFD82'] = '\\u0644\\u062D\\u0649';\n t['\\uFD83'] = '\\u0644\\u062C\\u062C';\n t['\\uFD84'] = '\\u0644\\u062C\\u062C';\n t['\\uFD85'] = '\\u0644\\u062E\\u0645';\n t['\\uFD86'] = '\\u0644\\u062E\\u0645';\n t['\\uFD87'] = '\\u0644\\u0645\\u062D';\n t['\\uFD88'] = '\\u0644\\u0645\\u062D';\n t['\\uFD89'] = '\\u0645\\u062D\\u062C';\n t['\\uFD8A'] = '\\u0645\\u062D\\u0645';\n t['\\uFD8B'] = '\\u0645\\u062D\\u064A';\n t['\\uFD8C'] = '\\u0645\\u062C\\u062D';\n t['\\uFD8D'] = '\\u0645\\u062C\\u0645';\n t['\\uFD8E'] = '\\u0645\\u062E\\u062C';\n t['\\uFD8F'] = '\\u0645\\u062E\\u0645';\n t['\\uFD92'] = '\\u0645\\u062C\\u062E';\n t['\\uFD93'] = '\\u0647\\u0645\\u062C';\n t['\\uFD94'] = '\\u0647\\u0645\\u0645';\n t['\\uFD95'] = '\\u0646\\u062D\\u0645';\n t['\\uFD96'] = '\\u0646\\u062D\\u0649';\n t['\\uFD97'] = '\\u0646\\u062C\\u0645';\n t['\\uFD98'] = '\\u0646\\u062C\\u0645';\n t['\\uFD99'] = '\\u0646\\u062C\\u0649';\n t['\\uFD9A'] = '\\u0646\\u0645\\u064A';\n t['\\uFD9B'] = '\\u0646\\u0645\\u0649';\n t['\\uFD9C'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9D'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9E'] = '\\u0628\\u062E\\u064A';\n t['\\uFD9F'] = '\\u062A\\u062C\\u064A';\n t['\\uFDA0'] = '\\u062A\\u062C\\u0649';\n t['\\uFDA1'] = '\\u062A\\u062E\\u064A';\n t['\\uFDA2'] = '\\u062A\\u062E\\u0649';\n t['\\uFDA3'] = '\\u062A\\u0645\\u064A';\n t['\\uFDA4'] = '\\u062A\\u0645\\u0649';\n t['\\uFDA5'] = '\\u062C\\u0645\\u064A';\n t['\\uFDA6'] = '\\u062C\\u062D\\u0649';\n t['\\uFDA7'] = '\\u062C\\u0645\\u0649';\n t['\\uFDA8'] = '\\u0633\\u062E\\u0649';\n t['\\uFDA9'] = '\\u0635\\u062D\\u064A';\n t['\\uFDAA'] = '\\u0634\\u062D\\u064A';\n t['\\uFDAB'] = '\\u0636\\u062D\\u064A';\n t['\\uFDAC'] = '\\u0644\\u062C\\u064A';\n t['\\uFDAD'] = '\\u0644\\u0645\\u064A';\n t['\\uFDAE'] = '\\u064A\\u062D\\u064A';\n t['\\uFDAF'] = '\\u064A\\u062C\\u064A';\n t['\\uFDB0'] = '\\u064A\\u0645\\u064A';\n t['\\uFDB1'] = '\\u0645\\u0645\\u064A';\n t['\\uFDB2'] = '\\u0642\\u0645\\u064A';\n t['\\uFDB3'] = '\\u0646\\u062D\\u064A';\n t['\\uFDB4'] = '\\u0642\\u0645\\u062D';\n t['\\uFDB5'] = '\\u0644\\u062D\\u0645';\n t['\\uFDB6'] = '\\u0639\\u0645\\u064A';\n t['\\uFDB7'] = '\\u0643\\u0645\\u064A';\n t['\\uFDB8'] = '\\u0646\\u062C\\u062D';\n t['\\uFDB9'] = '\\u0645\\u062E\\u064A';\n t['\\uFDBA'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBB'] = '\\u0643\\u0645\\u0645';\n t['\\uFDBC'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBD'] = '\\u0646\\u062C\\u062D';\n t['\\uFDBE'] = '\\u062C\\u062D\\u064A';\n t['\\uFDBF'] = '\\u062D\\u062C\\u064A';\n t['\\uFDC0'] = '\\u0645\\u062C\\u064A';\n t['\\uFDC1'] = '\\u0641\\u0645\\u064A';\n t['\\uFDC2'] = '\\u0628\\u062D\\u064A';\n t['\\uFDC3'] = '\\u0643\\u0645\\u0645';\n t['\\uFDC4'] = '\\u0639\\u062C\\u0645';\n t['\\uFDC5'] = '\\u0635\\u0645\\u0645';\n t['\\uFDC6'] = '\\u0633\\u062E\\u064A';\n t['\\uFDC7'] = '\\u0646\\u062C\\u064A';\n t['\\uFE49'] = '\\u203E';\n t['\\uFE4A'] = '\\u203E';\n t['\\uFE4B'] = '\\u203E';\n t['\\uFE4C'] = '\\u203E';\n t['\\uFE4D'] = '\\u005F';\n t['\\uFE4E'] = '\\u005F';\n t['\\uFE4F'] = '\\u005F';\n t['\\uFE80'] = '\\u0621';\n t['\\uFE81'] = '\\u0622';\n t['\\uFE82'] = '\\u0622';\n t['\\uFE83'] = '\\u0623';\n t['\\uFE84'] = '\\u0623';\n t['\\uFE85'] = '\\u0624';\n t['\\uFE86'] = '\\u0624';\n t['\\uFE87'] = '\\u0625';\n t['\\uFE88'] = '\\u0625';\n t['\\uFE89'] = '\\u0626';\n t['\\uFE8A'] = '\\u0626';\n t['\\uFE8B'] = '\\u0626';\n t['\\uFE8C'] = '\\u0626';\n t['\\uFE8D'] = '\\u0627';\n t['\\uFE8E'] = '\\u0627';\n t['\\uFE8F'] = '\\u0628';\n t['\\uFE90'] = '\\u0628';\n t['\\uFE91'] = '\\u0628';\n t['\\uFE92'] = '\\u0628';\n t['\\uFE93'] = '\\u0629';\n t['\\uFE94'] = '\\u0629';\n t['\\uFE95'] = '\\u062A';\n t['\\uFE96'] = '\\u062A';\n t['\\uFE97'] = '\\u062A';\n t['\\uFE98'] = '\\u062A';\n t['\\uFE99'] = '\\u062B';\n t['\\uFE9A'] = '\\u062B';\n t['\\uFE9B'] = '\\u062B';\n t['\\uFE9C'] = '\\u062B';\n t['\\uFE9D'] = '\\u062C';\n t['\\uFE9E'] = '\\u062C';\n t['\\uFE9F'] = '\\u062C';\n t['\\uFEA0'] = '\\u062C';\n t['\\uFEA1'] = '\\u062D';\n t['\\uFEA2'] = '\\u062D';\n t['\\uFEA3'] = '\\u062D';\n t['\\uFEA4'] = '\\u062D';\n t['\\uFEA5'] = '\\u062E';\n t['\\uFEA6'] = '\\u062E';\n t['\\uFEA7'] = '\\u062E';\n t['\\uFEA8'] = '\\u062E';\n t['\\uFEA9'] = '\\u062F';\n t['\\uFEAA'] = '\\u062F';\n t['\\uFEAB'] = '\\u0630';\n t['\\uFEAC'] = '\\u0630';\n t['\\uFEAD'] = '\\u0631';\n t['\\uFEAE'] = '\\u0631';\n t['\\uFEAF'] = '\\u0632';\n t['\\uFEB0'] = '\\u0632';\n t['\\uFEB1'] = '\\u0633';\n t['\\uFEB2'] = '\\u0633';\n t['\\uFEB3'] = '\\u0633';\n t['\\uFEB4'] = '\\u0633';\n t['\\uFEB5'] = '\\u0634';\n t['\\uFEB6'] = '\\u0634';\n t['\\uFEB7'] = '\\u0634';\n t['\\uFEB8'] = '\\u0634';\n t['\\uFEB9'] = '\\u0635';\n t['\\uFEBA'] = '\\u0635';\n t['\\uFEBB'] = '\\u0635';\n t['\\uFEBC'] = '\\u0635';\n t['\\uFEBD'] = '\\u0636';\n t['\\uFEBE'] = '\\u0636';\n t['\\uFEBF'] = '\\u0636';\n t['\\uFEC0'] = '\\u0636';\n t['\\uFEC1'] = '\\u0637';\n t['\\uFEC2'] = '\\u0637';\n t['\\uFEC3'] = '\\u0637';\n t['\\uFEC4'] = '\\u0637';\n t['\\uFEC5'] = '\\u0638';\n t['\\uFEC6'] = '\\u0638';\n t['\\uFEC7'] = '\\u0638';\n t['\\uFEC8'] = '\\u0638';\n t['\\uFEC9'] = '\\u0639';\n t['\\uFECA'] = '\\u0639';\n t['\\uFECB'] = '\\u0639';\n t['\\uFECC'] = '\\u0639';\n t['\\uFECD'] = '\\u063A';\n t['\\uFECE'] = '\\u063A';\n t['\\uFECF'] = '\\u063A';\n t['\\uFED0'] = '\\u063A';\n t['\\uFED1'] = '\\u0641';\n t['\\uFED2'] = '\\u0641';\n t['\\uFED3'] = '\\u0641';\n t['\\uFED4'] = '\\u0641';\n t['\\uFED5'] = '\\u0642';\n t['\\uFED6'] = '\\u0642';\n t['\\uFED7'] = '\\u0642';\n t['\\uFED8'] = '\\u0642';\n t['\\uFED9'] = '\\u0643';\n t['\\uFEDA'] = '\\u0643';\n t['\\uFEDB'] = '\\u0643';\n t['\\uFEDC'] = '\\u0643';\n t['\\uFEDD'] = '\\u0644';\n t['\\uFEDE'] = '\\u0644';\n t['\\uFEDF'] = '\\u0644';\n t['\\uFEE0'] = '\\u0644';\n t['\\uFEE1'] = '\\u0645';\n t['\\uFEE2'] = '\\u0645';\n t['\\uFEE3'] = '\\u0645';\n t['\\uFEE4'] = '\\u0645';\n t['\\uFEE5'] = '\\u0646';\n t['\\uFEE6'] = '\\u0646';\n t['\\uFEE7'] = '\\u0646';\n t['\\uFEE8'] = '\\u0646';\n t['\\uFEE9'] = '\\u0647';\n t['\\uFEEA'] = '\\u0647';\n t['\\uFEEB'] = '\\u0647';\n t['\\uFEEC'] = '\\u0647';\n t['\\uFEED'] = '\\u0648';\n t['\\uFEEE'] = '\\u0648';\n t['\\uFEEF'] = '\\u0649';\n t['\\uFEF0'] = '\\u0649';\n t['\\uFEF1'] = '\\u064A';\n t['\\uFEF2'] = '\\u064A';\n t['\\uFEF3'] = '\\u064A';\n t['\\uFEF4'] = '\\u064A';\n t['\\uFEF5'] = '\\u0644\\u0622';\n t['\\uFEF6'] = '\\u0644\\u0622';\n t['\\uFEF7'] = '\\u0644\\u0623';\n t['\\uFEF8'] = '\\u0644\\u0623';\n t['\\uFEF9'] = '\\u0644\\u0625';\n t['\\uFEFA'] = '\\u0644\\u0625';\n t['\\uFEFB'] = '\\u0644\\u0627';\n t['\\uFEFC'] = '\\u0644\\u0627';\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n  return chars;\n }\n var s = '';\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n  s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cff_parser = __w_pdfjs_require__(174);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n  function getLong(data, offset) {\n    return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n  }\n\n  function getUshort(data, offset) {\n    return data[offset] << 8 | data[offset + 1];\n  }\n\n  function parseCmap(data, start, end) {\n    var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n    var format = getUshort(data, start + offset);\n    var ranges, p, i;\n\n    if (format === 4) {\n      getUshort(data, start + offset + 2);\n      var segCount = getUshort(data, start + offset + 6) >> 1;\n      p = start + offset + 14;\n      ranges = [];\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i] = {\n          end: getUshort(data, p)\n        };\n      }\n\n      p += 2;\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].start = getUshort(data, p);\n      }\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].idDelta = getUshort(data, p);\n      }\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        var idOffset = getUshort(data, p);\n\n        if (idOffset === 0) {\n          continue;\n        }\n\n        ranges[i].ids = [];\n\n        for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n          ranges[i].ids[j] = getUshort(data, p + idOffset);\n          idOffset += 2;\n        }\n      }\n\n      return ranges;\n    } else if (format === 12) {\n      getLong(data, start + offset + 4);\n      var groups = getLong(data, start + offset + 12);\n      p = start + offset + 16;\n      ranges = [];\n\n      for (i = 0; i < groups; i++) {\n        ranges.push({\n          start: getLong(data, p),\n          end: getLong(data, p + 4),\n          idDelta: getLong(data, p + 8) - getLong(data, p)\n        });\n        p += 12;\n      }\n\n      return ranges;\n    }\n\n    throw new _util.FormatError(\"unsupported cmap: \".concat(format));\n  }\n\n  function parseCff(data, start, end, seacAnalysisEnabled) {\n    var properties = {};\n    var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n    var cff = parser.parse();\n    return {\n      glyphs: cff.charStrings.objects,\n      subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n      gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n      isCFFCIDFont: cff.isCIDFont,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray\n    };\n  }\n\n  function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n    var itemSize, itemDecode;\n\n    if (isGlyphLocationsLong) {\n      itemSize = 4;\n\n      itemDecode = function fontItemDecodeLong(data, offset) {\n        return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n      };\n    } else {\n      itemSize = 2;\n\n      itemDecode = function fontItemDecode(data, offset) {\n        return data[offset] << 9 | data[offset + 1] << 1;\n      };\n    }\n\n    var glyphs = [];\n    var startOffset = itemDecode(loca, 0);\n\n    for (var j = itemSize; j < loca.length; j += itemSize) {\n      var endOffset = itemDecode(loca, j);\n      glyphs.push(glyf.subarray(startOffset, endOffset));\n      startOffset = endOffset;\n    }\n\n    return glyphs;\n  }\n\n  function lookupCmap(ranges, unicode) {\n    var code = unicode.codePointAt(0),\n        gid = 0;\n    var l = 0,\n        r = ranges.length - 1;\n\n    while (l < r) {\n      var c = l + r + 1 >> 1;\n\n      if (code < ranges[c].start) {\n        r = c - 1;\n      } else {\n        l = c;\n      }\n    }\n\n    if (ranges[l].start <= code && code <= ranges[l].end) {\n      gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF;\n    }\n\n    return {\n      charCode: code,\n      glyphId: gid\n    };\n  }\n\n  function compileGlyf(code, cmds, font) {\n    function moveTo(x, y) {\n      cmds.push({\n        cmd: 'moveTo',\n        args: [x, y]\n      });\n    }\n\n    function lineTo(x, y) {\n      cmds.push({\n        cmd: 'lineTo',\n        args: [x, y]\n      });\n    }\n\n    function quadraticCurveTo(xa, ya, x, y) {\n      cmds.push({\n        cmd: 'quadraticCurveTo',\n        args: [xa, ya, x, y]\n      });\n    }\n\n    var i = 0;\n    var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n    var flags;\n    var x = 0,\n        y = 0;\n    i += 10;\n\n    if (numberOfContours < 0) {\n      do {\n        flags = code[i] << 8 | code[i + 1];\n        var glyphIndex = code[i + 2] << 8 | code[i + 3];\n        i += 4;\n        var arg1, arg2;\n\n        if (flags & 0x01) {\n          arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n          arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n          i += 4;\n        } else {\n          arg1 = code[i++];\n          arg2 = code[i++];\n        }\n\n        if (flags & 0x02) {\n          x = arg1;\n          y = arg2;\n        } else {\n          x = 0;\n          y = 0;\n        }\n\n        var scaleX = 1,\n            scaleY = 1,\n            scale01 = 0,\n            scale10 = 0;\n\n        if (flags & 0x08) {\n          scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          i += 2;\n        } else if (flags & 0x40) {\n          scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n          i += 4;\n        } else if (flags & 0x80) {\n          scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n          scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n          scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n          i += 8;\n        }\n\n        var subglyph = font.glyphs[glyphIndex];\n\n        if (subglyph) {\n          cmds.push({\n            cmd: 'save'\n          });\n          cmds.push({\n            cmd: 'transform',\n            args: [scaleX, scale01, scale10, scaleY, x, y]\n          });\n          compileGlyf(subglyph, cmds, font);\n          cmds.push({\n            cmd: 'restore'\n          });\n        }\n      } while (flags & 0x20);\n    } else {\n      var endPtsOfContours = [];\n      var j, jj;\n\n      for (j = 0; j < numberOfContours; j++) {\n        endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n        i += 2;\n      }\n\n      var instructionLength = code[i] << 8 | code[i + 1];\n      i += 2 + instructionLength;\n      var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n      var points = [];\n\n      while (points.length < numberOfPoints) {\n        flags = code[i++];\n        var repeat = 1;\n\n        if (flags & 0x08) {\n          repeat += code[i++];\n        }\n\n        while (repeat-- > 0) {\n          points.push({\n            flags: flags\n          });\n        }\n      }\n\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x12) {\n          case 0x00:\n            x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n            i += 2;\n            break;\n\n          case 0x02:\n            x -= code[i++];\n            break;\n\n          case 0x12:\n            x += code[i++];\n            break;\n        }\n\n        points[j].x = x;\n      }\n\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x24) {\n          case 0x00:\n            y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n            i += 2;\n            break;\n\n          case 0x04:\n            y -= code[i++];\n            break;\n\n          case 0x24:\n            y += code[i++];\n            break;\n        }\n\n        points[j].y = y;\n      }\n\n      var startPoint = 0;\n\n      for (i = 0; i < numberOfContours; i++) {\n        var endPoint = endPtsOfContours[i];\n        var contour = points.slice(startPoint, endPoint + 1);\n\n        if (contour[0].flags & 1) {\n          contour.push(contour[0]);\n        } else if (contour[contour.length - 1].flags & 1) {\n          contour.unshift(contour[contour.length - 1]);\n        } else {\n          var p = {\n            flags: 1,\n            x: (contour[0].x + contour[contour.length - 1].x) / 2,\n            y: (contour[0].y + contour[contour.length - 1].y) / 2\n          };\n          contour.unshift(p);\n          contour.push(p);\n        }\n\n        moveTo(contour[0].x, contour[0].y);\n\n        for (j = 1, jj = contour.length; j < jj; j++) {\n          if (contour[j].flags & 1) {\n            lineTo(contour[j].x, contour[j].y);\n          } else if (contour[j + 1].flags & 1) {\n            quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n            j++;\n          } else {\n            quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n          }\n        }\n\n        startPoint = endPoint + 1;\n      }\n    }\n  }\n\n  function compileCharString(code, cmds, font, glyphId) {\n    var stack = [];\n    var x = 0,\n        y = 0;\n    var stems = 0;\n\n    function moveTo(x, y) {\n      cmds.push({\n        cmd: 'moveTo',\n        args: [x, y]\n      });\n    }\n\n    function lineTo(x, y) {\n      cmds.push({\n        cmd: 'lineTo',\n        args: [x, y]\n      });\n    }\n\n    function bezierCurveTo(x1, y1, x2, y2, x, y) {\n      cmds.push({\n        cmd: 'bezierCurveTo',\n        args: [x1, y1, x2, y2, x, y]\n      });\n    }\n\n    function parse(code) {\n      var i = 0;\n\n      while (i < code.length) {\n        var stackClean = false;\n        var v = code[i++];\n        var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n        switch (v) {\n          case 1:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 3:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 4:\n            y += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 5:\n            while (stack.length > 0) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 6:\n            while (stack.length > 0) {\n              x += stack.shift();\n              lineTo(x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 7:\n            while (stack.length > 0) {\n              y += stack.shift();\n              lineTo(x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              x += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 8:\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 10:\n            n = stack.pop();\n            subrCode = null;\n\n            if (font.isCFFCIDFont) {\n              var fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n              if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n                var fontDict = font.fdArray[fdIndex],\n                    subrs = void 0;\n\n                if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n                  subrs = fontDict.privateDict.subrsIndex.objects;\n                }\n\n                if (subrs) {\n                  var numSubrs = subrs.length;\n                  n += numSubrs < 1240 ? 107 : numSubrs < 33900 ? 1131 : 32768;\n                  subrCode = subrs[n];\n                }\n              } else {\n                (0, _util.warn)('Invalid fd index for glyph index.');\n              }\n            } else {\n              subrCode = font.subrs[n + font.subrsBias];\n            }\n\n            if (subrCode) {\n              parse(subrCode);\n            }\n\n            break;\n\n          case 11:\n            return;\n\n          case 12:\n            v = code[i++];\n\n            switch (v) {\n              case 34:\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y1 = y + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y, xb, y1, x, y1);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y, x, y);\n                break;\n\n              case 35:\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                stack.pop();\n                break;\n\n              case 36:\n                xa = x + stack.shift();\n                y1 = y + stack.shift();\n                xb = xa + stack.shift();\n                y2 = y1 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y2, x, y2);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y3 = y2 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y2, xb, y3, x, y);\n                break;\n\n              case 37:\n                var x0 = x,\n                    y0 = y;\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb;\n                y = yb;\n\n                if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                  x += stack.shift();\n                } else {\n                  y += stack.shift();\n                }\n\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                break;\n\n              default:\n                throw new _util.FormatError(\"unknown operator: 12 \".concat(v));\n            }\n\n            break;\n\n          case 14:\n            if (stack.length >= 4) {\n              var achar = stack.pop();\n              var bchar = stack.pop();\n              y = stack.pop();\n              x = stack.pop();\n              cmds.push({\n                cmd: 'save'\n              });\n              cmds.push({\n                cmd: 'translate',\n                args: [x, y]\n              });\n              var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n              compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n              cmds.push({\n                cmd: 'restore'\n              });\n              cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n              compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n            }\n\n            return;\n\n          case 18:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 19:\n            stems += stack.length >> 1;\n            i += stems + 7 >> 3;\n            stackClean = true;\n            break;\n\n          case 20:\n            stems += stack.length >> 1;\n            i += stems + 7 >> 3;\n            stackClean = true;\n            break;\n\n          case 21:\n            y += stack.pop();\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 22:\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 23:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 24:\n            while (stack.length > 2) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n            break;\n\n          case 25:\n            while (stack.length > 6) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            break;\n\n          case 26:\n            if (stack.length % 2) {\n              x += stack.shift();\n            }\n\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 27:\n            if (stack.length % 2) {\n              y += stack.shift();\n            }\n\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb;\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 28:\n            stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n            i += 2;\n            break;\n\n          case 29:\n            n = stack.pop() + font.gsubrsBias;\n            subrCode = font.gsubrs[n];\n\n            if (subrCode) {\n              parse(subrCode);\n            }\n\n            break;\n\n          case 30:\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 31:\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          default:\n            if (v < 32) {\n              throw new _util.FormatError(\"unknown operator: \".concat(v));\n            }\n\n            if (v < 247) {\n              stack.push(v - 139);\n            } else if (v < 251) {\n              stack.push((v - 247) * 256 + code[i++] + 108);\n            } else if (v < 255) {\n              stack.push(-(v - 251) * 256 - code[i++] - 108);\n            } else {\n              stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n              i += 4;\n            }\n\n            break;\n        }\n\n        if (stackClean) {\n          stack.length = 0;\n        }\n      }\n    }\n\n    parse(code);\n  }\n\n  var NOOP = [];\n\n  var CompiledFont =\n  /*#__PURE__*/\n  function () {\n    function CompiledFont(fontMatrix) {\n      _classCallCheck(this, CompiledFont);\n\n      if (this.constructor === CompiledFont) {\n        (0, _util.unreachable)('Cannot initialize CompiledFont.');\n      }\n\n      this.fontMatrix = fontMatrix;\n      this.compiledGlyphs = Object.create(null);\n      this.compiledCharCodeToGlyphId = Object.create(null);\n    }\n\n    _createClass(CompiledFont, [{\n      key: \"getPathJs\",\n      value: function getPathJs(unicode) {\n        var cmap = lookupCmap(this.cmap, unicode);\n        var fn = this.compiledGlyphs[cmap.glyphId];\n\n        if (!fn) {\n          fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n          this.compiledGlyphs[cmap.glyphId] = fn;\n        }\n\n        if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n          this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n        }\n\n        return fn;\n      }\n    }, {\n      key: \"compileGlyph\",\n      value: function compileGlyph(code, glyphId) {\n        if (!code || code.length === 0 || code[0] === 14) {\n          return NOOP;\n        }\n\n        var fontMatrix = this.fontMatrix;\n\n        if (this.isCFFCIDFont) {\n          var fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n          if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n            var fontDict = this.fdArray[fdIndex];\n            fontMatrix = fontDict.getByName('FontMatrix') || _util.FONT_IDENTITY_MATRIX;\n          } else {\n            (0, _util.warn)('Invalid fd index for glyph index.');\n          }\n        }\n\n        var cmds = [];\n        cmds.push({\n          cmd: 'save'\n        });\n        cmds.push({\n          cmd: 'transform',\n          args: fontMatrix.slice()\n        });\n        cmds.push({\n          cmd: 'scale',\n          args: ['size', '-size']\n        });\n        this.compileGlyphImpl(code, cmds, glyphId);\n        cmds.push({\n          cmd: 'restore'\n        });\n        return cmds;\n      }\n    }, {\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl() {\n        (0, _util.unreachable)('Children classes should implement this.');\n      }\n    }, {\n      key: \"hasBuiltPath\",\n      value: function hasBuiltPath(unicode) {\n        var cmap = lookupCmap(this.cmap, unicode);\n        return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n      }\n    }]);\n\n    return CompiledFont;\n  }();\n\n  var TrueTypeCompiled =\n  /*#__PURE__*/\n  function (_CompiledFont) {\n    _inherits(TrueTypeCompiled, _CompiledFont);\n\n    function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n      var _this;\n\n      _classCallCheck(this, TrueTypeCompiled);\n\n      _this = _possibleConstructorReturn(this, _getPrototypeOf(TrueTypeCompiled).call(this, fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]));\n      _this.glyphs = glyphs;\n      _this.cmap = cmap;\n      return _this;\n    }\n\n    _createClass(TrueTypeCompiled, [{\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl(code, cmds) {\n        compileGlyf(code, cmds, this);\n      }\n    }]);\n\n    return TrueTypeCompiled;\n  }(CompiledFont);\n\n  var Type2Compiled =\n  /*#__PURE__*/\n  function (_CompiledFont2) {\n    _inherits(Type2Compiled, _CompiledFont2);\n\n    function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n      var _this2;\n\n      _classCallCheck(this, Type2Compiled);\n\n      _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Type2Compiled).call(this, fontMatrix || [0.001, 0, 0, 0.001, 0, 0]));\n      _this2.glyphs = cffInfo.glyphs;\n      _this2.gsubrs = cffInfo.gsubrs || [];\n      _this2.subrs = cffInfo.subrs || [];\n      _this2.cmap = cmap;\n      _this2.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n      _this2.gsubrsBias = _this2.gsubrs.length < 1240 ? 107 : _this2.gsubrs.length < 33900 ? 1131 : 32768;\n      _this2.subrsBias = _this2.subrs.length < 1240 ? 107 : _this2.subrs.length < 33900 ? 1131 : 32768;\n      _this2.isCFFCIDFont = cffInfo.isCFFCIDFont;\n      _this2.fdSelect = cffInfo.fdSelect;\n      _this2.fdArray = cffInfo.fdArray;\n      return _this2;\n    }\n\n    _createClass(Type2Compiled, [{\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl(code, cmds, glyphId) {\n        compileCharString(code, cmds, this, glyphId);\n      }\n    }]);\n\n    return Type2Compiled;\n  }(CompiledFont);\n\n  return {\n    create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n      var data = new Uint8Array(font.data);\n      var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n      var numTables = getUshort(data, 4);\n\n      for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n        var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n        var offset = getLong(data, p + 8);\n        var length = getLong(data, p + 12);\n\n        switch (tag) {\n          case 'cmap':\n            cmap = parseCmap(data, offset, offset + length);\n            break;\n\n          case 'glyf':\n            glyf = data.subarray(offset, offset + length);\n            break;\n\n          case 'loca':\n            loca = data.subarray(offset, offset + length);\n            break;\n\n          case 'head':\n            unitsPerEm = getUshort(data, offset + 18);\n            indexToLocFormat = getUshort(data, offset + 50);\n            break;\n\n          case 'CFF ':\n            cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n            break;\n        }\n      }\n\n      if (glyf) {\n        var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n        return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n      }\n\n      return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n    }\n  };\n}();\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Type1Parser = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar HINTING_ENABLED = false;\n\nvar Type1CharString = function Type1CharStringClosure() {\n  var COMMAND_MAP = {\n    'hstem': [1],\n    'vstem': [3],\n    'vmoveto': [4],\n    'rlineto': [5],\n    'hlineto': [6],\n    'vlineto': [7],\n    'rrcurveto': [8],\n    'callsubr': [10],\n    'flex': [12, 35],\n    'drop': [12, 18],\n    'endchar': [14],\n    'rmoveto': [21],\n    'hmoveto': [22],\n    'vhcurveto': [30],\n    'hvcurveto': [31]\n  };\n\n  function Type1CharString() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  Type1CharString.prototype = {\n    convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n      var count = encoded.length;\n      var error = false;\n      var wx, sbx, subrNumber;\n\n      for (var i = 0; i < count; i++) {\n        var value = encoded[i];\n\n        if (value < 32) {\n          if (value === 12) {\n            value = (value << 8) + encoded[++i];\n          }\n\n          switch (value) {\n            case 1:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n\n            case 3:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n\n            case 4:\n              if (this.flexing) {\n                if (this.stack.length < 1) {\n                  error = true;\n                  break;\n                }\n\n                var dy = this.stack.pop();\n                this.stack.push(0, dy);\n                break;\n              }\n\n              error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n              break;\n\n            case 5:\n              error = this.executeCommand(2, COMMAND_MAP.rlineto);\n              break;\n\n            case 6:\n              error = this.executeCommand(1, COMMAND_MAP.hlineto);\n              break;\n\n            case 7:\n              error = this.executeCommand(1, COMMAND_MAP.vlineto);\n              break;\n\n            case 8:\n              error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n              break;\n\n            case 9:\n              this.stack = [];\n              break;\n\n            case 10:\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n\n              subrNumber = this.stack.pop();\n\n              if (!subrs[subrNumber]) {\n                error = true;\n                break;\n              }\n\n              error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n              break;\n\n            case 11:\n              return error;\n\n            case 13:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              wx = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx);\n              error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n              break;\n\n            case 14:\n              this.output.push(COMMAND_MAP.endchar[0]);\n              break;\n\n            case 21:\n              if (this.flexing) {\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n              break;\n\n            case 22:\n              if (this.flexing) {\n                this.stack.push(0);\n                break;\n              }\n\n              error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n              break;\n\n            case 30:\n              error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n              break;\n\n            case 31:\n              error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n              break;\n\n            case (12 << 8) + 0:\n              this.stack = [];\n              break;\n\n            case (12 << 8) + 1:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n\n            case (12 << 8) + 2:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n\n            case (12 << 8) + 6:\n              if (seacAnalysisEnabled) {\n                this.seac = this.stack.splice(-4, 4);\n                error = this.executeCommand(0, COMMAND_MAP.endchar);\n              } else {\n                error = this.executeCommand(4, COMMAND_MAP.endchar);\n              }\n\n              break;\n\n            case (12 << 8) + 7:\n              if (this.stack.length < 4) {\n                error = true;\n                break;\n              }\n\n              this.stack.pop();\n              wx = this.stack.pop();\n              var sby = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx, sby);\n              error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n              break;\n\n            case (12 << 8) + 12:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              var num2 = this.stack.pop();\n              var num1 = this.stack.pop();\n              this.stack.push(num1 / num2);\n              break;\n\n            case (12 << 8) + 16:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              subrNumber = this.stack.pop();\n              var numArgs = this.stack.pop();\n\n              if (subrNumber === 0 && numArgs === 3) {\n                var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n                this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n                error = this.executeCommand(13, COMMAND_MAP.flex, true);\n                this.flexing = false;\n                this.stack.push(flexArgs[15], flexArgs[16]);\n              } else if (subrNumber === 1 && numArgs === 0) {\n                this.flexing = true;\n              }\n\n              break;\n\n            case (12 << 8) + 17:\n              break;\n\n            case (12 << 8) + 33:\n              this.stack = [];\n              break;\n\n            default:\n              (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n              break;\n          }\n\n          if (error) {\n            break;\n          }\n\n          continue;\n        } else if (value <= 246) {\n          value = value - 139;\n        } else if (value <= 250) {\n          value = (value - 247) * 256 + encoded[++i] + 108;\n        } else if (value <= 254) {\n          value = -((value - 251) * 256) - encoded[++i] - 108;\n        } else {\n          value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n        }\n\n        this.stack.push(value);\n      }\n\n      return error;\n    },\n    executeCommand: function executeCommand(howManyArgs, command, keepStack) {\n      var stackLength = this.stack.length;\n\n      if (howManyArgs > stackLength) {\n        return true;\n      }\n\n      var start = stackLength - howManyArgs;\n\n      for (var i = start; i < stackLength; i++) {\n        var value = this.stack[i];\n\n        if (Number.isInteger(value)) {\n          this.output.push(28, value >> 8 & 0xff, value & 0xff);\n        } else {\n          value = 65536 * value | 0;\n          this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF);\n        }\n      }\n\n      this.output.push.apply(this.output, command);\n\n      if (keepStack) {\n        this.stack.splice(start, howManyArgs);\n      } else {\n        this.stack.length = 0;\n      }\n\n      return false;\n    }\n  };\n  return Type1CharString;\n}();\n\nvar Type1Parser = function Type1ParserClosure() {\n  var EEXEC_ENCRYPT_KEY = 55665;\n  var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n  function isHexDigit(code) {\n    return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n  }\n\n  function decrypt(data, key, discardNumber) {\n    if (discardNumber >= data.length) {\n      return new Uint8Array(0);\n    }\n\n    var r = key | 0,\n        c1 = 52845,\n        c2 = 22719,\n        i,\n        j;\n\n    for (i = 0; i < discardNumber; i++) {\n      r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n    }\n\n    var count = data.length - discardNumber;\n    var decrypted = new Uint8Array(count);\n\n    for (i = discardNumber, j = 0; j < count; i++, j++) {\n      var value = data[i];\n      decrypted[j] = value ^ r >> 8;\n      r = (value + r) * c1 + c2 & (1 << 16) - 1;\n    }\n\n    return decrypted;\n  }\n\n  function decryptAscii(data, key, discardNumber) {\n    var r = key | 0,\n        c1 = 52845,\n        c2 = 22719;\n    var count = data.length,\n        maybeLength = count >>> 1;\n    var decrypted = new Uint8Array(maybeLength);\n    var i, j;\n\n    for (i = 0, j = 0; i < count; i++) {\n      var digit1 = data[i];\n\n      if (!isHexDigit(digit1)) {\n        continue;\n      }\n\n      i++;\n      var digit2;\n\n      while (i < count && !isHexDigit(digit2 = data[i])) {\n        i++;\n      }\n\n      if (i < count) {\n        var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n        decrypted[j++] = value ^ r >> 8;\n        r = (value + r) * c1 + c2 & (1 << 16) - 1;\n      }\n    }\n\n    return Array.prototype.slice.call(decrypted, discardNumber, j);\n  }\n\n  function isSpecial(c) {\n    return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29;\n  }\n\n  function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      var data = stream.getBytes();\n      var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]));\n      stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n    }\n\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  Type1Parser.prototype = {\n    readNumberArray: function Type1Parser_readNumberArray() {\n      this.getToken();\n      var array = [];\n\n      while (true) {\n        var token = this.getToken();\n\n        if (token === null || token === ']' || token === '}') {\n          break;\n        }\n\n        array.push(parseFloat(token || 0));\n      }\n\n      return array;\n    },\n    readNumber: function Type1Parser_readNumber() {\n      var token = this.getToken();\n      return parseFloat(token || 0);\n    },\n    readInt: function Type1Parser_readInt() {\n      var token = this.getToken();\n      return parseInt(token || 0, 10) | 0;\n    },\n    readBoolean: function Type1Parser_readBoolean() {\n      var token = this.getToken();\n      return token === 'true' ? 1 : 0;\n    },\n    nextChar: function Type1_nextChar() {\n      return this.currentChar = this.stream.getByte();\n    },\n    getToken: function Type1Parser_getToken() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch === -1) {\n          return null;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (!(0, _util.isSpace)(ch)) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      if (isSpecial(ch)) {\n        this.nextChar();\n        return String.fromCharCode(ch);\n      }\n\n      var token = '';\n\n      do {\n        token += String.fromCharCode(ch);\n        ch = this.nextChar();\n      } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch));\n\n      return token;\n    },\n    readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n      if (lenIV === -1) {\n        return bytes;\n      }\n\n      return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n    },\n    extractFontProgram: function Type1Parser_extractFontProgram() {\n      var stream = this.stream;\n      var subrs = [],\n          charstrings = [];\n      var privateData = Object.create(null);\n      privateData['lenIV'] = 4;\n      var program = {\n        subrs: [],\n        charstrings: [],\n        properties: {\n          'privateData': privateData\n        }\n      };\n      var token, length, data, lenIV, encoded;\n\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n\n        token = this.getToken();\n\n        switch (token) {\n          case 'CharStrings':\n            this.getToken();\n            this.getToken();\n            this.getToken();\n            this.getToken();\n\n            while (true) {\n              token = this.getToken();\n\n              if (token === null || token === 'end') {\n                break;\n              }\n\n              if (token !== '/') {\n                continue;\n              }\n\n              var glyph = this.getToken();\n              length = this.readInt();\n              this.getToken();\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData['lenIV'];\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken();\n\n              if (token === 'noaccess') {\n                this.getToken();\n              }\n\n              charstrings.push({\n                glyph: glyph,\n                encoded: encoded\n              });\n            }\n\n            break;\n\n          case 'Subrs':\n            this.readInt();\n            this.getToken();\n\n            while (this.getToken() === 'dup') {\n              var index = this.readInt();\n              length = this.readInt();\n              this.getToken();\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData['lenIV'];\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken();\n\n              if (token === 'noaccess') {\n                this.getToken();\n              }\n\n              subrs[index] = encoded;\n            }\n\n            break;\n\n          case 'BlueValues':\n          case 'OtherBlues':\n          case 'FamilyBlues':\n          case 'FamilyOtherBlues':\n            var blueArray = this.readNumberArray();\n\n            if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n              program.properties.privateData[token] = blueArray;\n            }\n\n            break;\n\n          case 'StemSnapH':\n          case 'StemSnapV':\n            program.properties.privateData[token] = this.readNumberArray();\n            break;\n\n          case 'StdHW':\n          case 'StdVW':\n            program.properties.privateData[token] = this.readNumberArray()[0];\n            break;\n\n          case 'BlueShift':\n          case 'lenIV':\n          case 'BlueFuzz':\n          case 'BlueScale':\n          case 'LanguageGroup':\n          case 'ExpansionFactor':\n            program.properties.privateData[token] = this.readNumber();\n            break;\n\n          case 'ForceBold':\n            program.properties.privateData[token] = this.readBoolean();\n            break;\n        }\n      }\n\n      for (var i = 0; i < charstrings.length; i++) {\n        glyph = charstrings[i].glyph;\n        encoded = charstrings[i].encoded;\n        var charString = new Type1CharString();\n        var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n        var output = charString.output;\n\n        if (error) {\n          output = [14];\n        }\n\n        program.charstrings.push({\n          glyphName: glyph,\n          charstring: output,\n          width: charString.width,\n          lsb: charString.lsb,\n          seac: charString.seac\n        });\n      }\n\n      return program;\n    },\n    extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n      var token;\n\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n\n        token = this.getToken();\n\n        switch (token) {\n          case 'FontMatrix':\n            var matrix = this.readNumberArray();\n            properties.fontMatrix = matrix;\n            break;\n\n          case 'Encoding':\n            var encodingArg = this.getToken();\n            var encoding;\n\n            if (!/^\\d+$/.test(encodingArg)) {\n              encoding = (0, _encodings.getEncoding)(encodingArg);\n            } else {\n              encoding = [];\n              var size = parseInt(encodingArg, 10) | 0;\n              this.getToken();\n\n              for (var j = 0; j < size; j++) {\n                token = this.getToken();\n\n                while (token !== 'dup' && token !== 'def') {\n                  token = this.getToken();\n\n                  if (token === null) {\n                    return;\n                  }\n                }\n\n                if (token === 'def') {\n                  break;\n                }\n\n                var index = this.readInt();\n                this.getToken();\n                var glyph = this.getToken();\n                encoding[index] = glyph;\n                this.getToken();\n              }\n            }\n\n            properties.builtInEncoding = encoding;\n            break;\n\n          case 'FontBBox':\n            var fontBBox = this.readNumberArray();\n            properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n            properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n            properties.ascentScaled = true;\n            break;\n        }\n      }\n    }\n  };\n  return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getTilingPatternIR = getTilingPatternIR;\nexports.Pattern = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7\n};\n\nvar Pattern = function PatternClosure() {\n  function Pattern() {\n    (0, _util.unreachable)('should not call Pattern constructor');\n  }\n\n  Pattern.prototype = {\n    getPattern: function Pattern_getPattern(ctx) {\n      (0, _util.unreachable)(\"Should not call Pattern.getStyle: \".concat(ctx));\n    }\n  };\n\n  Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {\n    var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n    var type = dict.get('ShadingType');\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);\n\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory);\n\n        default:\n          throw new _util.FormatError('Unsupported ShadingType: ' + type);\n      }\n    } catch (ex) {\n      if (ex instanceof _util.MissingDataException) {\n        throw ex;\n      }\n\n      handler.send('UnsupportedFeature', {\n        featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n      });\n      (0, _util.warn)(ex);\n      return new Shadings.Dummy();\n    }\n  };\n\n  return Pattern;\n}();\n\nexports.Pattern = Pattern;\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\n\nShadings.RadialAxial = function RadialAxialClosure() {\n  function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n    this.matrix = matrix;\n    this.coordsArr = dict.getArray('Coords');\n    this.shadingType = dict.get('ShadingType');\n    this.type = 'Pattern';\n    var cs = dict.get('ColorSpace', 'CS');\n    cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    var t0 = 0.0,\n        t1 = 1.0;\n\n    if (dict.has('Domain')) {\n      var domainArr = dict.getArray('Domain');\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    var extendStart = false,\n        extendEnd = false;\n\n    if (dict.has('Extend')) {\n      var extendArr = dict.getArray('Extend');\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n      var x1 = this.coordsArr[0];\n      var y1 = this.coordsArr[1];\n      var r1 = this.coordsArr[2];\n      var x2 = this.coordsArr[3];\n      var y2 = this.coordsArr[4];\n      var r2 = this.coordsArr[5];\n      var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        (0, _util.warn)('Unsupported radial gradient.');\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n    var fnObj = dict.get('Function');\n    var fn = pdfFunctionFactory.createFromArray(fnObj);\n    var diff = t1 - t0;\n    var step = diff / 10;\n    var colorStops = this.colorStops = [];\n\n    if (t0 >= t1 || step <= 0) {\n      (0, _util.info)('Bad shading domain.');\n      return;\n    }\n\n    var color = new Float32Array(cs.numComps),\n        ratio = new Float32Array(1);\n    var rgbColor;\n\n    for (var i = t0; i <= t1; i += step) {\n      ratio[0] = i;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n\n      var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n      colorStops.push([(i - t0) / diff, cssColor]);\n    }\n\n    var background = 'transparent';\n\n    if (dict.has('Background')) {\n      rgbColor = cs.getRgb(dict.get('Background'), 0);\n      background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += Shadings.SMALL_NUMBER;\n    }\n\n    if (!extendEnd) {\n      colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  RadialAxial.prototype = {\n    getIR: function RadialAxial_getIR() {\n      var coordsArr = this.coordsArr;\n      var shadingType = this.shadingType;\n      var type, p0, p1, r0, r1;\n\n      if (shadingType === ShadingType.AXIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[2], coordsArr[3]];\n        r0 = null;\n        r1 = null;\n        type = 'axial';\n      } else if (shadingType === ShadingType.RADIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[3], coordsArr[4]];\n        r0 = coordsArr[2];\n        r1 = coordsArr[5];\n        type = 'radial';\n      } else {\n        (0, _util.unreachable)(\"getPattern type unknown: \".concat(shadingType));\n      }\n\n      var matrix = this.matrix;\n\n      if (matrix) {\n        p0 = _util.Util.applyTransform(p0, matrix);\n        p1 = _util.Util.applyTransform(p1, matrix);\n\n        if (shadingType === ShadingType.RADIAL) {\n          var scale = _util.Util.singularValueDecompose2dScale(matrix);\n\n          r0 *= scale[0];\n          r1 *= scale[1];\n        }\n      }\n\n      return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n    }\n  };\n  return RadialAxial;\n}();\n\nShadings.Mesh = function MeshClosure() {\n  function MeshStreamReader(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n    var numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    var csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n  }\n\n  MeshStreamReader.prototype = {\n    get hasData() {\n      if (this.stream.end) {\n        return this.stream.pos < this.stream.end;\n      }\n\n      if (this.bufferLength > 0) {\n        return true;\n      }\n\n      var nextByte = this.stream.getByte();\n\n      if (nextByte < 0) {\n        return false;\n      }\n\n      this.buffer = nextByte;\n      this.bufferLength = 8;\n      return true;\n    },\n\n    readBits: function MeshStreamReader_readBits(n) {\n      var buffer = this.buffer;\n      var bufferLength = this.bufferLength;\n\n      if (n === 32) {\n        if (bufferLength === 0) {\n          return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n        }\n\n        buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n        var nextByte = this.stream.getByte();\n        this.buffer = nextByte & (1 << bufferLength) - 1;\n        return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0;\n      }\n\n      if (n === 8 && bufferLength === 0) {\n        return this.stream.getByte();\n      }\n\n      while (bufferLength < n) {\n        buffer = buffer << 8 | this.stream.getByte();\n        bufferLength += 8;\n      }\n\n      bufferLength -= n;\n      this.bufferLength = bufferLength;\n      this.buffer = buffer & (1 << bufferLength) - 1;\n      return buffer >> bufferLength;\n    },\n    align: function MeshStreamReader_align() {\n      this.buffer = 0;\n      this.bufferLength = 0;\n    },\n    readFlag: function MeshStreamReader_readFlag() {\n      return this.readBits(this.context.bitsPerFlag);\n    },\n    readCoordinate: function MeshStreamReader_readCoordinate() {\n      var bitsPerCoordinate = this.context.bitsPerCoordinate;\n      var xi = this.readBits(bitsPerCoordinate);\n      var yi = this.readBits(bitsPerCoordinate);\n      var decode = this.context.decode;\n      var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n      return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n    },\n    readComponents: function MeshStreamReader_readComponents() {\n      var numComps = this.context.numComps;\n      var bitsPerComponent = this.context.bitsPerComponent;\n      var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n      var decode = this.context.decode;\n      var components = this.tmpCompsBuf;\n\n      for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n        var ci = this.readBits(bitsPerComponent);\n        components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n      }\n\n      var color = this.tmpCsCompsBuf;\n\n      if (this.context.colorFn) {\n        this.context.colorFn(components, 0, color, 0);\n      }\n\n      return this.context.colorSpace.getRgb(color, 0);\n    }\n  };\n\n  function decodeType4Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var operators = [];\n    var ps = [];\n    var verticesLeft = 0;\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n\n      if (verticesLeft === 0) {\n        if (!(0 <= f && f <= 2)) {\n          throw new _util.FormatError('Unknown type4 flag');\n        }\n\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n\n          case 1:\n            ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n\n          case 2:\n            ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n        }\n\n        operators.push(f);\n      }\n\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n      reader.align();\n    }\n\n    mesh.figures.push({\n      type: 'triangles',\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps)\n    });\n  }\n\n  function decodeType5Shading(mesh, reader, verticesPerRow) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = [];\n\n    while (reader.hasData) {\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n\n    mesh.figures.push({\n      type: 'lattice',\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow: verticesPerRow\n    });\n  }\n\n  var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n  var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n  var TRIANGLE_DENSITY = 20;\n\n  var getB = function getBClosure() {\n    function buildB(count) {\n      var lut = [];\n\n      for (var i = 0; i <= count; i++) {\n        var t = i / count,\n            t_ = 1 - t;\n        lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n      }\n\n      return lut;\n    }\n\n    var cache = [];\n    return function getB(count) {\n      if (!cache[count]) {\n        cache[count] = buildB(count);\n      }\n\n      return cache[count];\n    };\n  }();\n\n  function buildFigureFromPatch(mesh, index) {\n    var figure = mesh.figures[index];\n    (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure');\n    var coords = mesh.coords,\n        colors = mesh.colors;\n    var pi = figure.coords;\n    var ci = figure.colors;\n    var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n    splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n    var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n    splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n    var verticesPerRow = splitXBy + 1;\n    var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var k = 0;\n    var cl = new Uint8Array(3),\n        cr = new Uint8Array(3);\n    var c0 = colors[ci[0]],\n        c1 = colors[ci[1]],\n        c2 = colors[ci[2]],\n        c3 = colors[ci[3]];\n    var bRow = getB(splitYBy),\n        bCol = getB(splitXBy);\n\n    for (var row = 0; row <= splitYBy; row++) {\n      cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n      cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n      cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n      cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n      cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n      cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n      for (var col = 0; col <= splitXBy; col++, k++) {\n        if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n          continue;\n        }\n\n        var x = 0,\n            y = 0;\n        var q = 0;\n\n        for (var i = 0; i <= 3; i++) {\n          for (var j = 0; j <= 3; j++, q++) {\n            var m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        var newColor = new Uint8Array(3);\n        newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n        newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n        newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n        colors.push(newColor);\n      }\n    }\n\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n    mesh.figures[index] = {\n      type: 'lattice',\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow: verticesPerRow\n    };\n  }\n\n  function decodeType6Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16);\n    var cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError('Unknown type6 flag');\n      }\n\n      var i, ii;\n      var pi = coords.length;\n\n      for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      var ci = colors.length;\n\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      var tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      ps[5] = coords.length;\n      coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n      ps[6] = coords.length;\n      coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n      ps[9] = coords.length;\n      coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n      ps[10] = coords.length;\n      coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n      mesh.figures.push({\n        type: 'patch',\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  function decodeType7Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16);\n    var cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError('Unknown type7 flag');\n      }\n\n      var i, ii;\n      var pi = coords.length;\n\n      for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      var ci = colors.length;\n\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      var tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[9] = pi + 13;\n          ps[10] = pi + 14;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[5] = pi + 12;\n          ps[6] = pi + 15;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      mesh.figures.push({\n        type: 'patch',\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  function updateBounds(mesh) {\n    var minX = mesh.coords[0][0],\n        minY = mesh.coords[0][1],\n        maxX = minX,\n        maxY = minY;\n\n    for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n      var x = mesh.coords[i][0],\n          y = mesh.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n\n    mesh.bounds = [minX, minY, maxX, maxY];\n  }\n\n  function packData(mesh) {\n    var i, ii, j, jj;\n    var coords = mesh.coords;\n    var coordsPacked = new Float32Array(coords.length * 2);\n\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      var xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n\n    mesh.coords = coordsPacked;\n    var colors = mesh.colors;\n    var colorsPacked = new Uint8Array(colors.length * 3);\n\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      var c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n\n    mesh.colors = colorsPacked;\n    var figures = mesh.figures;\n\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      var figure = figures[i],\n          ps = figure.coords,\n          cs = figure.colors;\n\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n    if (!(0, _primitives.isStream)(stream)) {\n      throw new _util.FormatError('Mesh data is not a stream');\n    }\n\n    var dict = stream.dict;\n    this.matrix = matrix;\n    this.shadingType = dict.get('ShadingType');\n    this.type = 'Pattern';\n    this.bbox = dict.getArray('BBox');\n    var cs = dict.get('ColorSpace', 'CS');\n    cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null;\n    var fnObj = dict.get('Function');\n    var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n    var decodeContext = {\n      bitsPerCoordinate: dict.get('BitsPerCoordinate'),\n      bitsPerComponent: dict.get('BitsPerComponent'),\n      bitsPerFlag: dict.get('BitsPerFlag'),\n      decode: dict.getArray('Decode'),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps\n    };\n    var reader = new MeshStreamReader(stream, decodeContext);\n    var patchMesh = false;\n\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        decodeType4Shading(this, reader);\n        break;\n\n      case ShadingType.LATTICE_FORM_MESH:\n        var verticesPerRow = dict.get('VerticesPerRow') | 0;\n\n        if (verticesPerRow < 2) {\n          throw new _util.FormatError('Invalid VerticesPerRow');\n        }\n\n        decodeType5Shading(this, reader, verticesPerRow);\n        break;\n\n      case ShadingType.COONS_PATCH_MESH:\n        decodeType6Shading(this, reader);\n        patchMesh = true;\n        break;\n\n      case ShadingType.TENSOR_PATCH_MESH:\n        decodeType7Shading(this, reader);\n        patchMesh = true;\n        break;\n\n      default:\n        (0, _util.unreachable)('Unsupported mesh type.');\n        break;\n    }\n\n    if (patchMesh) {\n      updateBounds(this);\n\n      for (var i = 0, ii = this.figures.length; i < ii; i++) {\n        buildFigureFromPatch(this, i);\n      }\n    }\n\n    updateBounds(this);\n    packData(this);\n  }\n\n  Mesh.prototype = {\n    getIR: function Mesh_getIR() {\n      return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n    }\n  };\n  return Mesh;\n}();\n\nShadings.Dummy = function DummyClosure() {\n  function Dummy() {\n    this.type = 'Pattern';\n  }\n\n  Dummy.prototype = {\n    getIR: function Dummy_getIR() {\n      return ['Dummy'];\n    }\n  };\n  return Dummy;\n}();\n\nfunction getTilingPatternIR(operatorList, dict, args) {\n  var matrix = dict.getArray('Matrix');\n\n  var bbox = _util.Util.normalizeRect(dict.getArray('BBox'));\n\n  var xstep = dict.get('XStep');\n  var ystep = dict.get('YStep');\n  var paintType = dict.get('PaintType');\n  var tilingType = dict.get('TilingType');\n\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new _util.FormatError(\"Invalid getTilingPatternIR /BBox array: [\".concat(bbox, \"].\"));\n  }\n\n  return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'];\nvar arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  for (var j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (var j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (var i = start, j = end - 1; i < j; ++i, --j) {\n    var temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR, vertical) {\n  return {\n    str: str,\n    dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'\n  };\n}\n\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n  var isLTR = true;\n  var strLength = str.length;\n\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  chars.length = strLength;\n  types.length = strLength;\n  var numBidi = 0;\n  var i, ii;\n\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n    var charCode = str.charCodeAt(i);\n    var charType = 'L';\n\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = 'R';\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n\n      if (!charType) {\n        (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08AC) {\n      charType = 'AL';\n    }\n\n    if (charType === 'R' || charType === 'AL' || charType === 'AN') {\n      numBidi++;\n    }\n\n    types[i] = charType;\n  }\n\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  var levels = [];\n\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  var e = isOdd(startLevel) ? 'R' : 'L';\n  var sor = e;\n  var eor = sor;\n  var lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'NSM') {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  lastType = sor;\n  var t;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'EN') {\n      types[i] = lastType === 'AL' ? 'AN' : 'EN';\n    } else if (t === 'R' || t === 'L' || t === 'AL') {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'AL') {\n      types[i] = 'R';\n    }\n  }\n\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n      types[i] = 'EN';\n    }\n\n    if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'EN') {\n      var j;\n\n      for (j = i - 1; j >= 0; --j) {\n        if (types[j] !== 'ET') {\n          break;\n        }\n\n        types[j] = 'EN';\n      }\n\n      for (j = i + 1; j < strLength; ++j) {\n        if (types[j] !== 'ET') {\n          break;\n        }\n\n        types[j] = 'EN';\n      }\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {\n      types[i] = 'ON';\n    }\n  }\n\n  lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'EN') {\n      types[i] = lastType === 'L' ? 'L' : 'EN';\n    } else if (t === 'R' || t === 'L') {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'ON') {\n      var end = findUnequal(types, i + 1, 'ON');\n      var before = sor;\n\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      var after = eor;\n\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n\n      if (before !== 'L') {\n        before = 'R';\n      }\n\n      if (after !== 'L') {\n        after = 'R';\n      }\n\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n\n      i = end - 1;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'ON') {\n      types[i] = e;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (isEven(levels[i])) {\n      if (t === 'R') {\n        levels[i] += 1;\n      } else if (t === 'AN' || t === 'EN') {\n        levels[i] += 2;\n      }\n    } else {\n      if (t === 'L' || t === 'AN' || t === 'EN') {\n        levels[i] += 1;\n      }\n    }\n  }\n\n  var highestLevel = -1;\n  var lowestOddLevel = 99;\n  var level;\n\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    var start = -1;\n\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    var ch = chars[i];\n\n    if (ch === '<' || ch === '>') {\n      chars[i] = '';\n    }\n  }\n\n  return createBidiText(chars.join(''), isLTR);\n}\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getMetrics = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar getMetrics = (0, _util.getLookupTableFactory)(function (t) {\n  t['Courier'] = 600;\n  t['Courier-Bold'] = 600;\n  t['Courier-BoldOblique'] = 600;\n  t['Courier-Oblique'] = 600;\n  t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 278;\n    t['quotedbl'] = 355;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 667;\n    t['quoteright'] = 222;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 556;\n    t['at'] = 1015;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 278;\n    t['backslash'] = 278;\n    t['bracketright'] = 278;\n    t['asciicircum'] = 469;\n    t['underscore'] = 556;\n    t['quoteleft'] = 222;\n    t['a'] = 556;\n    t['b'] = 556;\n    t['c'] = 500;\n    t['d'] = 556;\n    t['e'] = 556;\n    t['f'] = 278;\n    t['g'] = 556;\n    t['h'] = 556;\n    t['i'] = 222;\n    t['j'] = 222;\n    t['k'] = 500;\n    t['l'] = 222;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 556;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 333;\n    t['s'] = 500;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 500;\n    t['braceleft'] = 334;\n    t['bar'] = 260;\n    t['braceright'] = 334;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 191;\n    t['quotedblleft'] = 333;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 537;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 222;\n    t['quotedblbase'] = 333;\n    t['quotedblright'] = 333;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 556;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 222;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 500;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 500;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 222;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 500;\n    t['scedilla'] = 500;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 667;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 500;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 643;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 584;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 500;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 260;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 333;\n    t['omacron'] = 556;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 222;\n    t['tcaron'] = 317;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 222;\n    t['Oacute'] = 778;\n    t['oacute'] = 556;\n    t['amacron'] = 556;\n    t['sacute'] = 500;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 556;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 299;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 556;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 556;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 556;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 556;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 556;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 556;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 556;\n    t['eth'] = 556;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 333;\n    t['quotedbl'] = 474;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 722;\n    t['quoteright'] = 278;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 611;\n    t['at'] = 975;\n    t['A'] = 722;\n    t['B'] = 722;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 556;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 584;\n    t['underscore'] = 556;\n    t['quoteleft'] = 278;\n    t['a'] = 556;\n    t['b'] = 611;\n    t['c'] = 556;\n    t['d'] = 611;\n    t['e'] = 556;\n    t['f'] = 333;\n    t['g'] = 611;\n    t['h'] = 611;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 889;\n    t['n'] = 611;\n    t['o'] = 611;\n    t['p'] = 611;\n    t['q'] = 611;\n    t['r'] = 389;\n    t['s'] = 556;\n    t['t'] = 333;\n    t['u'] = 611;\n    t['v'] = 556;\n    t['w'] = 778;\n    t['x'] = 556;\n    t['y'] = 556;\n    t['z'] = 500;\n    t['braceleft'] = 389;\n    t['bar'] = 280;\n    t['braceright'] = 389;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 238;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 611;\n    t['fl'] = 611;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 556;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 278;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 611;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 611;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 556;\n    t['scommaaccent'] = 556;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 611;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 556;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 556;\n    t['scedilla'] = 556;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 611;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 722;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 556;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 743;\n    t['Umacron'] = 722;\n    t['uring'] = 611;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 584;\n    t['uacute'] = 611;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 556;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 556;\n    t['nacute'] = 611;\n    t['umacron'] = 611;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 280;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 611;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 389;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 611;\n    t['amacron'] = 556;\n    t['sacute'] = 556;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 611;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 611;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 611;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 611;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 400;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 611;\n    t['ntilde'] = 611;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 611;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 611;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 611;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 611;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 611;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 611;\n    t['udieresis'] = 611;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 611;\n    t['eth'] = 611;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 611;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 333;\n    t['quotedbl'] = 474;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 722;\n    t['quoteright'] = 278;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 611;\n    t['at'] = 975;\n    t['A'] = 722;\n    t['B'] = 722;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 556;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 584;\n    t['underscore'] = 556;\n    t['quoteleft'] = 278;\n    t['a'] = 556;\n    t['b'] = 611;\n    t['c'] = 556;\n    t['d'] = 611;\n    t['e'] = 556;\n    t['f'] = 333;\n    t['g'] = 611;\n    t['h'] = 611;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 889;\n    t['n'] = 611;\n    t['o'] = 611;\n    t['p'] = 611;\n    t['q'] = 611;\n    t['r'] = 389;\n    t['s'] = 556;\n    t['t'] = 333;\n    t['u'] = 611;\n    t['v'] = 556;\n    t['w'] = 778;\n    t['x'] = 556;\n    t['y'] = 556;\n    t['z'] = 500;\n    t['braceleft'] = 389;\n    t['bar'] = 280;\n    t['braceright'] = 389;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 238;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 611;\n    t['fl'] = 611;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 556;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 278;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 611;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 611;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 556;\n    t['scommaaccent'] = 556;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 611;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 556;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 556;\n    t['scedilla'] = 556;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 611;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 722;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 556;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 743;\n    t['Umacron'] = 722;\n    t['uring'] = 611;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 584;\n    t['uacute'] = 611;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 556;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 556;\n    t['nacute'] = 611;\n    t['umacron'] = 611;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 280;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 611;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 389;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 611;\n    t['amacron'] = 556;\n    t['sacute'] = 556;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 611;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 611;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 611;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 611;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 400;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 611;\n    t['ntilde'] = 611;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 611;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 611;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 611;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 611;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 611;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 611;\n    t['udieresis'] = 611;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 611;\n    t['eth'] = 611;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 611;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 278;\n    t['quotedbl'] = 355;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 667;\n    t['quoteright'] = 222;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 556;\n    t['at'] = 1015;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 278;\n    t['backslash'] = 278;\n    t['bracketright'] = 278;\n    t['asciicircum'] = 469;\n    t['underscore'] = 556;\n    t['quoteleft'] = 222;\n    t['a'] = 556;\n    t['b'] = 556;\n    t['c'] = 500;\n    t['d'] = 556;\n    t['e'] = 556;\n    t['f'] = 278;\n    t['g'] = 556;\n    t['h'] = 556;\n    t['i'] = 222;\n    t['j'] = 222;\n    t['k'] = 500;\n    t['l'] = 222;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 556;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 333;\n    t['s'] = 500;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 500;\n    t['braceleft'] = 334;\n    t['bar'] = 260;\n    t['braceright'] = 334;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 191;\n    t['quotedblleft'] = 333;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 537;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 222;\n    t['quotedblbase'] = 333;\n    t['quotedblright'] = 333;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 556;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 222;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 500;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 500;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 222;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 500;\n    t['scedilla'] = 500;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 667;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 500;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 643;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 584;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 500;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 260;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 333;\n    t['omacron'] = 556;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 222;\n    t['tcaron'] = 317;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 222;\n    t['Oacute'] = 778;\n    t['oacute'] = 556;\n    t['amacron'] = 556;\n    t['sacute'] = 500;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 556;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 299;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 556;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 556;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 556;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 556;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 556;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 556;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 556;\n    t['eth'] = 556;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['universal'] = 713;\n    t['numbersign'] = 500;\n    t['existential'] = 549;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['suchthat'] = 439;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asteriskmath'] = 500;\n    t['plus'] = 549;\n    t['comma'] = 250;\n    t['minus'] = 549;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 549;\n    t['equal'] = 549;\n    t['greater'] = 549;\n    t['question'] = 444;\n    t['congruent'] = 549;\n    t['Alpha'] = 722;\n    t['Beta'] = 667;\n    t['Chi'] = 722;\n    t['Delta'] = 612;\n    t['Epsilon'] = 611;\n    t['Phi'] = 763;\n    t['Gamma'] = 603;\n    t['Eta'] = 722;\n    t['Iota'] = 333;\n    t['theta1'] = 631;\n    t['Kappa'] = 722;\n    t['Lambda'] = 686;\n    t['Mu'] = 889;\n    t['Nu'] = 722;\n    t['Omicron'] = 722;\n    t['Pi'] = 768;\n    t['Theta'] = 741;\n    t['Rho'] = 556;\n    t['Sigma'] = 592;\n    t['Tau'] = 611;\n    t['Upsilon'] = 690;\n    t['sigma1'] = 439;\n    t['Omega'] = 768;\n    t['Xi'] = 645;\n    t['Psi'] = 795;\n    t['Zeta'] = 611;\n    t['bracketleft'] = 333;\n    t['therefore'] = 863;\n    t['bracketright'] = 333;\n    t['perpendicular'] = 658;\n    t['underscore'] = 500;\n    t['radicalex'] = 500;\n    t['alpha'] = 631;\n    t['beta'] = 549;\n    t['chi'] = 549;\n    t['delta'] = 494;\n    t['epsilon'] = 439;\n    t['phi'] = 521;\n    t['gamma'] = 411;\n    t['eta'] = 603;\n    t['iota'] = 329;\n    t['phi1'] = 603;\n    t['kappa'] = 549;\n    t['lambda'] = 549;\n    t['mu'] = 576;\n    t['nu'] = 521;\n    t['omicron'] = 549;\n    t['pi'] = 549;\n    t['theta'] = 521;\n    t['rho'] = 549;\n    t['sigma'] = 603;\n    t['tau'] = 439;\n    t['upsilon'] = 576;\n    t['omega1'] = 713;\n    t['omega'] = 686;\n    t['xi'] = 493;\n    t['psi'] = 686;\n    t['zeta'] = 494;\n    t['braceleft'] = 480;\n    t['bar'] = 200;\n    t['braceright'] = 480;\n    t['similar'] = 549;\n    t['Euro'] = 750;\n    t['Upsilon1'] = 620;\n    t['minute'] = 247;\n    t['lessequal'] = 549;\n    t['fraction'] = 167;\n    t['infinity'] = 713;\n    t['florin'] = 500;\n    t['club'] = 753;\n    t['diamond'] = 753;\n    t['heart'] = 753;\n    t['spade'] = 753;\n    t['arrowboth'] = 1042;\n    t['arrowleft'] = 987;\n    t['arrowup'] = 603;\n    t['arrowright'] = 987;\n    t['arrowdown'] = 603;\n    t['degree'] = 400;\n    t['plusminus'] = 549;\n    t['second'] = 411;\n    t['greaterequal'] = 549;\n    t['multiply'] = 549;\n    t['proportional'] = 713;\n    t['partialdiff'] = 494;\n    t['bullet'] = 460;\n    t['divide'] = 549;\n    t['notequal'] = 549;\n    t['equivalence'] = 549;\n    t['approxequal'] = 549;\n    t['ellipsis'] = 1000;\n    t['arrowvertex'] = 603;\n    t['arrowhorizex'] = 1000;\n    t['carriagereturn'] = 658;\n    t['aleph'] = 823;\n    t['Ifraktur'] = 686;\n    t['Rfraktur'] = 795;\n    t['weierstrass'] = 987;\n    t['circlemultiply'] = 768;\n    t['circleplus'] = 768;\n    t['emptyset'] = 823;\n    t['intersection'] = 768;\n    t['union'] = 768;\n    t['propersuperset'] = 713;\n    t['reflexsuperset'] = 713;\n    t['notsubset'] = 713;\n    t['propersubset'] = 713;\n    t['reflexsubset'] = 713;\n    t['element'] = 713;\n    t['notelement'] = 713;\n    t['angle'] = 768;\n    t['gradient'] = 713;\n    t['registerserif'] = 790;\n    t['copyrightserif'] = 790;\n    t['trademarkserif'] = 890;\n    t['product'] = 823;\n    t['radical'] = 549;\n    t['dotmath'] = 250;\n    t['logicalnot'] = 713;\n    t['logicaland'] = 603;\n    t['logicalor'] = 603;\n    t['arrowdblboth'] = 1042;\n    t['arrowdblleft'] = 987;\n    t['arrowdblup'] = 603;\n    t['arrowdblright'] = 987;\n    t['arrowdbldown'] = 603;\n    t['lozenge'] = 494;\n    t['angleleft'] = 329;\n    t['registersans'] = 790;\n    t['copyrightsans'] = 790;\n    t['trademarksans'] = 786;\n    t['summation'] = 713;\n    t['parenlefttp'] = 384;\n    t['parenleftex'] = 384;\n    t['parenleftbt'] = 384;\n    t['bracketlefttp'] = 384;\n    t['bracketleftex'] = 384;\n    t['bracketleftbt'] = 384;\n    t['bracelefttp'] = 494;\n    t['braceleftmid'] = 494;\n    t['braceleftbt'] = 494;\n    t['braceex'] = 494;\n    t['angleright'] = 329;\n    t['integral'] = 274;\n    t['integraltp'] = 686;\n    t['integralex'] = 686;\n    t['integralbt'] = 686;\n    t['parenrighttp'] = 384;\n    t['parenrightex'] = 384;\n    t['parenrightbt'] = 384;\n    t['bracketrighttp'] = 384;\n    t['bracketrightex'] = 384;\n    t['bracketrightbt'] = 384;\n    t['bracerighttp'] = 494;\n    t['bracerightmid'] = 494;\n    t['bracerightbt'] = 494;\n    t['apple'] = 790;\n  });\n  t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 408;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 564;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 564;\n    t['equal'] = 564;\n    t['greater'] = 564;\n    t['question'] = 444;\n    t['at'] = 921;\n    t['A'] = 722;\n    t['B'] = 667;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 611;\n    t['F'] = 556;\n    t['G'] = 722;\n    t['H'] = 722;\n    t['I'] = 333;\n    t['J'] = 389;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 889;\n    t['N'] = 722;\n    t['O'] = 722;\n    t['P'] = 556;\n    t['Q'] = 722;\n    t['R'] = 667;\n    t['S'] = 556;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 722;\n    t['W'] = 944;\n    t['X'] = 722;\n    t['Y'] = 722;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 469;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 444;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 500;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 500;\n    t['l'] = 278;\n    t['m'] = 778;\n    t['n'] = 500;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 333;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 500;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 444;\n    t['braceleft'] = 480;\n    t['bar'] = 200;\n    t['braceright'] = 480;\n    t['asciitilde'] = 541;\n    t['exclamdown'] = 333;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 180;\n    t['quotedblleft'] = 444;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 453;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 444;\n    t['quotedblright'] = 444;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 444;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 889;\n    t['ordfeminine'] = 276;\n    t['Lslash'] = 611;\n    t['Oslash'] = 722;\n    t['OE'] = 889;\n    t['ordmasculine'] = 310;\n    t['ae'] = 667;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 333;\n    t['eacute'] = 444;\n    t['abreve'] = 444;\n    t['uhungarumlaut'] = 500;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 722;\n    t['divide'] = 564;\n    t['Yacute'] = 722;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 444;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 444;\n    t['Uacute'] = 722;\n    t['uogonek'] = 500;\n    t['Edieresis'] = 611;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 760;\n    t['Emacron'] = 611;\n    t['ccaron'] = 444;\n    t['aring'] = 444;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 444;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 667;\n    t['atilde'] = 444;\n    t['Edotaccent'] = 611;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 667;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 500;\n    t['acircumflex'] = 444;\n    t['Amacron'] = 722;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 556;\n    t['Omacron'] = 722;\n    t['Racute'] = 667;\n    t['Sacute'] = 556;\n    t['dcaron'] = 588;\n    t['Umacron'] = 722;\n    t['uring'] = 500;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 564;\n    t['uacute'] = 500;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 611;\n    t['adieresis'] = 444;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 500;\n    t['umacron'] = 500;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 333;\n    t['plusminus'] = 564;\n    t['brokenbar'] = 200;\n    t['registered'] = 760;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 333;\n    t['summation'] = 600;\n    t['Egrave'] = 611;\n    t['racute'] = 333;\n    t['omacron'] = 500;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 326;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 444;\n    t['zacute'] = 444;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 444;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 500;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 611;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 344;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 980;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 333;\n    t['Imacron'] = 333;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 500;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 611;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 500;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 667;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 444;\n    t['Ecaron'] = 611;\n    t['Iogonek'] = 333;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 564;\n    t['Icircumflex'] = 333;\n    t['ncaron'] = 500;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 564;\n    t['odieresis'] = 500;\n    t['udieresis'] = 500;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 444;\n    t['ncommaaccent'] = 500;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 555;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 1000;\n    t['ampersand'] = 833;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 570;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 570;\n    t['equal'] = 570;\n    t['greater'] = 570;\n    t['question'] = 500;\n    t['at'] = 930;\n    t['A'] = 722;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 778;\n    t['I'] = 389;\n    t['J'] = 500;\n    t['K'] = 778;\n    t['L'] = 667;\n    t['M'] = 944;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 611;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 556;\n    t['T'] = 667;\n    t['U'] = 722;\n    t['V'] = 722;\n    t['W'] = 1000;\n    t['X'] = 722;\n    t['Y'] = 722;\n    t['Z'] = 667;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 581;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 556;\n    t['c'] = 444;\n    t['d'] = 556;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 556;\n    t['i'] = 278;\n    t['j'] = 333;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 500;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 444;\n    t['s'] = 389;\n    t['t'] = 333;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 444;\n    t['braceleft'] = 394;\n    t['bar'] = 220;\n    t['braceright'] = 394;\n    t['asciitilde'] = 520;\n    t['exclamdown'] = 333;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 278;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 540;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 300;\n    t['Lslash'] = 667;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 330;\n    t['ae'] = 722;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 556;\n    t['Idieresis'] = 389;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 722;\n    t['divide'] = 570;\n    t['Yacute'] = 722;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 747;\n    t['Emacron'] = 667;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 667;\n    t['Cacute'] = 722;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 722;\n    t['rcaron'] = 444;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 667;\n    t['Thorn'] = 611;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 556;\n    t['dcaron'] = 672;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 570;\n    t['uacute'] = 556;\n    t['Tcaron'] = 667;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 389;\n    t['plusminus'] = 570;\n    t['brokenbar'] = 220;\n    t['registered'] = 747;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 389;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 444;\n    t['omacron'] = 500;\n    t['Zacute'] = 667;\n    t['Zcaron'] = 667;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 416;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 444;\n    t['zacute'] = 444;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 394;\n    t['Kcommaaccent'] = 778;\n    t['Lacute'] = 667;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 389;\n    t['Imacron'] = 389;\n    t['Lcaron'] = 667;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 444;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 667;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 444;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 389;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 570;\n    t['Icircumflex'] = 389;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 570;\n    t['odieresis'] = 500;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 444;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 389;\n    t['quotedbl'] = 555;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 570;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 570;\n    t['equal'] = 570;\n    t['greater'] = 570;\n    t['question'] = 500;\n    t['at'] = 832;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 667;\n    t['G'] = 722;\n    t['H'] = 778;\n    t['I'] = 389;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 611;\n    t['M'] = 889;\n    t['N'] = 722;\n    t['O'] = 722;\n    t['P'] = 611;\n    t['Q'] = 722;\n    t['R'] = 667;\n    t['S'] = 556;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 889;\n    t['X'] = 667;\n    t['Y'] = 611;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 570;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 556;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 500;\n    t['l'] = 278;\n    t['m'] = 778;\n    t['n'] = 556;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 389;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 444;\n    t['w'] = 667;\n    t['x'] = 500;\n    t['y'] = 444;\n    t['z'] = 389;\n    t['braceleft'] = 348;\n    t['bar'] = 220;\n    t['braceright'] = 348;\n    t['asciitilde'] = 570;\n    t['exclamdown'] = 389;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 278;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 500;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 944;\n    t['ordfeminine'] = 266;\n    t['Lslash'] = 611;\n    t['Oslash'] = 722;\n    t['OE'] = 944;\n    t['ordmasculine'] = 300;\n    t['ae'] = 722;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 389;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 611;\n    t['divide'] = 570;\n    t['Yacute'] = 611;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 444;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 747;\n    t['Emacron'] = 667;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 667;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 667;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 667;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 611;\n    t['Omacron'] = 722;\n    t['Racute'] = 667;\n    t['Sacute'] = 556;\n    t['dcaron'] = 608;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 570;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 444;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 389;\n    t['plusminus'] = 570;\n    t['brokenbar'] = 220;\n    t['registered'] = 747;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 389;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 500;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 366;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 444;\n    t['zacute'] = 389;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 576;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 382;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 389;\n    t['Imacron'] = 389;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 556;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 667;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 389;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 389;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 606;\n    t['Icircumflex'] = 389;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 606;\n    t['odieresis'] = 500;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 389;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 420;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 675;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 675;\n    t['equal'] = 675;\n    t['greater'] = 675;\n    t['question'] = 500;\n    t['at'] = 920;\n    t['A'] = 611;\n    t['B'] = 611;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 611;\n    t['F'] = 611;\n    t['G'] = 722;\n    t['H'] = 722;\n    t['I'] = 333;\n    t['J'] = 444;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 667;\n    t['O'] = 722;\n    t['P'] = 611;\n    t['Q'] = 722;\n    t['R'] = 611;\n    t['S'] = 500;\n    t['T'] = 556;\n    t['U'] = 722;\n    t['V'] = 611;\n    t['W'] = 833;\n    t['X'] = 611;\n    t['Y'] = 556;\n    t['Z'] = 556;\n    t['bracketleft'] = 389;\n    t['backslash'] = 278;\n    t['bracketright'] = 389;\n    t['asciicircum'] = 422;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 278;\n    t['g'] = 500;\n    t['h'] = 500;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 444;\n    t['l'] = 278;\n    t['m'] = 722;\n    t['n'] = 500;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 389;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 500;\n    t['v'] = 444;\n    t['w'] = 667;\n    t['x'] = 444;\n    t['y'] = 444;\n    t['z'] = 389;\n    t['braceleft'] = 400;\n    t['bar'] = 275;\n    t['braceright'] = 400;\n    t['asciitilde'] = 541;\n    t['exclamdown'] = 389;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 214;\n    t['quotedblleft'] = 556;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 523;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 556;\n    t['quotedblright'] = 556;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 889;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 889;\n    t['AE'] = 889;\n    t['ordfeminine'] = 276;\n    t['Lslash'] = 556;\n    t['Oslash'] = 722;\n    t['OE'] = 944;\n    t['ordmasculine'] = 310;\n    t['ae'] = 667;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 667;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 333;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 500;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 556;\n    t['divide'] = 675;\n    t['Yacute'] = 556;\n    t['Acircumflex'] = 611;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 444;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 500;\n    t['Edieresis'] = 611;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 760;\n    t['Emacron'] = 611;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 667;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 556;\n    t['Cacute'] = 667;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 611;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 611;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 500;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 611;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 556;\n    t['Thorn'] = 611;\n    t['Omacron'] = 722;\n    t['Racute'] = 611;\n    t['Sacute'] = 500;\n    t['dcaron'] = 544;\n    t['Umacron'] = 722;\n    t['uring'] = 500;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 611;\n    t['Abreve'] = 611;\n    t['multiply'] = 675;\n    t['uacute'] = 500;\n    t['Tcaron'] = 556;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 444;\n    t['Nacute'] = 667;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 611;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 500;\n    t['umacron'] = 500;\n    t['Ncaron'] = 667;\n    t['Iacute'] = 333;\n    t['plusminus'] = 675;\n    t['brokenbar'] = 275;\n    t['registered'] = 760;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 333;\n    t['summation'] = 600;\n    t['Egrave'] = 611;\n    t['racute'] = 389;\n    t['omacron'] = 500;\n    t['Zacute'] = 556;\n    t['Zcaron'] = 556;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 300;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 611;\n    t['Adieresis'] = 611;\n    t['egrave'] = 444;\n    t['zacute'] = 389;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 500;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 611;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 500;\n    t['lcaron'] = 300;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 980;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 333;\n    t['Imacron'] = 333;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 500;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 611;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 500;\n    t['Scommaaccent'] = 500;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 500;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 667;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 611;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 611;\n    t['Aogonek'] = 611;\n    t['Aring'] = 611;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 389;\n    t['Ecaron'] = 611;\n    t['Iogonek'] = 333;\n    t['kcommaaccent'] = 444;\n    t['minus'] = 675;\n    t['Icircumflex'] = 333;\n    t['ncaron'] = 500;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 675;\n    t['odieresis'] = 500;\n    t['udieresis'] = 500;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 389;\n    t['ncommaaccent'] = 500;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['a1'] = 974;\n    t['a2'] = 961;\n    t['a202'] = 974;\n    t['a3'] = 980;\n    t['a4'] = 719;\n    t['a5'] = 789;\n    t['a119'] = 790;\n    t['a118'] = 791;\n    t['a117'] = 690;\n    t['a11'] = 960;\n    t['a12'] = 939;\n    t['a13'] = 549;\n    t['a14'] = 855;\n    t['a15'] = 911;\n    t['a16'] = 933;\n    t['a105'] = 911;\n    t['a17'] = 945;\n    t['a18'] = 974;\n    t['a19'] = 755;\n    t['a20'] = 846;\n    t['a21'] = 762;\n    t['a22'] = 761;\n    t['a23'] = 571;\n    t['a24'] = 677;\n    t['a25'] = 763;\n    t['a26'] = 760;\n    t['a27'] = 759;\n    t['a28'] = 754;\n    t['a6'] = 494;\n    t['a7'] = 552;\n    t['a8'] = 537;\n    t['a9'] = 577;\n    t['a10'] = 692;\n    t['a29'] = 786;\n    t['a30'] = 788;\n    t['a31'] = 788;\n    t['a32'] = 790;\n    t['a33'] = 793;\n    t['a34'] = 794;\n    t['a35'] = 816;\n    t['a36'] = 823;\n    t['a37'] = 789;\n    t['a38'] = 841;\n    t['a39'] = 823;\n    t['a40'] = 833;\n    t['a41'] = 816;\n    t['a42'] = 831;\n    t['a43'] = 923;\n    t['a44'] = 744;\n    t['a45'] = 723;\n    t['a46'] = 749;\n    t['a47'] = 790;\n    t['a48'] = 792;\n    t['a49'] = 695;\n    t['a50'] = 776;\n    t['a51'] = 768;\n    t['a52'] = 792;\n    t['a53'] = 759;\n    t['a54'] = 707;\n    t['a55'] = 708;\n    t['a56'] = 682;\n    t['a57'] = 701;\n    t['a58'] = 826;\n    t['a59'] = 815;\n    t['a60'] = 789;\n    t['a61'] = 789;\n    t['a62'] = 707;\n    t['a63'] = 687;\n    t['a64'] = 696;\n    t['a65'] = 689;\n    t['a66'] = 786;\n    t['a67'] = 787;\n    t['a68'] = 713;\n    t['a69'] = 791;\n    t['a70'] = 785;\n    t['a71'] = 791;\n    t['a72'] = 873;\n    t['a73'] = 761;\n    t['a74'] = 762;\n    t['a203'] = 762;\n    t['a75'] = 759;\n    t['a204'] = 759;\n    t['a76'] = 892;\n    t['a77'] = 892;\n    t['a78'] = 788;\n    t['a79'] = 784;\n    t['a81'] = 438;\n    t['a82'] = 138;\n    t['a83'] = 277;\n    t['a84'] = 415;\n    t['a97'] = 392;\n    t['a98'] = 392;\n    t['a99'] = 668;\n    t['a100'] = 668;\n    t['a89'] = 390;\n    t['a90'] = 390;\n    t['a93'] = 317;\n    t['a94'] = 317;\n    t['a91'] = 276;\n    t['a92'] = 276;\n    t['a205'] = 509;\n    t['a85'] = 509;\n    t['a206'] = 410;\n    t['a86'] = 410;\n    t['a87'] = 234;\n    t['a88'] = 234;\n    t['a95'] = 334;\n    t['a96'] = 334;\n    t['a101'] = 732;\n    t['a102'] = 544;\n    t['a103'] = 544;\n    t['a104'] = 910;\n    t['a106'] = 667;\n    t['a107'] = 760;\n    t['a108'] = 760;\n    t['a112'] = 776;\n    t['a111'] = 595;\n    t['a110'] = 694;\n    t['a109'] = 626;\n    t['a120'] = 788;\n    t['a121'] = 788;\n    t['a122'] = 788;\n    t['a123'] = 788;\n    t['a124'] = 788;\n    t['a125'] = 788;\n    t['a126'] = 788;\n    t['a127'] = 788;\n    t['a128'] = 788;\n    t['a129'] = 788;\n    t['a130'] = 788;\n    t['a131'] = 788;\n    t['a132'] = 788;\n    t['a133'] = 788;\n    t['a134'] = 788;\n    t['a135'] = 788;\n    t['a136'] = 788;\n    t['a137'] = 788;\n    t['a138'] = 788;\n    t['a139'] = 788;\n    t['a140'] = 788;\n    t['a141'] = 788;\n    t['a142'] = 788;\n    t['a143'] = 788;\n    t['a144'] = 788;\n    t['a145'] = 788;\n    t['a146'] = 788;\n    t['a147'] = 788;\n    t['a148'] = 788;\n    t['a149'] = 788;\n    t['a150'] = 788;\n    t['a151'] = 788;\n    t['a152'] = 788;\n    t['a153'] = 788;\n    t['a154'] = 788;\n    t['a155'] = 788;\n    t['a156'] = 788;\n    t['a157'] = 788;\n    t['a158'] = 788;\n    t['a159'] = 788;\n    t['a160'] = 894;\n    t['a161'] = 838;\n    t['a163'] = 1016;\n    t['a164'] = 458;\n    t['a196'] = 748;\n    t['a165'] = 924;\n    t['a192'] = 748;\n    t['a166'] = 918;\n    t['a167'] = 927;\n    t['a168'] = 928;\n    t['a169'] = 928;\n    t['a170'] = 834;\n    t['a171'] = 873;\n    t['a172'] = 828;\n    t['a173'] = 924;\n    t['a162'] = 924;\n    t['a174'] = 917;\n    t['a175'] = 930;\n    t['a176'] = 931;\n    t['a177'] = 463;\n    t['a178'] = 883;\n    t['a179'] = 836;\n    t['a193'] = 836;\n    t['a180'] = 867;\n    t['a199'] = 867;\n    t['a181'] = 696;\n    t['a200'] = 696;\n    t['a182'] = 874;\n    t['a201'] = 874;\n    t['a183'] = 760;\n    t['a184'] = 946;\n    t['a197'] = 771;\n    t['a185'] = 865;\n    t['a194'] = 771;\n    t['a198'] = 888;\n    t['a186'] = 967;\n    t['a195'] = 888;\n    t['a187'] = 831;\n    t['a188'] = 873;\n    t['a189'] = 927;\n    t['a190'] = 970;\n    t['a191'] = 918;\n  });\n});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ps_parser = __w_pdfjs_require__(186);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar IsEvalSupportedCached = {\n  get value() {\n    return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n  }\n\n};\n\nvar PDFFunctionFactory =\n/*#__PURE__*/\nfunction () {\n  function PDFFunctionFactory(_ref) {\n    var xref = _ref.xref,\n        _ref$isEvalSupported = _ref.isEvalSupported,\n        isEvalSupported = _ref$isEvalSupported === void 0 ? true : _ref$isEvalSupported;\n\n    _classCallCheck(this, PDFFunctionFactory);\n\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  _createClass(PDFFunctionFactory, [{\n    key: \"create\",\n    value: function create(fn) {\n      return PDFFunction.parse({\n        xref: this.xref,\n        isEvalSupported: this.isEvalSupported,\n        fn: fn\n      });\n    }\n  }, {\n    key: \"createFromArray\",\n    value: function createFromArray(fnObj) {\n      return PDFFunction.parseArray({\n        xref: this.xref,\n        isEvalSupported: this.isEvalSupported,\n        fnObj: fnObj\n      });\n    }\n  }]);\n\n  return PDFFunctionFactory;\n}();\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n\n  var length = arr.length;\n\n  for (var i = 0; i < length; i++) {\n    if (typeof arr[i] !== 'number') {\n      var result = new Array(length);\n\n      for (var _i = 0; _i < length; _i++) {\n        result[_i] = +arr[_i];\n      }\n\n      return result;\n    }\n  }\n\n  return arr;\n}\n\nvar PDFFunction = function PDFFunctionClosure() {\n  var CONSTRUCT_SAMPLED = 0;\n  var CONSTRUCT_INTERPOLATED = 2;\n  var CONSTRUCT_STICHED = 3;\n  var CONSTRUCT_POSTSCRIPT = 4;\n  return {\n    getSampleArray: function getSampleArray(size, outputSize, bps, stream) {\n      var i, ii;\n      var length = 1;\n\n      for (i = 0, ii = size.length; i < ii; i++) {\n        length *= size[i];\n      }\n\n      length *= outputSize;\n      var array = new Array(length);\n      var codeSize = 0;\n      var codeBuf = 0;\n      var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n      var strBytes = stream.getBytes((length * bps + 7) / 8);\n      var strIdx = 0;\n\n      for (i = 0; i < length; i++) {\n        while (codeSize < bps) {\n          codeBuf <<= 8;\n          codeBuf |= strBytes[strIdx++];\n          codeSize += 8;\n        }\n\n        codeSize -= bps;\n        array[i] = (codeBuf >> codeSize) * sampleMul;\n        codeBuf &= (1 << codeSize) - 1;\n      }\n\n      return array;\n    },\n    getIR: function getIR(_ref2) {\n      var xref = _ref2.xref,\n          isEvalSupported = _ref2.isEvalSupported,\n          fn = _ref2.fn;\n      var dict = fn.dict;\n\n      if (!dict) {\n        dict = fn;\n      }\n\n      var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n      var typeNum = dict.get('FunctionType');\n      var typeFn = types[typeNum];\n\n      if (!typeFn) {\n        throw new _util.FormatError('Unknown type of function');\n      }\n\n      return typeFn.call(this, {\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        fn: fn,\n        dict: dict\n      });\n    },\n    fromIR: function fromIR(_ref3) {\n      var xref = _ref3.xref,\n          isEvalSupported = _ref3.isEvalSupported,\n          IR = _ref3.IR;\n      var type = IR[0];\n\n      switch (type) {\n        case CONSTRUCT_SAMPLED:\n          return this.constructSampledFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        case CONSTRUCT_INTERPOLATED:\n          return this.constructInterpolatedFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        case CONSTRUCT_STICHED:\n          return this.constructStichedFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        default:\n          return this.constructPostScriptFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n      }\n    },\n    parse: function parse(_ref4) {\n      var xref = _ref4.xref,\n          isEvalSupported = _ref4.isEvalSupported,\n          fn = _ref4.fn;\n      var IR = this.getIR({\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        fn: fn\n      });\n      return this.fromIR({\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        IR: IR\n      });\n    },\n    parseArray: function parseArray(_ref5) {\n      var xref = _ref5.xref,\n          isEvalSupported = _ref5.isEvalSupported,\n          fnObj = _ref5.fnObj;\n\n      if (!Array.isArray(fnObj)) {\n        return this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: fnObj\n        });\n      }\n\n      var fnArray = [];\n\n      for (var j = 0, jj = fnObj.length; j < jj; j++) {\n        fnArray.push(this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: xref.fetchIfRef(fnObj[j])\n        }));\n      }\n\n      return function (src, srcOffset, dest, destOffset) {\n        for (var i = 0, ii = fnArray.length; i < ii; i++) {\n          fnArray[i](src, srcOffset, dest, destOffset + i);\n        }\n      };\n    },\n    constructSampled: function constructSampled(_ref6) {\n      var xref = _ref6.xref,\n          isEvalSupported = _ref6.isEvalSupported,\n          fn = _ref6.fn,\n          dict = _ref6.dict;\n\n      function toMultiArray(arr) {\n        var inputLength = arr.length;\n        var out = [];\n        var index = 0;\n\n        for (var i = 0; i < inputLength; i += 2) {\n          out[index] = [arr[i], arr[i + 1]];\n          ++index;\n        }\n\n        return out;\n      }\n\n      var domain = toNumberArray(dict.getArray('Domain'));\n      var range = toNumberArray(dict.getArray('Range'));\n\n      if (!domain || !range) {\n        throw new _util.FormatError('No domain or range');\n      }\n\n      var inputSize = domain.length / 2;\n      var outputSize = range.length / 2;\n      domain = toMultiArray(domain);\n      range = toMultiArray(range);\n      var size = toNumberArray(dict.getArray('Size'));\n      var bps = dict.get('BitsPerSample');\n      var order = dict.get('Order') || 1;\n\n      if (order !== 1) {\n        (0, _util.info)('No support for cubic spline interpolation: ' + order);\n      }\n\n      var encode = toNumberArray(dict.getArray('Encode'));\n\n      if (!encode) {\n        encode = [];\n\n        for (var i = 0; i < inputSize; ++i) {\n          encode.push([0, size[i] - 1]);\n        }\n      } else {\n        encode = toMultiArray(encode);\n      }\n\n      var decode = toNumberArray(dict.getArray('Decode'));\n\n      if (!decode) {\n        decode = range;\n      } else {\n        decode = toMultiArray(decode);\n      }\n\n      var samples = this.getSampleArray(size, outputSize, bps, fn);\n      return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range];\n    },\n    constructSampledFromIR: function constructSampledFromIR(_ref7) {\n      var xref = _ref7.xref,\n          isEvalSupported = _ref7.isEvalSupported,\n          IR = _ref7.IR;\n\n      function interpolate(x, xmin, xmax, ymin, ymax) {\n        return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n      }\n\n      return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n        var m = IR[1];\n        var domain = IR[2];\n        var encode = IR[3];\n        var decode = IR[4];\n        var samples = IR[5];\n        var size = IR[6];\n        var n = IR[7];\n        var range = IR[9];\n        var cubeVertices = 1 << m;\n        var cubeN = new Float64Array(cubeVertices);\n        var cubeVertex = new Uint32Array(cubeVertices);\n        var i, j;\n\n        for (j = 0; j < cubeVertices; j++) {\n          cubeN[j] = 1;\n        }\n\n        var k = n,\n            pos = 1;\n\n        for (i = 0; i < m; ++i) {\n          var domain_2i = domain[i][0];\n          var domain_2i_1 = domain[i][1];\n          var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n          var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n          var size_i = size[i];\n          e = Math.min(Math.max(e, 0), size_i - 1);\n          var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n          var n0 = e0 + 1 - e;\n          var n1 = e - e0;\n          var offset0 = e0 * k;\n          var offset1 = offset0 + k;\n\n          for (j = 0; j < cubeVertices; j++) {\n            if (j & pos) {\n              cubeN[j] *= n1;\n              cubeVertex[j] += offset1;\n            } else {\n              cubeN[j] *= n0;\n              cubeVertex[j] += offset0;\n            }\n          }\n\n          k *= size_i;\n          pos <<= 1;\n        }\n\n        for (j = 0; j < n; ++j) {\n          var rj = 0;\n\n          for (i = 0; i < cubeVertices; i++) {\n            rj += samples[cubeVertex[i] + j] * cubeN[i];\n          }\n\n          rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n          dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n        }\n      };\n    },\n    constructInterpolated: function constructInterpolated(_ref8) {\n      var xref = _ref8.xref,\n          isEvalSupported = _ref8.isEvalSupported,\n          fn = _ref8.fn,\n          dict = _ref8.dict;\n      var c0 = toNumberArray(dict.getArray('C0')) || [0];\n      var c1 = toNumberArray(dict.getArray('C1')) || [1];\n      var n = dict.get('N');\n      var length = c0.length;\n      var diff = [];\n\n      for (var i = 0; i < length; ++i) {\n        diff.push(c1[i] - c0[i]);\n      }\n\n      return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n    },\n    constructInterpolatedFromIR: function constructInterpolatedFromIR(_ref9) {\n      var xref = _ref9.xref,\n          isEvalSupported = _ref9.isEvalSupported,\n          IR = _ref9.IR;\n      var c0 = IR[1];\n      var diff = IR[2];\n      var n = IR[3];\n      var length = diff.length;\n      return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n        var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n);\n\n        for (var j = 0; j < length; ++j) {\n          dest[destOffset + j] = c0[j] + x * diff[j];\n        }\n      };\n    },\n    constructStiched: function constructStiched(_ref10) {\n      var xref = _ref10.xref,\n          isEvalSupported = _ref10.isEvalSupported,\n          fn = _ref10.fn,\n          dict = _ref10.dict;\n      var domain = toNumberArray(dict.getArray('Domain'));\n\n      if (!domain) {\n        throw new _util.FormatError('No domain');\n      }\n\n      var inputSize = domain.length / 2;\n\n      if (inputSize !== 1) {\n        throw new _util.FormatError('Bad domain for stiched function');\n      }\n\n      var fnRefs = dict.get('Functions');\n      var fns = [];\n\n      for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n        fns.push(this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: xref.fetchIfRef(fnRefs[i])\n        }));\n      }\n\n      var bounds = toNumberArray(dict.getArray('Bounds'));\n      var encode = toNumberArray(dict.getArray('Encode'));\n      return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n    },\n    constructStichedFromIR: function constructStichedFromIR(_ref11) {\n      var xref = _ref11.xref,\n          isEvalSupported = _ref11.isEvalSupported,\n          IR = _ref11.IR;\n      var domain = IR[1];\n      var bounds = IR[2];\n      var encode = IR[3];\n      var fns = IR[4];\n      var tmpBuf = new Float32Array(1);\n      return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n        var clip = function constructStichedFromIRClip(v, min, max) {\n          if (v > max) {\n            v = max;\n          } else if (v < min) {\n            v = min;\n          }\n\n          return v;\n        };\n\n        var v = clip(src[srcOffset], domain[0], domain[1]);\n\n        for (var i = 0, ii = bounds.length; i < ii; ++i) {\n          if (v < bounds[i]) {\n            break;\n          }\n        }\n\n        var dmin = domain[0];\n\n        if (i > 0) {\n          dmin = bounds[i - 1];\n        }\n\n        var dmax = domain[1];\n\n        if (i < bounds.length) {\n          dmax = bounds[i];\n        }\n\n        var rmin = encode[2 * i];\n        var rmax = encode[2 * i + 1];\n        tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n        fns[i](tmpBuf, 0, dest, destOffset);\n      };\n    },\n    constructPostScript: function constructPostScript(_ref12) {\n      var xref = _ref12.xref,\n          isEvalSupported = _ref12.isEvalSupported,\n          fn = _ref12.fn,\n          dict = _ref12.dict;\n      var domain = toNumberArray(dict.getArray('Domain'));\n      var range = toNumberArray(dict.getArray('Range'));\n\n      if (!domain) {\n        throw new _util.FormatError('No domain.');\n      }\n\n      if (!range) {\n        throw new _util.FormatError('No range.');\n      }\n\n      var lexer = new _ps_parser.PostScriptLexer(fn);\n      var parser = new _ps_parser.PostScriptParser(lexer);\n      var code = parser.parse();\n      return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n    },\n    constructPostScriptFromIR: function constructPostScriptFromIR(_ref13) {\n      var xref = _ref13.xref,\n          isEvalSupported = _ref13.isEvalSupported,\n          IR = _ref13.IR;\n      var domain = IR[1];\n      var range = IR[2];\n      var code = IR[3];\n\n      if (isEvalSupported && IsEvalSupportedCached.value) {\n        var compiled = new PostScriptCompiler().compile(code, domain, range);\n\n        if (compiled) {\n          return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled);\n        }\n      }\n\n      (0, _util.info)('Unable to compile PS function');\n      var numOutputs = range.length >> 1;\n      var numInputs = domain.length >> 1;\n      var evaluator = new PostScriptEvaluator(code);\n      var cache = Object.create(null);\n      var MAX_CACHE_SIZE = 2048 * 4;\n      var cache_available = MAX_CACHE_SIZE;\n      var tmpBuf = new Float32Array(numInputs);\n      return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n        var i, value;\n        var key = '';\n        var input = tmpBuf;\n\n        for (i = 0; i < numInputs; i++) {\n          value = src[srcOffset + i];\n          input[i] = value;\n          key += value + '_';\n        }\n\n        var cachedValue = cache[key];\n\n        if (cachedValue !== undefined) {\n          dest.set(cachedValue, destOffset);\n          return;\n        }\n\n        var output = new Float32Array(numOutputs);\n        var stack = evaluator.execute(input);\n        var stackIndex = stack.length - numOutputs;\n\n        for (i = 0; i < numOutputs; i++) {\n          value = stack[stackIndex + i];\n          var bound = range[i * 2];\n\n          if (value < bound) {\n            value = bound;\n          } else {\n            bound = range[i * 2 + 1];\n\n            if (value > bound) {\n              value = bound;\n            }\n          }\n\n          output[i] = value;\n        }\n\n        if (cache_available > 0) {\n          cache_available--;\n          cache[key] = output;\n        }\n\n        dest.set(output, destOffset);\n      };\n    }\n  };\n}();\n\nfunction isPDFFunction(v) {\n  var fnDict;\n\n  if (_typeof(v) !== 'object') {\n    return false;\n  } else if ((0, _primitives.isDict)(v)) {\n    fnDict = v;\n  } else if ((0, _primitives.isStream)(v)) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n\n  return fnDict.has('FunctionType');\n}\n\nvar PostScriptStack = function PostScriptStackClosure() {\n  var MAX_STACK_SIZE = 100;\n\n  function PostScriptStack(initialStack) {\n    this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n  }\n\n  PostScriptStack.prototype = {\n    push: function PostScriptStack_push(value) {\n      if (this.stack.length >= MAX_STACK_SIZE) {\n        throw new Error('PostScript function stack overflow.');\n      }\n\n      this.stack.push(value);\n    },\n    pop: function PostScriptStack_pop() {\n      if (this.stack.length <= 0) {\n        throw new Error('PostScript function stack underflow.');\n      }\n\n      return this.stack.pop();\n    },\n    copy: function PostScriptStack_copy(n) {\n      if (this.stack.length + n >= MAX_STACK_SIZE) {\n        throw new Error('PostScript function stack overflow.');\n      }\n\n      var stack = this.stack;\n\n      for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n        stack.push(stack[i]);\n      }\n    },\n    index: function PostScriptStack_index(n) {\n      this.push(this.stack[this.stack.length - n - 1]);\n    },\n    roll: function PostScriptStack_roll(n, p) {\n      var stack = this.stack;\n      var l = stack.length - n;\n      var r = stack.length - 1,\n          c = l + (p - Math.floor(p / n) * n),\n          i,\n          j,\n          t;\n\n      for (i = l, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n\n      for (i = l, j = c - 1; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n\n      for (i = c, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n    }\n  };\n  return PostScriptStack;\n}();\n\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n  function PostScriptEvaluator(operators) {\n    this.operators = operators;\n  }\n\n  PostScriptEvaluator.prototype = {\n    execute: function PostScriptEvaluator_execute(initialStack) {\n      var stack = new PostScriptStack(initialStack);\n      var counter = 0;\n      var operators = this.operators;\n      var length = operators.length;\n      var operator, a, b;\n\n      while (counter < length) {\n        operator = operators[counter++];\n\n        if (typeof operator === 'number') {\n          stack.push(operator);\n          continue;\n        }\n\n        switch (operator) {\n          case 'jz':\n            b = stack.pop();\n            a = stack.pop();\n\n            if (!a) {\n              counter = b;\n            }\n\n            break;\n\n          case 'j':\n            a = stack.pop();\n            counter = a;\n            break;\n\n          case 'abs':\n            a = stack.pop();\n            stack.push(Math.abs(a));\n            break;\n\n          case 'add':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a + b);\n            break;\n\n          case 'and':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a && b);\n            } else {\n              stack.push(a & b);\n            }\n\n            break;\n\n          case 'atan':\n            a = stack.pop();\n            stack.push(Math.atan(a));\n            break;\n\n          case 'bitshift':\n            b = stack.pop();\n            a = stack.pop();\n\n            if (a > 0) {\n              stack.push(a << b);\n            } else {\n              stack.push(a >> b);\n            }\n\n            break;\n\n          case 'ceiling':\n            a = stack.pop();\n            stack.push(Math.ceil(a));\n            break;\n\n          case 'copy':\n            a = stack.pop();\n            stack.copy(a);\n            break;\n\n          case 'cos':\n            a = stack.pop();\n            stack.push(Math.cos(a));\n            break;\n\n          case 'cvi':\n            a = stack.pop() | 0;\n            stack.push(a);\n            break;\n\n          case 'cvr':\n            break;\n\n          case 'div':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b);\n            break;\n\n          case 'dup':\n            stack.copy(1);\n            break;\n\n          case 'eq':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a === b);\n            break;\n\n          case 'exch':\n            stack.roll(2, 1);\n            break;\n\n          case 'exp':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(Math.pow(a, b));\n            break;\n\n          case 'false':\n            stack.push(false);\n            break;\n\n          case 'floor':\n            a = stack.pop();\n            stack.push(Math.floor(a));\n            break;\n\n          case 'ge':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a >= b);\n            break;\n\n          case 'gt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a > b);\n            break;\n\n          case 'idiv':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b | 0);\n            break;\n\n          case 'index':\n            a = stack.pop();\n            stack.index(a);\n            break;\n\n          case 'le':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a <= b);\n            break;\n\n          case 'ln':\n            a = stack.pop();\n            stack.push(Math.log(a));\n            break;\n\n          case 'log':\n            a = stack.pop();\n            stack.push(Math.log(a) / Math.LN10);\n            break;\n\n          case 'lt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a < b);\n            break;\n\n          case 'mod':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a % b);\n            break;\n\n          case 'mul':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a * b);\n            break;\n\n          case 'ne':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a !== b);\n            break;\n\n          case 'neg':\n            a = stack.pop();\n            stack.push(-a);\n            break;\n\n          case 'not':\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a)) {\n              stack.push(!a);\n            } else {\n              stack.push(~a);\n            }\n\n            break;\n\n          case 'or':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a || b);\n            } else {\n              stack.push(a | b);\n            }\n\n            break;\n\n          case 'pop':\n            stack.pop();\n            break;\n\n          case 'roll':\n            b = stack.pop();\n            a = stack.pop();\n            stack.roll(a, b);\n            break;\n\n          case 'round':\n            a = stack.pop();\n            stack.push(Math.round(a));\n            break;\n\n          case 'sin':\n            a = stack.pop();\n            stack.push(Math.sin(a));\n            break;\n\n          case 'sqrt':\n            a = stack.pop();\n            stack.push(Math.sqrt(a));\n            break;\n\n          case 'sub':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a - b);\n            break;\n\n          case 'true':\n            stack.push(true);\n            break;\n\n          case 'truncate':\n            a = stack.pop();\n            a = a < 0 ? Math.ceil(a) : Math.floor(a);\n            stack.push(a);\n            break;\n\n          case 'xor':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a !== b);\n            } else {\n              stack.push(a ^ b);\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(\"Unknown operator \".concat(operator));\n        }\n      }\n\n      return stack.stack;\n    }\n  };\n  return PostScriptEvaluator;\n}();\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n  function AstNode(type) {\n    this.type = type;\n  }\n\n  AstNode.prototype.visit = function (visitor) {\n    (0, _util.unreachable)('abstract method');\n  };\n\n  function AstArgument(index, min, max) {\n    AstNode.call(this, 'args');\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstArgument.prototype = Object.create(AstNode.prototype);\n\n  AstArgument.prototype.visit = function (visitor) {\n    visitor.visitArgument(this);\n  };\n\n  function AstLiteral(number) {\n    AstNode.call(this, 'literal');\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n\n  AstLiteral.prototype = Object.create(AstNode.prototype);\n\n  AstLiteral.prototype.visit = function (visitor) {\n    visitor.visitLiteral(this);\n  };\n\n  function AstBinaryOperation(op, arg1, arg2, min, max) {\n    AstNode.call(this, 'binary');\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n\n  AstBinaryOperation.prototype.visit = function (visitor) {\n    visitor.visitBinaryOperation(this);\n  };\n\n  function AstMin(arg, max) {\n    AstNode.call(this, 'max');\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n\n  AstMin.prototype = Object.create(AstNode.prototype);\n\n  AstMin.prototype.visit = function (visitor) {\n    visitor.visitMin(this);\n  };\n\n  function AstVariable(index, min, max) {\n    AstNode.call(this, 'var');\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstVariable.prototype = Object.create(AstNode.prototype);\n\n  AstVariable.prototype.visit = function (visitor) {\n    visitor.visitVariable(this);\n  };\n\n  function AstVariableDefinition(variable, arg) {\n    AstNode.call(this, 'definition');\n    this.variable = variable;\n    this.arg = arg;\n  }\n\n  AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n\n  AstVariableDefinition.prototype.visit = function (visitor) {\n    visitor.visitVariableDefinition(this);\n  };\n\n  function ExpressionBuilderVisitor() {\n    this.parts = [];\n  }\n\n  ExpressionBuilderVisitor.prototype = {\n    visitArgument: function visitArgument(arg) {\n      this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))');\n    },\n    visitVariable: function visitVariable(variable) {\n      this.parts.push('v', variable.index);\n    },\n    visitLiteral: function visitLiteral(literal) {\n      this.parts.push(literal.number);\n    },\n    visitBinaryOperation: function visitBinaryOperation(operation) {\n      this.parts.push('(');\n      operation.arg1.visit(this);\n      this.parts.push(' ', operation.op, ' ');\n      operation.arg2.visit(this);\n      this.parts.push(')');\n    },\n    visitVariableDefinition: function visitVariableDefinition(definition) {\n      this.parts.push('var ');\n      definition.variable.visit(this);\n      this.parts.push(' = ');\n      definition.arg.visit(this);\n      this.parts.push(';');\n    },\n    visitMin: function visitMin(max) {\n      this.parts.push('Math.min(');\n      max.arg.visit(this);\n      this.parts.push(', ', max.max, ')');\n    },\n    toString: function toString() {\n      return this.parts.join('');\n    }\n  };\n\n  function buildAddOperation(num1, num2) {\n    if (num2.type === 'literal' && num2.number === 0) {\n      return num1;\n    }\n\n    if (num1.type === 'literal' && num1.number === 0) {\n      return num2;\n    }\n\n    if (num2.type === 'literal' && num1.type === 'literal') {\n      return new AstLiteral(num1.number + num2.number);\n    }\n\n    return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max);\n  }\n\n  function buildMulOperation(num1, num2) {\n    if (num2.type === 'literal') {\n      if (num2.number === 0) {\n        return new AstLiteral(0);\n      } else if (num2.number === 1) {\n        return num1;\n      } else if (num1.type === 'literal') {\n        return new AstLiteral(num1.number * num2.number);\n      }\n    }\n\n    if (num1.type === 'literal') {\n      if (num1.number === 0) {\n        return new AstLiteral(0);\n      } else if (num1.number === 1) {\n        return num2;\n      }\n    }\n\n    var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n    var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n    return new AstBinaryOperation('*', num1, num2, min, max);\n  }\n\n  function buildSubOperation(num1, num2) {\n    if (num2.type === 'literal') {\n      if (num2.number === 0) {\n        return num1;\n      } else if (num1.type === 'literal') {\n        return new AstLiteral(num1.number - num2.number);\n      }\n    }\n\n    if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) {\n      return num2.arg2;\n    }\n\n    return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min);\n  }\n\n  function buildMinOperation(num1, max) {\n    if (num1.min >= max) {\n      return new AstLiteral(max);\n    } else if (num1.max <= max) {\n      return num1;\n    }\n\n    return new AstMin(num1, max);\n  }\n\n  function PostScriptCompiler() {}\n\n  PostScriptCompiler.prototype = {\n    compile: function PostScriptCompiler_compile(code, domain, range) {\n      var stack = [];\n      var i, ii;\n      var instructions = [];\n      var inputSize = domain.length >> 1,\n          outputSize = range.length >> 1;\n      var lastRegister = 0;\n      var n, j;\n      var num1, num2, ast1, ast2, tmpVar, item;\n\n      for (i = 0; i < inputSize; i++) {\n        stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n      }\n\n      for (i = 0, ii = code.length; i < ii; i++) {\n        item = code[i];\n\n        if (typeof item === 'number') {\n          stack.push(new AstLiteral(item));\n          continue;\n        }\n\n        switch (item) {\n          case 'add':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildAddOperation(num1, num2));\n            break;\n\n          case 'cvr':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            break;\n\n          case 'mul':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildMulOperation(num1, num2));\n            break;\n\n          case 'sub':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildSubOperation(num1, num2));\n            break;\n\n          case 'exch':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            ast1 = stack.pop();\n            ast2 = stack.pop();\n            stack.push(ast1, ast2);\n            break;\n\n          case 'pop':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            stack.pop();\n            break;\n\n          case 'index':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            num1 = stack.pop();\n\n            if (num1.type !== 'literal') {\n              return null;\n            }\n\n            n = num1.number;\n\n            if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n              return null;\n            }\n\n            ast1 = stack[stack.length - n - 1];\n\n            if (ast1.type === 'literal' || ast1.type === 'var') {\n              stack.push(ast1);\n              break;\n            }\n\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - n - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n\n          case 'dup':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) {\n              num1 = stack.pop();\n              stack.push(buildMinOperation(num1, code[i + 1]));\n              i += 6;\n              break;\n            }\n\n            ast1 = stack[stack.length - 1];\n\n            if (ast1.type === 'literal' || ast1.type === 'var') {\n              stack.push(ast1);\n              break;\n            }\n\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n\n          case 'roll':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n\n            if (num2.type !== 'literal' || num1.type !== 'literal') {\n              return null;\n            }\n\n            j = num2.number;\n            n = num1.number;\n\n            if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n              return null;\n            }\n\n            j = (j % n + n) % n;\n\n            if (j === 0) {\n              break;\n            }\n\n            Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n            break;\n\n          default:\n            return null;\n        }\n      }\n\n      if (stack.length !== outputSize) {\n        return null;\n      }\n\n      var result = [];\n      instructions.forEach(function (instruction) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        instruction.visit(statementBuilder);\n        result.push(statementBuilder.toString());\n      });\n      stack.forEach(function (expr, i) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        expr.visit(statementBuilder);\n        var min = range[i * 2],\n            max = range[i * 2 + 1];\n        var out = [statementBuilder.toString()];\n\n        if (min > expr.min) {\n          out.unshift('Math.max(', min, ', ');\n          out.push(')');\n        }\n\n        if (max < expr.max) {\n          out.unshift('Math.min(', max, ', ');\n          out.push(')');\n        }\n\n        out.unshift('dest[destOffset + ', i, '] = ');\n        out.push(';');\n        result.push(out.join(''));\n      });\n      return result.join('\\n');\n    }\n  };\n  return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PostScriptParser =\n/*#__PURE__*/\nfunction () {\n  function PostScriptParser(lexer) {\n    _classCallCheck(this, PostScriptParser);\n\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  _createClass(PostScriptParser, [{\n    key: \"nextToken\",\n    value: function nextToken() {\n      this.prev = this.token;\n      this.token = this.lexer.getToken();\n    }\n  }, {\n    key: \"accept\",\n    value: function accept(type) {\n      if (this.token.type === type) {\n        this.nextToken();\n        return true;\n      }\n\n      return false;\n    }\n  }, {\n    key: \"expect\",\n    value: function expect(type) {\n      if (this.accept(type)) {\n        return true;\n      }\n\n      throw new _util.FormatError(\"Unexpected symbol: found \".concat(this.token.type, \" expected \").concat(type, \".\"));\n    }\n  }, {\n    key: \"parse\",\n    value: function parse() {\n      this.nextToken();\n      this.expect(PostScriptTokenTypes.LBRACE);\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      return this.operators;\n    }\n  }, {\n    key: \"parseBlock\",\n    value: function parseBlock() {\n      while (true) {\n        if (this.accept(PostScriptTokenTypes.NUMBER)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n          this.parseCondition();\n        } else {\n          return;\n        }\n      }\n    }\n  }, {\n    key: \"parseCondition\",\n    value: function parseCondition() {\n      var conditionLocation = this.operators.length;\n      this.operators.push(null, null);\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n\n      if (this.accept(PostScriptTokenTypes.IF)) {\n        this.operators[conditionLocation] = this.operators.length;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        var jumpLocation = this.operators.length;\n        this.operators.push(null, null);\n        var endOfTrue = this.operators.length;\n        this.parseBlock();\n        this.expect(PostScriptTokenTypes.RBRACE);\n        this.expect(PostScriptTokenTypes.IFELSE);\n        this.operators[jumpLocation] = this.operators.length;\n        this.operators[jumpLocation + 1] = 'j';\n        this.operators[conditionLocation] = endOfTrue;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else {\n        throw new _util.FormatError('PS Function: error parsing conditional.');\n      }\n    }\n  }]);\n\n  return PostScriptParser;\n}();\n\nexports.PostScriptParser = PostScriptParser;\nvar PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5\n};\n\nvar PostScriptToken = function PostScriptTokenClosure() {\n  var opCache = Object.create(null);\n\n  var PostScriptToken =\n  /*#__PURE__*/\n  function () {\n    function PostScriptToken(type, value) {\n      _classCallCheck(this, PostScriptToken);\n\n      this.type = type;\n      this.value = value;\n    }\n\n    _createClass(PostScriptToken, null, [{\n      key: \"getOperator\",\n      value: function getOperator(op) {\n        var opValue = opCache[op];\n\n        if (opValue) {\n          return opValue;\n        }\n\n        return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n      }\n    }, {\n      key: \"LBRACE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'));\n      }\n    }, {\n      key: \"RBRACE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'));\n      }\n    }, {\n      key: \"IF\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF'));\n      }\n    }, {\n      key: \"IFELSE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'));\n      }\n    }]);\n\n    return PostScriptToken;\n  }();\n\n  return PostScriptToken;\n}();\n\nvar PostScriptLexer =\n/*#__PURE__*/\nfunction () {\n  function PostScriptLexer(stream) {\n    _classCallCheck(this, PostScriptLexer);\n\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n  }\n\n  _createClass(PostScriptLexer, [{\n    key: \"nextChar\",\n    value: function nextChar() {\n      return this.currentChar = this.stream.getByte();\n    }\n  }, {\n    key: \"getToken\",\n    value: function getToken() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch < 0) {\n          return _primitives.EOF;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (!(0, _util.isSpace)(ch)) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      switch (ch | 0) {\n        case 0x30:\n        case 0x31:\n        case 0x32:\n        case 0x33:\n        case 0x34:\n        case 0x35:\n        case 0x36:\n        case 0x37:\n        case 0x38:\n        case 0x39:\n        case 0x2B:\n        case 0x2D:\n        case 0x2E:\n          return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n        case 0x7B:\n          this.nextChar();\n          return PostScriptToken.LBRACE;\n\n        case 0x7D:\n          this.nextChar();\n          return PostScriptToken.RBRACE;\n      }\n\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      strBuf[0] = String.fromCharCode(ch);\n\n      while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {\n        strBuf.push(String.fromCharCode(ch));\n      }\n\n      var str = strBuf.join('');\n\n      switch (str.toLowerCase()) {\n        case 'if':\n          return PostScriptToken.IF;\n\n        case 'ifelse':\n          return PostScriptToken.IFELSE;\n\n        default:\n          return PostScriptToken.getOperator(str);\n      }\n    }\n  }, {\n    key: \"getNumber\",\n    value: function getNumber() {\n      var ch = this.currentChar;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      strBuf[0] = String.fromCharCode(ch);\n\n      while ((ch = this.nextChar()) >= 0) {\n        if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {\n          strBuf.push(String.fromCharCode(ch));\n        } else {\n          break;\n        }\n      }\n\n      var value = parseFloat(strBuf.join(''));\n\n      if (isNaN(value)) {\n        throw new _util.FormatError(\"Invalid floating point number: \".concat(value));\n      }\n\n      return value;\n    }\n  }]);\n\n  return PostScriptLexer;\n}();\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar MurmurHash3_64 = function MurmurHash3_64Closure(seed) {\n  var MASK_HIGH = 0xffff0000;\n  var MASK_LOW = 0xffff;\n\n  function MurmurHash3_64(seed) {\n    var SEED = 0xc3d2e1f0;\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  MurmurHash3_64.prototype = {\n    update: function MurmurHash3_64_update(input) {\n      var data, length;\n\n      if ((0, _util.isString)(input)) {\n        data = new Uint8Array(input.length * 2);\n        length = 0;\n\n        for (var i = 0, ii = input.length; i < ii; i++) {\n          var code = input.charCodeAt(i);\n\n          if (code <= 0xff) {\n            data[length++] = code;\n          } else {\n            data[length++] = code >>> 8;\n            data[length++] = code & 0xff;\n          }\n        }\n      } else if ((0, _util.isArrayBuffer)(input)) {\n        data = input;\n        length = data.byteLength;\n      } else {\n        throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');\n      }\n\n      var blockCounts = length >> 2;\n      var tailLength = length - blockCounts * 4;\n      var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n      var k1 = 0;\n      var k2 = 0;\n      var h1 = this.h1;\n      var h2 = this.h2;\n      var C1 = 0xcc9e2d51;\n      var C2 = 0x1b873593;\n      var C1_LOW = C1 & MASK_LOW;\n      var C2_LOW = C2 & MASK_LOW;\n\n      for (var _i = 0; _i < blockCounts; _i++) {\n        if (_i & 1) {\n          k1 = dataUint32[_i];\n          k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n          k1 = k1 << 15 | k1 >>> 17;\n          k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n          h1 ^= k1;\n          h1 = h1 << 13 | h1 >>> 19;\n          h1 = h1 * 5 + 0xe6546b64;\n        } else {\n          k2 = dataUint32[_i];\n          k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n          k2 = k2 << 15 | k2 >>> 17;\n          k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n          h2 ^= k2;\n          h2 = h2 << 13 | h2 >>> 19;\n          h2 = h2 * 5 + 0xe6546b64;\n        }\n      }\n\n      k1 = 0;\n\n      switch (tailLength) {\n        case 3:\n          k1 ^= data[blockCounts * 4 + 2] << 16;\n\n        case 2:\n          k1 ^= data[blockCounts * 4 + 1] << 8;\n\n        case 1:\n          k1 ^= data[blockCounts * 4];\n          k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n          k1 = k1 << 15 | k1 >>> 17;\n          k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n          if (blockCounts & 1) {\n            h1 ^= k1;\n          } else {\n            h2 ^= k1;\n          }\n\n      }\n\n      this.h1 = h1;\n      this.h2 = h2;\n      return this;\n    },\n    hexdigest: function MurmurHash3_64_hexdigest() {\n      var h1 = this.h1;\n      var h2 = this.h2;\n      h1 ^= h2 >>> 1;\n      h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n      h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n      h1 ^= h2 >>> 1;\n      h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n      h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n      h1 ^= h2 >>> 1;\n\n      for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {\n        var hex = (arr[i] >>> 0).toString(16);\n\n        while (hex.length < 8) {\n          hex = '0' + hex;\n        }\n\n        str += hex;\n      }\n\n      return str;\n    }\n  };\n  return MurmurHash3_64;\n}();\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _jpx = __w_pdfjs_require__(166);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar PDFImage = function PDFImageClosure() {\n  function handleImageData(image, nativeDecoder) {\n    if (nativeDecoder && nativeDecoder.canDecode(image)) {\n      return nativeDecoder.decode(image).catch(function (reason) {\n        (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message));\n        return image;\n      });\n    }\n\n    return Promise.resolve(image);\n  }\n\n  function decodeAndClamp(value, addend, coefficient, max) {\n    value = addend + value * coefficient;\n    return value < 0 ? 0 : value > max ? max : value;\n  }\n\n  function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n    var length = w2 * h2;\n    var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n    var xRatio = w1 / w2;\n    var yRatio = h1 / h2;\n    var i,\n        j,\n        py,\n        newIndex = 0,\n        oldIndex;\n    var xScaled = new Uint16Array(w2);\n    var w1Scanline = w1;\n\n    for (i = 0; i < w2; i++) {\n      xScaled[i] = Math.floor(i * xRatio);\n    }\n\n    for (i = 0; i < h2; i++) {\n      py = Math.floor(i * yRatio) * w1Scanline;\n\n      for (j = 0; j < w2; j++) {\n        oldIndex = py + xScaled[j];\n        dest[newIndex++] = src[oldIndex];\n      }\n    }\n\n    return dest;\n  }\n\n  function PDFImage(_ref) {\n    var xref = _ref.xref,\n        res = _ref.res,\n        image = _ref.image,\n        _ref$isInline = _ref.isInline,\n        isInline = _ref$isInline === void 0 ? false : _ref$isInline,\n        _ref$smask = _ref.smask,\n        smask = _ref$smask === void 0 ? null : _ref$smask,\n        _ref$mask = _ref.mask,\n        mask = _ref$mask === void 0 ? null : _ref$mask,\n        _ref$isMask = _ref.isMask,\n        isMask = _ref$isMask === void 0 ? false : _ref$isMask,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n    this.image = image;\n    var dict = image.dict;\n    var filter = dict.get('Filter');\n\n    if ((0, _primitives.isName)(filter)) {\n      switch (filter.name) {\n        case 'JPXDecode':\n          var jpxImage = new _jpx.JpxImage();\n          jpxImage.parseImageProperties(image.stream);\n          image.stream.reset();\n          image.width = jpxImage.width;\n          image.height = jpxImage.height;\n          image.bitsPerComponent = jpxImage.bitsPerComponent;\n          image.numComps = jpxImage.componentsCount;\n          break;\n\n        case 'JBIG2Decode':\n          image.bitsPerComponent = 1;\n          image.numComps = 1;\n          break;\n      }\n    }\n\n    var width = dict.get('Width', 'W');\n    var height = dict.get('Height', 'H');\n\n    if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n      (0, _util.warn)('PDFImage - using the Width/Height of the image data, ' + 'rather than the image dictionary.');\n      width = image.width;\n      height = image.height;\n    }\n\n    if (width < 1 || height < 1) {\n      throw new _util.FormatError(\"Invalid image width: \".concat(width, \" or \") + \"height: \".concat(height));\n    }\n\n    this.width = width;\n    this.height = height;\n    this.interpolate = dict.get('Interpolate', 'I') || false;\n    this.imageMask = dict.get('ImageMask', 'IM') || false;\n    this.matte = dict.get('Matte') || false;\n    var bitsPerComponent = image.bitsPerComponent;\n\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\n\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new _util.FormatError(\"Bits per component missing in image: \".concat(this.imageMask));\n        }\n      }\n    }\n\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      var colorSpace = dict.get('ColorSpace', 'CS');\n\n      if (!colorSpace) {\n        (0, _util.info)('JPX images (which do not require color spaces)');\n\n        switch (image.numComps) {\n          case 1:\n            colorSpace = _primitives.Name.get('DeviceGray');\n            break;\n\n          case 3:\n            colorSpace = _primitives.Name.get('DeviceRGB');\n            break;\n\n          case 4:\n            colorSpace = _primitives.Name.get('DeviceCMYK');\n            break;\n\n          default:\n            throw new Error(\"JPX images with \".concat(image.numComps, \" \") + 'color components not supported.');\n        }\n      }\n\n      var resources = isInline ? res : null;\n      this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray('Decode', 'D');\n    this.needsDecode = false;\n\n    if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n      this.needsDecode = true;\n      var max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      var isIndexed = this.colorSpace && this.colorSpace.name === 'Indexed';\n\n      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        var dmin = this.decode[i];\n        var dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref: xref,\n        res: res,\n        image: smask,\n        isInline: isInline,\n        pdfFunctionFactory: pdfFunctionFactory\n      });\n    } else if (mask) {\n      if ((0, _primitives.isStream)(mask)) {\n        var maskDict = mask.dict,\n            imageMask = maskDict.get('ImageMask', 'IM');\n\n        if (!imageMask) {\n          (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');\n        } else {\n          this.mask = new PDFImage({\n            xref: xref,\n            res: res,\n            image: mask,\n            isInline: isInline,\n            isMask: true,\n            pdfFunctionFactory: pdfFunctionFactory\n          });\n        }\n      } else {\n        this.mask = mask;\n      }\n    }\n  }\n\n  PDFImage.buildImage = function (_ref2) {\n    var handler = _ref2.handler,\n        xref = _ref2.xref,\n        res = _ref2.res,\n        image = _ref2.image,\n        _ref2$isInline = _ref2.isInline,\n        isInline = _ref2$isInline === void 0 ? false : _ref2$isInline,\n        _ref2$nativeDecoder = _ref2.nativeDecoder,\n        nativeDecoder = _ref2$nativeDecoder === void 0 ? null : _ref2$nativeDecoder,\n        pdfFunctionFactory = _ref2.pdfFunctionFactory;\n    var imagePromise = handleImageData(image, nativeDecoder);\n    var smaskPromise;\n    var maskPromise;\n    var smask = image.dict.get('SMask');\n    var mask = image.dict.get('Mask');\n\n    if (smask) {\n      smaskPromise = handleImageData(smask, nativeDecoder);\n      maskPromise = Promise.resolve(null);\n    } else {\n      smaskPromise = Promise.resolve(null);\n\n      if (mask) {\n        if ((0, _primitives.isStream)(mask)) {\n          maskPromise = handleImageData(mask, nativeDecoder);\n        } else if (Array.isArray(mask)) {\n          maskPromise = Promise.resolve(mask);\n        } else {\n          (0, _util.warn)('Unsupported mask format.');\n          maskPromise = Promise.resolve(null);\n        }\n      } else {\n        maskPromise = Promise.resolve(null);\n      }\n    }\n\n    return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 3),\n          imageData = _ref4[0],\n          smaskData = _ref4[1],\n          maskData = _ref4[2];\n\n      return new PDFImage({\n        xref: xref,\n        res: res,\n        image: imageData,\n        isInline: isInline,\n        smask: smaskData,\n        mask: maskData,\n        pdfFunctionFactory: pdfFunctionFactory\n      });\n    });\n  };\n\n  PDFImage.createMask = function (_ref5) {\n    var imgArray = _ref5.imgArray,\n        width = _ref5.width,\n        height = _ref5.height,\n        imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream,\n        inverseDecode = _ref5.inverseDecode;\n    var computedLength = (width + 7 >> 3) * height;\n    var actualLength = imgArray.byteLength;\n    var haveFullData = computedLength === actualLength;\n    var data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8ClampedArray(actualLength);\n      data.set(imgArray);\n    } else {\n      data = new Uint8ClampedArray(computedLength);\n      data.set(imgArray);\n\n      for (i = actualLength; i < computedLength; i++) {\n        data[i] = 0xff;\n      }\n    }\n\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xFF;\n      }\n    }\n\n    return {\n      data: data,\n      width: width,\n      height: height\n    };\n  };\n\n  PDFImage.prototype = {\n    get drawWidth() {\n      return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n    },\n\n    get drawHeight() {\n      return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n    },\n\n    decodeBuffer: function decodeBuffer(buffer) {\n      var bpc = this.bpc;\n      var numComps = this.numComps;\n      var decodeAddends = this.decodeAddends;\n      var decodeCoefficients = this.decodeCoefficients;\n      var max = (1 << bpc) - 1;\n      var i, ii;\n\n      if (bpc === 1) {\n        for (i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = +!buffer[i];\n        }\n\n        return;\n      }\n\n      var index = 0;\n\n      for (i = 0, ii = this.width * this.height; i < ii; i++) {\n        for (var j = 0; j < numComps; j++) {\n          buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n          index++;\n        }\n      }\n    },\n    getComponents: function getComponents(buffer) {\n      var bpc = this.bpc;\n\n      if (bpc === 8) {\n        return buffer;\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var numComps = this.numComps;\n      var length = width * height * numComps;\n      var bufferPos = 0;\n      var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n      var rowComps = width * numComps;\n      var max = (1 << bpc) - 1;\n      var i = 0,\n          ii,\n          buf;\n\n      if (bpc === 1) {\n        var mask, loop1End, loop2End;\n\n        for (var j = 0; j < height; j++) {\n          loop1End = i + (rowComps & ~7);\n          loop2End = i + rowComps;\n\n          while (i < loop1End) {\n            buf = buffer[bufferPos++];\n            output[i] = buf >> 7 & 1;\n            output[i + 1] = buf >> 6 & 1;\n            output[i + 2] = buf >> 5 & 1;\n            output[i + 3] = buf >> 4 & 1;\n            output[i + 4] = buf >> 3 & 1;\n            output[i + 5] = buf >> 2 & 1;\n            output[i + 6] = buf >> 1 & 1;\n            output[i + 7] = buf & 1;\n            i += 8;\n          }\n\n          if (i < loop2End) {\n            buf = buffer[bufferPos++];\n            mask = 128;\n\n            while (i < loop2End) {\n              output[i++] = +!!(buf & mask);\n              mask >>= 1;\n            }\n          }\n        }\n      } else {\n        var bits = 0;\n        buf = 0;\n\n        for (i = 0, ii = length; i < ii; ++i) {\n          if (i % rowComps === 0) {\n            buf = 0;\n            bits = 0;\n          }\n\n          while (bits < bpc) {\n            buf = buf << 8 | buffer[bufferPos++];\n            bits += 8;\n          }\n\n          var remainingBits = bits - bpc;\n          var value = buf >> remainingBits;\n          output[i] = value < 0 ? 0 : value > max ? max : value;\n          buf = buf & (1 << remainingBits) - 1;\n          bits = remainingBits;\n        }\n      }\n\n      return output;\n    },\n    fillOpacity: function fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n      var smask = this.smask;\n      var mask = this.mask;\n      var alphaBuf, sw, sh, i, ii, j;\n\n      if (smask) {\n        sw = smask.width;\n        sh = smask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        smask.fillGrayBuffer(alphaBuf);\n\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n        }\n      } else if (mask) {\n        if (mask instanceof PDFImage) {\n          sw = mask.width;\n          sh = mask.height;\n          alphaBuf = new Uint8ClampedArray(sw * sh);\n          mask.numComps = 1;\n          mask.fillGrayBuffer(alphaBuf);\n\n          for (i = 0, ii = sw * sh; i < ii; ++i) {\n            alphaBuf[i] = 255 - alphaBuf[i];\n          }\n\n          if (sw !== width || sh !== height) {\n            alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n          }\n        } else if (Array.isArray(mask)) {\n          alphaBuf = new Uint8ClampedArray(width * height);\n          var numComps = this.numComps;\n\n          for (i = 0, ii = width * height; i < ii; ++i) {\n            var opacity = 0;\n            var imageOffset = i * numComps;\n\n            for (j = 0; j < numComps; ++j) {\n              var color = image[imageOffset + j];\n              var maskOffset = j * 2;\n\n              if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n                opacity = 255;\n                break;\n              }\n            }\n\n            alphaBuf[i] = opacity;\n          }\n        } else {\n          throw new _util.FormatError('Unknown mask format.');\n        }\n      }\n\n      if (alphaBuf) {\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = alphaBuf[i];\n        }\n      } else {\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = 255;\n        }\n      }\n    },\n    undoPreblend: function undoPreblend(buffer, width, height) {\n      var matte = this.smask && this.smask.matte;\n\n      if (!matte) {\n        return;\n      }\n\n      var matteRgb = this.colorSpace.getRgb(matte, 0);\n      var matteR = matteRgb[0];\n      var matteG = matteRgb[1];\n      var matteB = matteRgb[2];\n      var length = width * height * 4;\n\n      for (var i = 0; i < length; i += 4) {\n        var alpha = buffer[i + 3];\n\n        if (alpha === 0) {\n          buffer[i] = 255;\n          buffer[i + 1] = 255;\n          buffer[i + 2] = 255;\n          continue;\n        }\n\n        var k = 255 / alpha;\n        buffer[i] = (buffer[i] - matteR) * k + matteR;\n        buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n        buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n      }\n    },\n    createImageData: function createImageData() {\n      var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var drawWidth = this.drawWidth;\n      var drawHeight = this.drawHeight;\n      var imgData = {\n        width: drawWidth,\n        height: drawHeight,\n        kind: 0,\n        data: null\n      };\n      var numComps = this.numComps;\n      var originalWidth = this.width;\n      var originalHeight = this.height;\n      var bpc = this.bpc;\n      var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n      var imgArray;\n\n      if (!forceRGBA) {\n        var kind;\n\n        if (this.colorSpace.name === 'DeviceGray' && bpc === 1) {\n          kind = _util.ImageKind.GRAYSCALE_1BPP;\n        } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) {\n          kind = _util.ImageKind.RGB_24BPP;\n        }\n\n        if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n          imgData.kind = kind;\n          imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n          if (this.image instanceof _stream.DecodeStream) {\n            imgData.data = imgArray;\n          } else {\n            var newArray = new Uint8ClampedArray(imgArray.length);\n            newArray.set(imgArray);\n            imgData.data = newArray;\n          }\n\n          if (this.needsDecode) {\n            (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, 'PDFImage.createImageData: The image must be grayscale.');\n            var buffer = imgData.data;\n\n            for (var i = 0, ii = buffer.length; i < ii; i++) {\n              buffer[i] ^= 0xff;\n            }\n          }\n\n          return imgData;\n        }\n\n        if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n          var imageLength = originalHeight * rowBytes;\n\n          switch (this.colorSpace.name) {\n            case 'DeviceGray':\n              imageLength *= 3;\n\n            case 'DeviceRGB':\n            case 'DeviceCMYK':\n              imgData.kind = _util.ImageKind.RGB_24BPP;\n              imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);\n              return imgData;\n          }\n        }\n      }\n\n      imgArray = this.getImageBytes(originalHeight * rowBytes);\n      var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n      var comps = this.getComponents(imgArray);\n      var alpha01, maybeUndoPreblend;\n\n      if (!forceRGBA && !this.smask && !this.mask) {\n        imgData.kind = _util.ImageKind.RGB_24BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n        alpha01 = 0;\n        maybeUndoPreblend = false;\n      } else {\n        imgData.kind = _util.ImageKind.RGBA_32BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n        alpha01 = 1;\n        maybeUndoPreblend = true;\n        this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n\n      this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n      if (maybeUndoPreblend) {\n        this.undoPreblend(imgData.data, drawWidth, actualHeight);\n      }\n\n      return imgData;\n    },\n    fillGrayBuffer: function fillGrayBuffer(buffer) {\n      var numComps = this.numComps;\n\n      if (numComps !== 1) {\n        throw new _util.FormatError(\"Reading gray scale from a color image: \".concat(numComps));\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var bpc = this.bpc;\n      var rowBytes = width * numComps * bpc + 7 >> 3;\n      var imgArray = this.getImageBytes(height * rowBytes);\n      var comps = this.getComponents(imgArray);\n      var i, length;\n\n      if (bpc === 1) {\n        length = width * height;\n\n        if (this.needsDecode) {\n          for (i = 0; i < length; ++i) {\n            buffer[i] = comps[i] - 1 & 255;\n          }\n        } else {\n          for (i = 0; i < length; ++i) {\n            buffer[i] = -comps[i] & 255;\n          }\n        }\n\n        return;\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n\n      length = width * height;\n      var scale = 255 / ((1 << bpc) - 1);\n\n      for (i = 0; i < length; ++i) {\n        buffer[i] = scale * comps[i];\n      }\n    },\n    getImageBytes: function getImageBytes(length, drawWidth, drawHeight) {\n      var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n      this.image.reset();\n      this.image.drawWidth = drawWidth || this.width;\n      this.image.drawHeight = drawHeight || this.height;\n      this.image.forceRGB = !!forceRGB;\n      return this.image.getBytes(length, true);\n    }\n  };\n  return PDFImage;\n}();\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MessageHandler = MessageHandler;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction resolveCall(_x, _x2) {\n  return _resolveCall.apply(this, arguments);\n}\n\nfunction _resolveCall() {\n  _resolveCall = _asyncToGenerator(\n  /*#__PURE__*/\n  _regenerator.default.mark(function _callee(fn, args) {\n    var thisArg,\n        _args = arguments;\n    return _regenerator.default.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;\n\n            if (fn) {\n              _context.next = 3;\n              break;\n            }\n\n            return _context.abrupt(\"return\");\n\n          case 3:\n            return _context.abrupt(\"return\", fn.apply(thisArg, args));\n\n          case 4:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n  return _resolveCall.apply(this, arguments);\n}\n\nfunction wrapReason(reason) {\n  if (_typeof(reason) !== 'object') {\n    return reason;\n  }\n\n  switch (reason.name) {\n    case 'AbortException':\n      return new _util.AbortException(reason.message);\n\n    case 'MissingPDFException':\n      return new _util.MissingPDFException(reason.message);\n\n    case 'UnexpectedResponseException':\n      return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n    default:\n      return new _util.UnknownErrorException(reason.message, reason.details);\n  }\n}\n\nfunction makeReasonSerializable(reason) {\n  if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {\n    return reason;\n  }\n\n  return new _util.UnknownErrorException(reason.message, reason.toString());\n}\n\nfunction resolveOrReject(capability, success, reason) {\n  if (success) {\n    capability.resolve();\n  } else {\n    capability.reject(reason);\n  }\n}\n\nfunction finalize(promise) {\n  return Promise.resolve(promise).catch(function () {});\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n  var _this = this;\n\n  this.sourceName = sourceName;\n  this.targetName = targetName;\n  this.comObj = comObj;\n  this.callbackId = 1;\n  this.streamId = 1;\n  this.postMessageTransfers = true;\n  this.streamSinks = Object.create(null);\n  this.streamControllers = Object.create(null);\n  var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n  var ah = this.actionHandler = Object.create(null);\n\n  this._onComObjOnMessage = function (event) {\n    var data = event.data;\n\n    if (data.targetName !== _this.sourceName) {\n      return;\n    }\n\n    if (data.stream) {\n      _this._processStreamMessage(data);\n    } else if (data.isReply) {\n      var callbackId = data.callbackId;\n\n      if (data.callbackId in callbacksCapabilities) {\n        var callback = callbacksCapabilities[callbackId];\n        delete callbacksCapabilities[callbackId];\n\n        if ('error' in data) {\n          callback.reject(wrapReason(data.error));\n        } else {\n          callback.resolve(data.data);\n        }\n      } else {\n        throw new Error(\"Cannot resolve callback \".concat(callbackId));\n      }\n    } else if (data.action in ah) {\n      var action = ah[data.action];\n\n      if (data.callbackId) {\n        var _sourceName = _this.sourceName;\n        var _targetName = data.sourceName;\n        Promise.resolve().then(function () {\n          return action[0].call(action[1], data.data);\n        }).then(function (result) {\n          comObj.postMessage({\n            sourceName: _sourceName,\n            targetName: _targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            data: result\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName: _sourceName,\n            targetName: _targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            error: makeReasonSerializable(reason)\n          });\n        });\n      } else if (data.streamId) {\n        _this._createStreamSink(data);\n      } else {\n        action[0].call(action[1], data.data);\n      }\n    } else {\n      throw new Error(\"Unknown action from worker: \".concat(data.action));\n    }\n  };\n\n  comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n  on: function on(actionName, handler, scope) {\n    var ah = this.actionHandler;\n\n    if (ah[actionName]) {\n      throw new Error(\"There is already an actionName called \\\"\".concat(actionName, \"\\\"\"));\n    }\n\n    ah[actionName] = [handler, scope];\n  },\n  send: function send(actionName, data, transfers) {\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data: data\n    };\n    this.postMessage(message, transfers);\n  },\n  sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n    var callbackId = this.callbackId++;\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data: data,\n      callbackId: callbackId\n    };\n    var capability = (0, _util.createPromiseCapability)();\n    this.callbacksCapabilities[callbackId] = capability;\n\n    try {\n      this.postMessage(message, transfers);\n    } catch (e) {\n      capability.reject(e);\n    }\n\n    return capability.promise;\n  },\n  sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n    var _this2 = this;\n\n    var streamId = this.streamId++;\n    var sourceName = this.sourceName;\n    var targetName = this.targetName;\n    return new _util.ReadableStream({\n      start: function start(controller) {\n        var startCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId] = {\n          controller: controller,\n          startCall: startCapability,\n          isClosed: false\n        };\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          action: actionName,\n          streamId: streamId,\n          data: data,\n          desiredSize: controller.desiredSize\n        });\n\n        return startCapability.promise;\n      },\n      pull: function pull(controller) {\n        var pullCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId].pullCall = pullCapability;\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          stream: 'pull',\n          streamId: streamId,\n          desiredSize: controller.desiredSize\n        });\n\n        return pullCapability.promise;\n      },\n      cancel: function cancel(reason) {\n        var cancelCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId].cancelCall = cancelCapability;\n        _this2.streamControllers[streamId].isClosed = true;\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          stream: 'cancel',\n          reason: reason,\n          streamId: streamId\n        });\n\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  },\n  _createStreamSink: function _createStreamSink(data) {\n    var _this3 = this;\n\n    var self = this;\n    var action = this.actionHandler[data.action];\n    var streamId = data.streamId;\n    var desiredSize = data.desiredSize;\n    var sourceName = this.sourceName;\n    var targetName = data.sourceName;\n    var capability = (0, _util.createPromiseCapability)();\n\n    var sendStreamRequest = function sendStreamRequest(_ref) {\n      var stream = _ref.stream,\n          chunk = _ref.chunk,\n          transfers = _ref.transfers,\n          success = _ref.success,\n          reason = _ref.reason;\n\n      _this3.postMessage({\n        sourceName: sourceName,\n        targetName: targetName,\n        stream: stream,\n        streamId: streamId,\n        chunk: chunk,\n        success: success,\n        reason: reason\n      }, transfers);\n    };\n\n    var streamSink = {\n      enqueue: function enqueue(chunk) {\n        var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n        var transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        var lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = (0, _util.createPromiseCapability)();\n          this.ready = this.sinkCapability.promise;\n        }\n\n        sendStreamRequest({\n          stream: 'enqueue',\n          chunk: chunk,\n          transfers: transfers\n        });\n      },\n      close: function close() {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        sendStreamRequest({\n          stream: 'close'\n        });\n        delete self.streamSinks[streamId];\n      },\n      error: function error(reason) {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        sendStreamRequest({\n          stream: 'error',\n          reason: reason\n        });\n      },\n      sinkCapability: capability,\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n      sendStreamRequest({\n        stream: 'start_complete',\n        success: true\n      });\n    }, function (reason) {\n      sendStreamRequest({\n        stream: 'start_complete',\n        success: false,\n        reason: reason\n      });\n    });\n  },\n  _processStreamMessage: function _processStreamMessage(data) {\n    var _this4 = this;\n\n    var sourceName = this.sourceName;\n    var targetName = data.sourceName;\n    var streamId = data.streamId;\n\n    var sendStreamResponse = function sendStreamResponse(_ref2) {\n      var stream = _ref2.stream,\n          success = _ref2.success,\n          reason = _ref2.reason;\n\n      _this4.comObj.postMessage({\n        sourceName: sourceName,\n        targetName: targetName,\n        stream: stream,\n        success: success,\n        streamId: streamId,\n        reason: reason\n      });\n    };\n\n    var deleteStreamController = function deleteStreamController() {\n      Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n        return capability && finalize(capability.promise);\n      })).then(function () {\n        delete _this4.streamControllers[data.streamId];\n      });\n    };\n\n    switch (data.stream) {\n      case 'start_complete':\n        resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n        break;\n\n      case 'pull_complete':\n        resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n        break;\n\n      case 'pull':\n        if (!this.streamSinks[data.streamId]) {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: true\n          });\n          break;\n        }\n\n        if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n          this.streamSinks[data.streamId].sinkCapability.resolve();\n        }\n\n        this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n        resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: true\n          });\n        }, function (reason) {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: false,\n            reason: reason\n          });\n        });\n        break;\n\n      case 'enqueue':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n\n        if (!this.streamControllers[data.streamId].isClosed) {\n          this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n        }\n\n        break;\n\n      case 'close':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n\n        if (this.streamControllers[data.streamId].isClosed) {\n          break;\n        }\n\n        this.streamControllers[data.streamId].isClosed = true;\n        this.streamControllers[data.streamId].controller.close();\n        deleteStreamController();\n        break;\n\n      case 'error':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');\n        this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n        deleteStreamController();\n        break;\n\n      case 'cancel_complete':\n        resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n        deleteStreamController();\n        break;\n\n      case 'cancel':\n        if (!this.streamSinks[data.streamId]) {\n          break;\n        }\n\n        resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n          sendStreamResponse({\n            stream: 'cancel_complete',\n            success: true\n          });\n        }, function (reason) {\n          sendStreamResponse({\n            stream: 'cancel_complete',\n            success: false,\n            reason: reason\n          });\n        });\n        this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n        this.streamSinks[data.streamId].isCancelled = true;\n        delete this.streamSinks[data.streamId];\n        break;\n\n      default:\n        throw new Error('Unexpected stream case');\n    }\n  },\n  postMessage: function postMessage(message, transfers) {\n    if (transfers && this.postMessageTransfers) {\n      this.comObj.postMessage(message, transfers);\n    } else {\n      this.comObj.postMessage(message);\n    }\n  },\n  destroy: function destroy() {\n    this.comObj.removeEventListener('message', this._onComObjOnMessage);\n  }\n};\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3).Buffer, __webpack_require__(0), __webpack_require__(7)))\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nvar base64 = __webpack_require__(4)\nvar ieee754 = __webpack_require__(5)\nvar isArray = __webpack_require__(6)\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 '<Buffer ' + str + '>'\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\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.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\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ })\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// 81a587f43a1d4cf251db.worker.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_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, __webpack_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__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_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__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 81a587f43a1d4cf251db","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n\n/**\n * PDF.js Worker entry file.\n *\n * This file is identical to Mozilla's pdf.worker.entry.js, with one exception being placed inside\n * this bundle, not theirs. This file can be safely removed and replaced with Mozilla's after the\n * issue mentioned below has been resolved on Parcel's side.\n * See: https://github.com/parcel-bundler/parcel/issues/670\n */\n(typeof window !== 'undefined' ? window : {}).pdfjsWorker = require('pdfjs-dist/build/pdf.worker.js');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/react-pdf/dist/pdf.worker.entry.js\n// module id = 1\n// module chunks = 0","/**\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.worker\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf.worker\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf.worker\"] = root.pdfjsWorker = 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.1.266';\nvar pdfjsBuild = '81f5835c';\n\nvar pdfjsCoreWorker = __w_pdfjs_require__(1);\n\nexports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;\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.WorkerMessageHandler = exports.WorkerTask = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _pdf_manager = __w_pdfjs_require__(151);\n\nvar _is_node = _interopRequireDefault(__w_pdfjs_require__(9));\n\nvar _message_handler = __w_pdfjs_require__(189);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar WorkerTask = function WorkerTaskClosure() {\n  function WorkerTask(name) {\n    this.name = name;\n    this.terminated = false;\n    this._capability = (0, _util.createPromiseCapability)();\n  }\n\n  WorkerTask.prototype = {\n    get finished() {\n      return this._capability.promise;\n    },\n\n    finish: function finish() {\n      this._capability.resolve();\n    },\n    terminate: function terminate() {\n      this.terminated = true;\n    },\n    ensureNotTerminated: function ensureNotTerminated() {\n      if (this.terminated) {\n        throw new Error('Worker task was terminated');\n      }\n    }\n  };\n  return WorkerTask;\n}();\n\nexports.WorkerTask = WorkerTask;\n\nvar PDFWorkerStream = function PDFWorkerStreamClosure() {\n  function PDFWorkerStream(msgHandler) {\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  PDFWorkerStream.prototype = {\n    getFullReader: function getFullReader() {\n      (0, _util.assert)(!this._fullRequestReader);\n      this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n      return this._fullRequestReader;\n    },\n    getRangeReader: function getRangeReader(begin, end) {\n      var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n\n      this._rangeRequestReaders.push(reader);\n\n      return reader;\n    },\n    cancelAllRequests: function cancelAllRequests(reason) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader.cancel(reason);\n      }\n\n      var readers = this._rangeRequestReaders.slice(0);\n\n      readers.forEach(function (reader) {\n        reader.cancel(reason);\n      });\n    }\n  };\n\n  function PDFWorkerStreamReader(msgHandler) {\n    var _this = this;\n\n    this._msgHandler = msgHandler;\n    this._contentLength = null;\n    this._isRangeSupported = false;\n    this._isStreamingSupported = false;\n\n    var readableStream = this._msgHandler.sendWithStream('GetReader');\n\n    this._reader = readableStream.getReader();\n    this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {\n      _this._isStreamingSupported = data.isStreamingSupported;\n      _this._isRangeSupported = data.isRangeSupported;\n      _this._contentLength = data.contentLength;\n    });\n  }\n\n  PDFWorkerStreamReader.prototype = {\n    get headersReady() {\n      return this._headersReady;\n    },\n\n    get contentLength() {\n      return this._contentLength;\n    },\n\n    get isStreamingSupported() {\n      return this._isStreamingSupported;\n    },\n\n    get isRangeSupported() {\n      return this._isRangeSupported;\n    },\n\n    read: function read() {\n      return this._reader.read().then(function (_ref) {\n        var value = _ref.value,\n            done = _ref.done;\n\n        if (done) {\n          return {\n            value: undefined,\n            done: true\n          };\n        }\n\n        return {\n          value: value.buffer,\n          done: false\n        };\n      });\n    },\n    cancel: function cancel(reason) {\n      this._reader.cancel(reason);\n    }\n  };\n\n  function PDFWorkerStreamRangeReader(begin, end, msgHandler) {\n    this._msgHandler = msgHandler;\n    this.onProgress = null;\n\n    var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {\n      begin: begin,\n      end: end\n    });\n\n    this._reader = readableStream.getReader();\n  }\n\n  PDFWorkerStreamRangeReader.prototype = {\n    get isStreamingSupported() {\n      return false;\n    },\n\n    read: function read() {\n      return this._reader.read().then(function (_ref2) {\n        var value = _ref2.value,\n            done = _ref2.done;\n\n        if (done) {\n          return {\n            value: undefined,\n            done: true\n          };\n        }\n\n        return {\n          value: value.buffer,\n          done: false\n        };\n      });\n    },\n    cancel: function cancel(reason) {\n      this._reader.cancel(reason);\n    }\n  };\n  return PDFWorkerStream;\n}();\n\nvar WorkerMessageHandler = {\n  setup: function setup(handler, port) {\n    var testMessageProcessed = false;\n    handler.on('test', function wphSetupTest(data) {\n      if (testMessageProcessed) {\n        return;\n      }\n\n      testMessageProcessed = true;\n\n      if (!(data instanceof Uint8Array)) {\n        handler.send('test', false);\n        return;\n      }\n\n      var supportTransfers = data[0] === 255;\n      handler.postMessageTransfers = supportTransfers;\n      var xhr = new XMLHttpRequest();\n      var responseExists = 'response' in xhr;\n\n      try {\n        xhr.responseType;\n      } catch (e) {\n        responseExists = false;\n      }\n\n      if (!responseExists) {\n        handler.send('test', false);\n        return;\n      }\n\n      handler.send('test', {\n        supportTypedArray: true,\n        supportTransfers: supportTransfers\n      });\n    });\n    handler.on('configure', function wphConfigure(data) {\n      (0, _util.setVerbosityLevel)(data.verbosity);\n    });\n    handler.on('GetDocRequest', function wphSetupDoc(data) {\n      return WorkerMessageHandler.createDocumentHandler(data, port);\n    });\n  },\n  createDocumentHandler: function createDocumentHandler(docParams, port) {\n    var pdfManager;\n    var terminated = false;\n    var cancelXHRs = null;\n    var WorkerTasks = [];\n    var apiVersion = docParams.apiVersion;\n    var workerVersion = '2.1.266';\n\n    if (apiVersion !== workerVersion) {\n      throw new Error(\"The API version \\\"\".concat(apiVersion, \"\\\" does not match \") + \"the Worker version \\\"\".concat(workerVersion, \"\\\".\"));\n    }\n\n    var docId = docParams.docId;\n    var docBaseUrl = docParams.docBaseUrl;\n    var workerHandlerName = docParams.docId + '_worker';\n    var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);\n    handler.postMessageTransfers = docParams.postMessageTransfers;\n\n    function ensureNotTerminated() {\n      if (terminated) {\n        throw new Error('Worker was terminated');\n      }\n    }\n\n    function startWorkerTask(task) {\n      WorkerTasks.push(task);\n    }\n\n    function finishWorkerTask(task) {\n      task.finish();\n      var i = WorkerTasks.indexOf(task);\n      WorkerTasks.splice(i, 1);\n    }\n\n    function loadDocument(_x) {\n      return _loadDocument.apply(this, arguments);\n    }\n\n    function _loadDocument() {\n      _loadDocument = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(recoveryMode) {\n        var _ref6, _ref7, numPages, fingerprint;\n\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                _context.next = 2;\n                return pdfManager.ensureDoc('checkHeader');\n\n              case 2:\n                _context.next = 4;\n                return pdfManager.ensureDoc('parseStartXRef');\n\n              case 4:\n                _context.next = 6;\n                return pdfManager.ensureDoc('parse', [recoveryMode]);\n\n              case 6:\n                if (recoveryMode) {\n                  _context.next = 9;\n                  break;\n                }\n\n                _context.next = 9;\n                return pdfManager.ensureDoc('checkFirstPage');\n\n              case 9:\n                _context.next = 11;\n                return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);\n\n              case 11:\n                _ref6 = _context.sent;\n                _ref7 = _slicedToArray(_ref6, 2);\n                numPages = _ref7[0];\n                fingerprint = _ref7[1];\n                return _context.abrupt(\"return\", {\n                  numPages: numPages,\n                  fingerprint: fingerprint\n                });\n\n              case 16:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n      return _loadDocument.apply(this, arguments);\n    }\n\n    function getPdfManager(data, evaluatorOptions) {\n      var pdfManagerCapability = (0, _util.createPromiseCapability)();\n      var pdfManager;\n      var source = data.source;\n\n      if (source.data) {\n        try {\n          pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);\n          pdfManagerCapability.resolve(pdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        return pdfManagerCapability.promise;\n      }\n\n      var pdfStream,\n          cachedChunks = [];\n\n      try {\n        pdfStream = new PDFWorkerStream(handler);\n      } catch (ex) {\n        pdfManagerCapability.reject(ex);\n        return pdfManagerCapability.promise;\n      }\n\n      var fullRequest = pdfStream.getFullReader();\n      fullRequest.headersReady.then(function () {\n        if (!fullRequest.isRangeSupported) {\n          return;\n        }\n\n        var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;\n        pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {\n          msgHandler: handler,\n          password: source.password,\n          length: fullRequest.contentLength,\n          disableAutoFetch: disableAutoFetch,\n          rangeChunkSize: source.rangeChunkSize\n        }, evaluatorOptions, docBaseUrl);\n\n        for (var i = 0; i < cachedChunks.length; i++) {\n          pdfManager.sendProgressiveData(cachedChunks[i]);\n        }\n\n        cachedChunks = [];\n        pdfManagerCapability.resolve(pdfManager);\n        cancelXHRs = null;\n      }).catch(function (reason) {\n        pdfManagerCapability.reject(reason);\n        cancelXHRs = null;\n      });\n      var loaded = 0;\n\n      var flushChunks = function flushChunks() {\n        var pdfFile = (0, _util.arraysToBytes)(cachedChunks);\n\n        if (source.length && pdfFile.length !== source.length) {\n          (0, _util.warn)('reported HTTP length is different from actual');\n        }\n\n        try {\n          pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);\n          pdfManagerCapability.resolve(pdfManager);\n        } catch (ex) {\n          pdfManagerCapability.reject(ex);\n        }\n\n        cachedChunks = [];\n      };\n\n      var readPromise = new Promise(function (resolve, reject) {\n        var readChunk = function readChunk(chunk) {\n          try {\n            ensureNotTerminated();\n\n            if (chunk.done) {\n              if (!pdfManager) {\n                flushChunks();\n              }\n\n              cancelXHRs = null;\n              return;\n            }\n\n            var data = chunk.value;\n            loaded += (0, _util.arrayByteLength)(data);\n\n            if (!fullRequest.isStreamingSupported) {\n              handler.send('DocProgress', {\n                loaded: loaded,\n                total: Math.max(loaded, fullRequest.contentLength || 0)\n              });\n            }\n\n            if (pdfManager) {\n              pdfManager.sendProgressiveData(data);\n            } else {\n              cachedChunks.push(data);\n            }\n\n            fullRequest.read().then(readChunk, reject);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        fullRequest.read().then(readChunk, reject);\n      });\n      readPromise.catch(function (e) {\n        pdfManagerCapability.reject(e);\n        cancelXHRs = null;\n      });\n\n      cancelXHRs = function cancelXHRs() {\n        pdfStream.cancelAllRequests('abort');\n      };\n\n      return pdfManagerCapability.promise;\n    }\n\n    function setupDoc(data) {\n      function onSuccess(doc) {\n        ensureNotTerminated();\n        handler.send('GetDoc', {\n          pdfInfo: doc\n        });\n      }\n\n      function onFailure(e) {\n        ensureNotTerminated();\n\n        if (e instanceof _util.PasswordException) {\n          var task = new WorkerTask('PasswordException: response ' + e.code);\n          startWorkerTask(task);\n          handler.sendWithPromise('PasswordRequest', e).then(function (data) {\n            finishWorkerTask(task);\n            pdfManager.updatePassword(data.password);\n            pdfManagerReady();\n          }).catch(function (boundException) {\n            finishWorkerTask(task);\n            handler.send('PasswordException', boundException);\n          }.bind(null, e));\n        } else if (e instanceof _util.InvalidPDFException) {\n          handler.send('InvalidPDF', e);\n        } else if (e instanceof _util.MissingPDFException) {\n          handler.send('MissingPDF', e);\n        } else if (e instanceof _util.UnexpectedResponseException) {\n          handler.send('UnexpectedResponse', e);\n        } else {\n          handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));\n        }\n      }\n\n      function pdfManagerReady() {\n        ensureNotTerminated();\n        loadDocument(false).then(onSuccess, function loadFailure(ex) {\n          ensureNotTerminated();\n\n          if (!(ex instanceof _util.XRefParseException)) {\n            onFailure(ex);\n            return;\n          }\n\n          pdfManager.requestLoadedStream();\n          pdfManager.onLoadedStream().then(function () {\n            ensureNotTerminated();\n            loadDocument(true).then(onSuccess, onFailure);\n          });\n        }, onFailure);\n      }\n\n      ensureNotTerminated();\n      var evaluatorOptions = {\n        forceDataSchema: data.disableCreateObjectURL,\n        maxImageSize: data.maxImageSize,\n        disableFontFace: data.disableFontFace,\n        nativeImageDecoderSupport: data.nativeImageDecoderSupport,\n        ignoreErrors: data.ignoreErrors,\n        isEvalSupported: data.isEvalSupported\n      };\n      getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {\n        if (terminated) {\n          newPdfManager.terminate();\n          throw new Error('Worker was terminated');\n        }\n\n        pdfManager = newPdfManager;\n        pdfManager.onLoadedStream().then(function (stream) {\n          handler.send('DataLoaded', {\n            length: stream.bytes.byteLength\n          });\n        });\n      }).then(pdfManagerReady, onFailure);\n    }\n\n    handler.on('GetPage', function wphSetupGetPage(data) {\n      return pdfManager.getPage(data.pageIndex).then(function (page) {\n        return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {\n          var _ref4 = _slicedToArray(_ref3, 4),\n              rotate = _ref4[0],\n              ref = _ref4[1],\n              userUnit = _ref4[2],\n              view = _ref4[3];\n\n          return {\n            rotate: rotate,\n            ref: ref,\n            userUnit: userUnit,\n            view: view\n          };\n        });\n      });\n    });\n    handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {\n      var ref = new _primitives.Ref(data.ref.num, data.ref.gen);\n      var catalog = pdfManager.pdfDocument.catalog;\n      return catalog.getPageIndex(ref);\n    });\n    handler.on('GetDestinations', function wphSetupGetDestinations(data) {\n      return pdfManager.ensureCatalog('destinations');\n    });\n    handler.on('GetDestination', function wphSetupGetDestination(data) {\n      return pdfManager.ensureCatalog('getDestination', [data.id]);\n    });\n    handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {\n      return pdfManager.ensureCatalog('pageLabels');\n    });\n    handler.on('GetPageMode', function wphSetupGetPageMode(data) {\n      return pdfManager.ensureCatalog('pageMode');\n    });\n    handler.on('getOpenActionDestination', function (data) {\n      return pdfManager.ensureCatalog('openActionDestination');\n    });\n    handler.on('GetAttachments', function wphSetupGetAttachments(data) {\n      return pdfManager.ensureCatalog('attachments');\n    });\n    handler.on('GetJavaScript', function wphSetupGetJavaScript(data) {\n      return pdfManager.ensureCatalog('javaScript');\n    });\n    handler.on('GetOutline', function wphSetupGetOutline(data) {\n      return pdfManager.ensureCatalog('documentOutline');\n    });\n    handler.on('GetPermissions', function (data) {\n      return pdfManager.ensureCatalog('permissions');\n    });\n    handler.on('GetMetadata', function wphSetupGetMetadata(data) {\n      return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);\n    });\n    handler.on('GetData', function wphSetupGetData(data) {\n      pdfManager.requestLoadedStream();\n      return pdfManager.onLoadedStream().then(function (stream) {\n        return stream.bytes;\n      });\n    });\n    handler.on('GetStats', function wphSetupGetStats(data) {\n      return pdfManager.pdfDocument.xref.stats;\n    });\n    handler.on('GetAnnotations', function (_ref5) {\n      var pageIndex = _ref5.pageIndex,\n          intent = _ref5.intent;\n      return pdfManager.getPage(pageIndex).then(function (page) {\n        return page.getAnnotationsData(intent);\n      });\n    });\n    handler.on('RenderPageRequest', function wphSetupRenderPage(data) {\n      var pageIndex = data.pageIndex;\n      pdfManager.getPage(pageIndex).then(function (page) {\n        var task = new WorkerTask('RenderPageRequest: page ' + pageIndex);\n        startWorkerTask(task);\n        var pageNum = pageIndex + 1;\n        var start = Date.now();\n        page.getOperatorList({\n          handler: handler,\n          task: task,\n          intent: data.intent,\n          renderInteractiveForms: data.renderInteractiveForms\n        }).then(function (operatorList) {\n          finishWorkerTask(task);\n          (0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);\n        }, function (e) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n          var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';\n          var wrappedException;\n\n          if (typeof e === 'string') {\n            wrappedException = {\n              message: e,\n              stack: minimumStackMessage\n            };\n          } else if (_typeof(e) === 'object') {\n            wrappedException = {\n              message: e.message || e.toString(),\n              stack: e.stack || minimumStackMessage\n            };\n          } else {\n            wrappedException = {\n              message: 'Unknown exception type: ' + _typeof(e),\n              stack: minimumStackMessage\n            };\n          }\n\n          handler.send('PageError', {\n            pageNum: pageNum,\n            error: wrappedException,\n            intent: data.intent\n          });\n        });\n      });\n    }, this);\n    handler.on('GetTextContent', function wphExtractText(data, sink) {\n      var pageIndex = data.pageIndex;\n\n      sink.onPull = function (desiredSize) {};\n\n      sink.onCancel = function (reason) {};\n\n      pdfManager.getPage(pageIndex).then(function (page) {\n        var task = new WorkerTask('GetTextContent: page ' + pageIndex);\n        startWorkerTask(task);\n        var pageNum = pageIndex + 1;\n        var start = Date.now();\n        page.extractTextContent({\n          handler: handler,\n          task: task,\n          sink: sink,\n          normalizeWhitespace: data.normalizeWhitespace,\n          combineTextItems: data.combineTextItems\n        }).then(function () {\n          finishWorkerTask(task);\n          (0, _util.info)('text indexing: page=' + pageNum + ' - time=' + (Date.now() - start) + 'ms');\n          sink.close();\n        }, function (reason) {\n          finishWorkerTask(task);\n\n          if (task.terminated) {\n            return;\n          }\n\n          sink.error(reason);\n          throw reason;\n        });\n      });\n    });\n    handler.on('FontFallback', function (data) {\n      return pdfManager.fontFallback(data.id, handler);\n    });\n    handler.on('Cleanup', function wphCleanup(data) {\n      return pdfManager.cleanup();\n    });\n    handler.on('Terminate', function wphTerminate(data) {\n      terminated = true;\n\n      if (pdfManager) {\n        pdfManager.terminate();\n        pdfManager = null;\n      }\n\n      if (cancelXHRs) {\n        cancelXHRs();\n      }\n\n      var waitOn = [];\n      WorkerTasks.forEach(function (task) {\n        waitOn.push(task.finished);\n        task.terminate();\n      });\n      return Promise.all(waitOn).then(function () {\n        handler.destroy();\n        handler = null;\n      });\n    });\n    handler.on('Ready', function wphReady(data) {\n      setupDoc(docParams);\n      docParams = null;\n    });\n    return workerHandlerName;\n  },\n  initializeFromPort: function initializeFromPort(port) {\n    var handler = new _message_handler.MessageHandler('worker', 'main', port);\n    WorkerMessageHandler.setup(handler, port);\n    handler.send('ready', null);\n  }\n};\nexports.WorkerMessageHandler = WorkerMessageHandler;\n\nfunction isMessagePort(maybePort) {\n  return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;\n}\n\nif (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {\n  WorkerMessageHandler.initializeFromPort(self);\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(3);\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g = function () {\n  return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self;\n}() || Function(\"return this\")();\n\nvar hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\ng.regeneratorRuntime = undefined;\nmodule.exports = __w_pdfjs_require__(4);\n\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/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(module) {\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\n  if (runtime) {\n    if (inModule) {\n      module.exports = runtime;\n    }\n\n    return;\n  }\n\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n    return generator;\n  }\n\n  runtime.wrap = wrap;\n\n  function tryCatch(fn, obj, arg) {\n    try {\n      return {\n        type: \"normal\",\n        arg: fn.call(obj, arg)\n      };\n    } catch (err) {\n      return {\n        type: \"throw\",\n        arg: err\n      };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n  var ContinueSentinel = {};\n\n  function Generator() {}\n\n  function GeneratorFunction() {}\n\n  function GeneratorFunctionPrototype() {}\n\n  var IteratorPrototype = {};\n\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n  if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function (method) {\n      prototype[method] = function (arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  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\n  runtime.mark = function (genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  runtime.awrap = function (arg) {\n    return {\n      __await: arg\n    };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n\n        if (value && _typeof(value) === \"object\" && hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function (value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function (err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function (unwrapped) {\n          result.value = unwrapped;\n          resolve(result);\n        }, function (error) {\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function (resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n    }\n\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n\n  runtime.AsyncIterator = AsyncIterator;\n\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\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          context.sent = context._sent = context.arg;\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n        var record = tryCatch(innerFn, self, context);\n\n        if (record.type === \"normal\") {\n          state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n\n    if (method === undefined) {\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (!info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      context[delegate.resultName] = info.value;\n      context.next = delegate.nextLoc;\n\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n    } else {\n      return info;\n    }\n\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  defineIteratorMethods(Gp);\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  Gp[iteratorSymbol] = function () {\n    return this;\n  };\n\n  Gp.toString = function () {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = {\n      tryLoc: locs[0]\n    };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    this.tryEntries = [{\n      tryLoc: \"root\"\n    }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function (object) {\n    var keys = [];\n\n    for (var key in object) {\n      keys.push(key);\n    }\n\n    keys.reverse();\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1,\n            next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    return {\n      next: doneResult\n    };\n  }\n\n  runtime.values = values;\n\n  function doneResult() {\n    return {\n      value: undefined,\n      done: true\n    };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n    reset: function reset(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n      this.method = \"next\";\n      this.arg = undefined;\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n    stop: function stop() {\n      this.done = true;\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n    dispatchException: function dispatchException(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !!caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n    abrupt: function abrupt(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n    complete: function complete(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" || record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n    finish: function finish(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n    \"catch\": function _catch(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n\n          return thrown;\n        }\n      }\n\n      throw new Error(\"illegal catch attempt\");\n    },\n    delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n}(function () {\n  return this || (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) === \"object\" && self;\n}() || Function(\"return this\")());\n/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(5)(module)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (module) {\n  if (!module.webpackPolyfill) {\n    module.deprecate = function () {};\n\n    module.paths = [];\n    if (!module.children) module.children = [];\n    Object.defineProperty(module, \"loaded\", {\n      enumerable: true,\n      get: function get() {\n        return module.l;\n      }\n    });\n    Object.defineProperty(module, \"id\", {\n      enumerable: true,\n      get: function get() {\n        return module.i;\n      }\n    });\n    module.webpackPolyfill = 1;\n  }\n\n  return module;\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.toRomanNumerals = toRomanNumerals;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\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.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;\nObject.defineProperty(exports, \"ReadableStream\", {\n  enumerable: true,\n  get: function get() {\n    return _streams_polyfill.ReadableStream;\n  }\n});\nObject.defineProperty(exports, \"URL\", {\n  enumerable: true,\n  get: function get() {\n    return _url_polyfill.URL;\n  }\n});\nexports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = 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 = void 0;\n\n__w_pdfjs_require__(7);\n\nvar _streams_polyfill = __w_pdfjs_require__(147);\n\nvar _url_polyfill = __w_pdfjs_require__(149);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nvar FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nvar NativeImageDecoding = {\n  NONE: 'none',\n  DECODE: 'decode',\n  DISPLAY: 'display'\n};\nexports.NativeImageDecoding = NativeImageDecoding;\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};\nexports.PermissionFlag = PermissionFlag;\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};\nexports.TextRenderingMode = TextRenderingMode;\nvar ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\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};\nexports.AnnotationType = AnnotationType;\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};\nexports.AnnotationFlag = AnnotationFlag;\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};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nvar AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\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};\nexports.StreamType = StreamType;\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};\nexports.FontType = FontType;\nvar VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nvar CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\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};\nexports.OPS = OPS;\nvar UNSUPPORTED_FEATURES = {\n  unknown: 'unknown',\n  forms: 'forms',\n  javaScript: 'javaScript',\n  smask: 'smask',\n  shadingPattern: 'shadingPattern',\n  font: 'font'\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nvar PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nvar verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log('Info: ' + msg);\n  }\n}\n\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log('Warning: ' + msg);\n  }\n}\n\nfunction deprecated(details) {\n  console.log('Deprecated API usage: ' + details);\n}\n\nfunction unreachable(msg) {\n  throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n  if (!cond) {\n    unreachable(msg);\n  }\n}\n\nfunction isSameOrigin(baseUrl, otherUrl) {\n  try {\n    var base = new _url_polyfill.URL(baseUrl);\n\n    if (!base.origin || base.origin === 'null') {\n      return false;\n    }\n  } catch (e) {\n    return false;\n  }\n\n  var other = new _url_polyfill.URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n\n  switch (url.protocol) {\n    case 'http:':\n    case 'https:':\n    case 'ftp:':\n    case 'mailto:':\n    case 'tel:':\n      return true;\n\n    default:\n      return false;\n  }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl) {\n  if (!url) {\n    return null;\n  }\n\n  try {\n    var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);\n\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) {}\n\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, {\n    value: value,\n    enumerable: true,\n    configurable: true,\n    writable: false\n  });\n  return value;\n}\n\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\n    return lookup;\n  };\n}\n\nvar PasswordException = function PasswordExceptionClosure() {\n  function PasswordException(msg, code) {\n    this.name = 'PasswordException';\n    this.message = msg;\n    this.code = code;\n  }\n\n  PasswordException.prototype = new Error();\n  PasswordException.constructor = PasswordException;\n  return PasswordException;\n}();\n\nexports.PasswordException = PasswordException;\n\nvar UnknownErrorException = function UnknownErrorExceptionClosure() {\n  function UnknownErrorException(msg, details) {\n    this.name = 'UnknownErrorException';\n    this.message = msg;\n    this.details = details;\n  }\n\n  UnknownErrorException.prototype = new Error();\n  UnknownErrorException.constructor = UnknownErrorException;\n  return UnknownErrorException;\n}();\n\nexports.UnknownErrorException = UnknownErrorException;\n\nvar InvalidPDFException = function InvalidPDFExceptionClosure() {\n  function InvalidPDFException(msg) {\n    this.name = 'InvalidPDFException';\n    this.message = msg;\n  }\n\n  InvalidPDFException.prototype = new Error();\n  InvalidPDFException.constructor = InvalidPDFException;\n  return InvalidPDFException;\n}();\n\nexports.InvalidPDFException = InvalidPDFException;\n\nvar MissingPDFException = function MissingPDFExceptionClosure() {\n  function MissingPDFException(msg) {\n    this.name = 'MissingPDFException';\n    this.message = msg;\n  }\n\n  MissingPDFException.prototype = new Error();\n  MissingPDFException.constructor = MissingPDFException;\n  return MissingPDFException;\n}();\n\nexports.MissingPDFException = MissingPDFException;\n\nvar UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {\n  function UnexpectedResponseException(msg, status) {\n    this.name = 'UnexpectedResponseException';\n    this.message = msg;\n    this.status = status;\n  }\n\n  UnexpectedResponseException.prototype = new Error();\n  UnexpectedResponseException.constructor = UnexpectedResponseException;\n  return UnexpectedResponseException;\n}();\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nvar 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\n  MissingDataException.prototype = new Error();\n  MissingDataException.prototype.name = 'MissingDataException';\n  MissingDataException.constructor = MissingDataException;\n  return MissingDataException;\n}();\n\nexports.MissingDataException = MissingDataException;\n\nvar XRefEntryException = function XRefEntryExceptionClosure() {\n  function XRefEntryException(msg) {\n    this.message = msg;\n  }\n\n  XRefEntryException.prototype = new Error();\n  XRefEntryException.prototype.name = 'XRefEntryException';\n  XRefEntryException.constructor = XRefEntryException;\n  return XRefEntryException;\n}();\n\nexports.XRefEntryException = XRefEntryException;\n\nvar XRefParseException = function XRefParseExceptionClosure() {\n  function XRefParseException(msg) {\n    this.message = msg;\n  }\n\n  XRefParseException.prototype = new Error();\n  XRefParseException.prototype.name = 'XRefParseException';\n  XRefParseException.constructor = XRefParseException;\n  return XRefParseException;\n}();\n\nexports.XRefParseException = XRefParseException;\n\nvar FormatError = function FormatErrorClosure() {\n  function FormatError(msg) {\n    this.message = msg;\n  }\n\n  FormatError.prototype = new Error();\n  FormatError.prototype.name = 'FormatError';\n  FormatError.constructor = FormatError;\n  return FormatError;\n}();\n\nexports.FormatError = FormatError;\n\nvar AbortException = function AbortExceptionClosure() {\n  function AbortException(msg) {\n    this.name = 'AbortException';\n    this.message = msg;\n  }\n\n  AbortException.prototype = new Error();\n  AbortException.constructor = AbortException;\n  return AbortException;\n}();\n\nexports.AbortException = AbortException;\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n  if (typeof str !== 'string') {\n    warn('The argument for removeNullCharacters must be a string.');\n    return str;\n  }\n\n  return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n  assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');\n  var length = bytes.length;\n  var MAX_ARGUMENT_COUNT = 8192;\n\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n\n  var strBuf = [];\n\n  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    var chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n\n  return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n  var length = str.length;\n  var bytes = new Uint8Array(length);\n\n  for (var i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xFF;\n  }\n\n  return bytes;\n}\n\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n\n  assert(arr.byteLength !== undefined);\n  return arr.byteLength;\n}\n\nfunction arraysToBytes(arr) {\n  if (arr.length === 1 && arr[0] instanceof Uint8Array) {\n    return arr[0];\n  }\n\n  var resultLength = 0;\n  var i,\n      ii = arr.length;\n  var item, itemLength;\n\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n    itemLength = arrayByteLength(item);\n    resultLength += itemLength;\n  }\n\n  var pos = 0;\n  var data = new Uint8Array(resultLength);\n\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === 'string') {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n\n    itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n  return data[start] << 24 >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return data[offset] << 8 | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;\n}\n\nfunction isLittleEndian() {\n  var buffer8 = new Uint8Array(4);\n  buffer8[0] = 1;\n  var view32 = new Uint32Array(buffer8.buffer, 0, 1);\n  return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n  try {\n    new Function('');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nfunction getInheritableProperty(_ref) {\n  var dict = _ref.dict,\n      key = _ref.key,\n      _ref$getArray = _ref.getArray,\n      getArray = _ref$getArray === void 0 ? false : _ref$getArray,\n      _ref$stopWhenFound = _ref.stopWhenFound,\n      stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;\n  var LOOP_LIMIT = 100;\n  var loopCount = 0;\n  var values;\n\n  while (dict) {\n    var value = getArray ? dict.getArray(key) : dict.get(key);\n\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n\n      if (!values) {\n        values = [];\n      }\n\n      values.push(value);\n    }\n\n    if (++loopCount > LOOP_LIMIT) {\n      warn(\"getInheritableProperty: maximum loop count exceeded for \\\"\".concat(key, \"\\\"\"));\n      break;\n    }\n\n    dict = dict.get('Parent');\n  }\n\n  return values;\n}\n\nvar Util = function UtilClosure() {\n  function Util() {}\n\n  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {\n    rgbBuf[1] = r;\n    rgbBuf[3] = g;\n    rgbBuf[5] = b;\n    return rgbBuf.join('');\n  };\n\n  Util.transform = function Util_transform(m1, m2) {\n    return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n  };\n\n  Util.applyTransform = function Util_applyTransform(p, m) {\n    var xt = p[0] * m[0] + p[1] * m[2] + m[4];\n    var yt = p[0] * m[1] + p[1] * m[3] + m[5];\n    return [xt, yt];\n  };\n\n  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {\n    var d = m[0] * m[3] - m[1] * m[2];\n    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n    return [xt, yt];\n  };\n\n  Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {\n    var p1 = Util.applyTransform(r, m);\n    var p2 = Util.applyTransform(r.slice(2, 4), m);\n    var p3 = Util.applyTransform([r[0], r[3]], m);\n    var p4 = Util.applyTransform([r[2], r[1]], m);\n    return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n  };\n\n  Util.inverseTransform = function Util_inverseTransform(m) {\n    var d = m[0] * m[3] - m[1] * m[2];\n    return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  };\n\n  Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n    return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n  };\n\n  Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {\n    var transpose = [m[0], m[2], m[1], m[3]];\n    var a = m[0] * transpose[0] + m[1] * transpose[2];\n    var b = m[0] * transpose[1] + m[1] * transpose[3];\n    var c = m[2] * transpose[0] + m[3] * transpose[2];\n    var d = m[2] * transpose[1] + m[3] * transpose[3];\n    var first = (a + d) / 2;\n    var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;\n    var sx = first + second || 1;\n    var sy = first - second || 1;\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  };\n\n  Util.normalizeRect = function Util_normalizeRect(rect) {\n    var r = rect.slice(0);\n\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n\n    return r;\n  };\n\n  Util.intersect = function Util_intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),\n        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),\n        result = [];\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return false;\n    }\n\n    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return false;\n    }\n\n    return result;\n  };\n\n  return Util;\n}();\n\nexports.Util = Util;\nvar 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'];\n\nfunction toRomanNumerals(number) {\n  var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');\n  var pos,\n      romanBuf = [];\n\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push('M');\n  }\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}\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];\n\nfunction stringToPDFString(str) {\n  var i,\n      n = str.length,\n      strBuf = [];\n\n  if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n    for (i = 2; i < n; i += 2) {\n      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));\n    }\n  } else {\n    for (i = 0; i < n; ++i) {\n      var code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n\n  return strBuf.join('');\n}\n\nfunction stringToUTF8String(str) {\n  return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n  return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n  for (var key in obj) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction isBool(v) {\n  return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n  return typeof v === 'number';\n}\n\nfunction isString(v) {\n  return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n  return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;\n}\n\nfunction isSpace(ch) {\n  return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;\n}\n\nfunction createPromiseCapability() {\n  var capability = Object.create(null);\n  var isSettled = false;\n  Object.defineProperty(capability, 'settled', {\n    get: function get() {\n      return isSettled;\n    }\n  });\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = function (data) {\n      isSettled = true;\n      resolve(data);\n    };\n\n    capability.reject = function (reason) {\n      isSettled = true;\n      reject(reason);\n    };\n  });\n  return capability;\n}\n\nvar createObjectURL = function createObjectURLClosure() {\n  var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n  return function createObjectURL(data, contentType) {\n    var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {\n      var blob = new Blob([data], {\n        type: contentType\n      });\n      return _url_polyfill.URL.createObjectURL(blob);\n    }\n\n    var buffer = 'data:' + contentType + ';base64,';\n\n    for (var i = 0, ii = data.length; i < ii; i += 3) {\n      var b1 = data[i] & 0xFF;\n      var b2 = data[i + 1] & 0xFF;\n      var b3 = data[i + 2] & 0xFF;\n      var d1 = b1 >> 2,\n          d2 = (b1 & 3) << 4 | b2 >> 4;\n      var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;\n      var d4 = i + 2 < ii ? b3 & 0x3F : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n\n    return buffer;\n  };\n}();\n\nexports.createObjectURL = createObjectURL;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar globalScope = __w_pdfjs_require__(8);\n\nif (!globalScope._pdfjsCompatibilityChecked) {\n  globalScope._pdfjsCompatibilityChecked = true;\n\n  var isNodeJS = __w_pdfjs_require__(9);\n\n  var hasDOM = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object';\n\n  (function checkNodeBtoa() {\n    if (globalScope.btoa || !isNodeJS()) {\n      return;\n    }\n\n    globalScope.btoa = function (chars) {\n      return Buffer.from(chars, 'binary').toString('base64');\n    };\n  })();\n\n  (function checkNodeAtob() {\n    if (globalScope.atob || !isNodeJS()) {\n      return;\n    }\n\n    globalScope.atob = function (input) {\n      return Buffer.from(input, 'base64').toString('binary');\n    };\n  })();\n\n  (function checkChildNodeRemove() {\n    if (!hasDOM) {\n      return;\n    }\n\n    if (typeof Element.prototype.remove !== 'undefined') {\n      return;\n    }\n\n    Element.prototype.remove = function () {\n      if (this.parentNode) {\n        this.parentNode.removeChild(this);\n      }\n    };\n  })();\n\n  (function checkDOMTokenListAddRemove() {\n    if (!hasDOM || isNodeJS()) {\n      return;\n    }\n\n    var div = document.createElement('div');\n    div.classList.add('testOne', 'testTwo');\n\n    if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {\n      return;\n    }\n\n    var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n    var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n    DOMTokenList.prototype.add = function () {\n      for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {\n        tokens[_key] = arguments[_key];\n      }\n\n      for (var _i = 0; _i < tokens.length; _i++) {\n        var token = tokens[_i];\n        OriginalDOMTokenListAdd.call(this, token);\n      }\n    };\n\n    DOMTokenList.prototype.remove = function () {\n      for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        tokens[_key2] = arguments[_key2];\n      }\n\n      for (var _i2 = 0; _i2 < tokens.length; _i2++) {\n        var token = tokens[_i2];\n        OriginalDOMTokenListRemove.call(this, token);\n      }\n    };\n  })();\n\n  (function checkDOMTokenListToggle() {\n    if (!hasDOM || isNodeJS()) {\n      return;\n    }\n\n    var div = document.createElement('div');\n\n    if (div.classList.toggle('test', 0) === false) {\n      return;\n    }\n\n    DOMTokenList.prototype.toggle = function (token) {\n      var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);\n      return this[force ? 'add' : 'remove'](token), force;\n    };\n  })();\n\n  (function checkStringStartsWith() {\n    if (String.prototype.startsWith) {\n      return;\n    }\n\n    __w_pdfjs_require__(10);\n  })();\n\n  (function checkStringEndsWith() {\n    if (String.prototype.endsWith) {\n      return;\n    }\n\n    __w_pdfjs_require__(40);\n  })();\n\n  (function checkStringIncludes() {\n    if (String.prototype.includes) {\n      return;\n    }\n\n    __w_pdfjs_require__(42);\n  })();\n\n  (function checkArrayIncludes() {\n    if (Array.prototype.includes) {\n      return;\n    }\n\n    __w_pdfjs_require__(44);\n  })();\n\n  (function checkArrayFrom() {\n    if (Array.from) {\n      return;\n    }\n\n    __w_pdfjs_require__(51);\n  })();\n\n  (function checkObjectAssign() {\n    if (Object.assign) {\n      return;\n    }\n\n    __w_pdfjs_require__(74);\n  })();\n\n  (function checkMathLog2() {\n    if (Math.log2) {\n      return;\n    }\n\n    Math.log2 = __w_pdfjs_require__(79);\n  })();\n\n  (function checkNumberIsNaN() {\n    if (Number.isNaN) {\n      return;\n    }\n\n    Number.isNaN = __w_pdfjs_require__(81);\n  })();\n\n  (function checkNumberIsInteger() {\n    if (Number.isInteger) {\n      return;\n    }\n\n    Number.isInteger = __w_pdfjs_require__(83);\n  })();\n\n  (function checkPromise() {\n    if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) {\n      return;\n    }\n\n    globalScope.Promise = __w_pdfjs_require__(86);\n  })();\n\n  (function checkWeakMap() {\n    if (globalScope.WeakMap) {\n      return;\n    }\n\n    globalScope.WeakMap = __w_pdfjs_require__(106);\n  })();\n\n  (function checkWeakSet() {\n    if (globalScope.WeakSet) {\n      return;\n    }\n\n    globalScope.WeakSet = __w_pdfjs_require__(123);\n  })();\n\n  (function checkStringCodePointAt() {\n    if (String.codePointAt) {\n      return;\n    }\n\n    String.codePointAt = __w_pdfjs_require__(127);\n  })();\n\n  (function checkStringFromCodePoint() {\n    if (String.fromCodePoint) {\n      return;\n    }\n\n    String.fromCodePoint = __w_pdfjs_require__(129);\n  })();\n\n  (function checkSymbol() {\n    if (globalScope.Symbol) {\n      return;\n    }\n\n    __w_pdfjs_require__(131);\n  })();\n\n  (function checkStringPadStart() {\n    if (String.prototype.padStart) {\n      return;\n    }\n\n    __w_pdfjs_require__(138);\n  })();\n\n  (function checkStringPadEnd() {\n    if (String.prototype.padEnd) {\n      return;\n    }\n\n    __w_pdfjs_require__(142);\n  })();\n\n  (function checkObjectValues() {\n    if (Object.values) {\n      return;\n    }\n\n    Object.values = __w_pdfjs_require__(144);\n  })();\n}\n\n/***/ }),\n/* 8 */\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/* 9 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function isNodeJS() {\n  return (typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'];\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(11);\n\nmodule.exports = __w_pdfjs_require__(14).String.startsWith;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar context = __w_pdfjs_require__(32);\n\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(39)(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString) {\n    var that = context(this, searchString, STARTS_WITH);\n    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n    var search = String(searchString);\n    return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;\n  }\n});\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar core = __w_pdfjs_require__(14);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar PROTOTYPE = 'prototype';\n\nvar $export = function $export(type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n\n  for (key in source) {\n    own = !IS_FORCED && target && target[key] !== undefined;\n    out = (own ? target : source)[key];\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    if (target) redefine(target, key, out, type & $export.U);\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\n\nglobal.core = core;\n$export.F = 1;\n$export.G = 2;\n$export.S = 4;\n$export.P = 8;\n$export.B = 16;\n$export.W = 32;\n$export.U = 64;\n$export.R = 128;\nmodule.exports = $export;\n\n/***/ }),\n/* 13 */\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/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = module.exports = {\n  version: '2.6.2'\n};\nif (typeof __e == 'number') __e = core;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(16);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nmodule.exports = __w_pdfjs_require__(20) ? 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/* 16 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(19);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(20) ? 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/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nmodule.exports = function (it) {\n  return _typeof(it) === 'object' ? it !== null : typeof it === 'function';\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(20) && !__w_pdfjs_require__(21)(function () {\n  return Object.defineProperty(__w_pdfjs_require__(22)('div'), 'a', {\n    get: function get() {\n      return 7;\n    }\n  }).a != 7;\n});\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(21)(function () {\n  return Object.defineProperty({}, 'a', {\n    get: function get() {\n      return 7;\n    }\n  }).a != 7;\n});\n\n/***/ }),\n/* 21 */\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/* 22 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar document = __w_pdfjs_require__(13).document;\n\nvar is = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it, S) {\n  if (!isObject(it)) return it;\n  var fn, val;\n  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n\n/***/ }),\n/* 24 */\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/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar has = __w_pdfjs_require__(26);\n\nvar SRC = __w_pdfjs_require__(27)('src');\n\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__w_pdfjs_require__(14).inspectSource = function (it) {\n  return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n  var isFunction = typeof val == 'function';\n  if (isFunction) has(val, 'name') || hide(val, 'name', key);\n  if (O[key] === val) return;\n  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n\n  if (O === global) {\n    O[key] = val;\n  } else if (!safe) {\n    delete O[key];\n    hide(O, key, val);\n  } else if (O[key]) {\n    O[key] = val;\n  } else {\n    hide(O, key, val);\n  }\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar id = 0;\nvar px = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(29);\n\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n\n  switch (length) {\n    case 1:\n      return function (a) {\n        return fn.call(that, a);\n      };\n\n    case 2:\n      return function (a, b) {\n        return fn.call(that, a, b);\n      };\n\n    case 3:\n      return function (a, b, c) {\n        return fn.call(that, a, b, c);\n      };\n  }\n\n  return function () {\n    return fn.apply(that, arguments);\n  };\n};\n\n/***/ }),\n/* 29 */\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/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar min = Math.min;\n\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(33);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (that, searchString, NAME) {\n  if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n  return String(defined(that));\n};\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar cof = __w_pdfjs_require__(34);\n\nvar MATCH = __w_pdfjs_require__(35)('match');\n\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(36)('wks');\n\nvar uid = __w_pdfjs_require__(27);\n\nvar _Symbol = __w_pdfjs_require__(13).Symbol;\n\nvar USE_SYMBOL = typeof _Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(14);\n\nvar global = __w_pdfjs_require__(13);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: __w_pdfjs_require__(37) ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 38 */\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/* 39 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(35)('match');\n\nmodule.exports = function (KEY) {\n  var re = /./;\n\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) {}\n  }\n\n  return true;\n};\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(41);\n\nmodule.exports = __w_pdfjs_require__(14).String.endsWith;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar context = __w_pdfjs_require__(32);\n\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n$export($export.P + $export.F * __w_pdfjs_require__(39)(ENDS_WITH), 'String', {\n  endsWith: function endsWith(searchString) {\n    var that = context(this, searchString, ENDS_WITH);\n    var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n    var len = toLength(that.length);\n    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n    var search = String(searchString);\n    return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;\n  }\n});\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(43);\n\nmodule.exports = __w_pdfjs_require__(14).String.includes;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar context = __w_pdfjs_require__(32);\n\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(39)(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/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(45);\n\nmodule.exports = __w_pdfjs_require__(14).Array.includes;\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $includes = __w_pdfjs_require__(46)(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\n__w_pdfjs_require__(50)('includes');\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(49);\n\nmodule.exports = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      if (value != value) return true;\n    } else for (; length > index; index++) {\n      if (IS_INCLUDES || index in O) {\n        if (O[index] === el) return IS_INCLUDES || index || 0;\n      }\n    }\n    return !IS_INCLUDES && -1;\n  };\n};\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar max = Math.max;\nvar min = Math.min;\n\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(35)('unscopables');\n\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(15)(ArrayProto, UNSCOPABLES, {});\n\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(52);\n\n__w_pdfjs_require__(67);\n\nmodule.exports = __w_pdfjs_require__(14).Array.from;\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(53)(true);\n\n__w_pdfjs_require__(54)(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/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (TO_STRING) {\n  return function (that, pos) {\n    var s = String(defined(that));\n    var i = toInteger(pos);\n    var l = s.length;\n    var a, b;\n    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n    a = s.charCodeAt(i);\n    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar $iterCreate = __w_pdfjs_require__(56);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar getPrototypeOf = __w_pdfjs_require__(65);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar BUGGY = !([].keys && 'next' in [].keys());\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function returnThis() {\n  return this;\n};\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n\n  var getMethod = function getMethod(kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n\n    switch (kind) {\n      case KEYS:\n        return function keys() {\n          return new Constructor(this, kind);\n        };\n\n      case VALUES:\n        return function values() {\n          return new Constructor(this, kind);\n        };\n    }\n\n    return function entries() {\n      return new Constructor(this, kind);\n    };\n  };\n\n  var TAG = NAME + ' Iterator';\n  var DEF_VALUES = DEFAULT == VALUES;\n  var VALUES_BUG = false;\n  var proto = Base.prototype;\n  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n  var $default = $native || getMethod(DEFAULT);\n  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n  var methods, key, IteratorPrototype;\n\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      setToStringTag(IteratorPrototype, TAG, true);\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n\n    $default = function values() {\n      return $native.call(this);\n    };\n  }\n\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n\n  return methods;\n};\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(57);\n\nvar descriptor = __w_pdfjs_require__(24);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar IteratorPrototype = {};\n\n__w_pdfjs_require__(15)(IteratorPrototype, __w_pdfjs_require__(35)('iterator'), function () {\n  return this;\n});\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, {\n    next: descriptor(1, next)\n  });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar dPs = __w_pdfjs_require__(58);\n\nvar enumBugKeys = __w_pdfjs_require__(62);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nvar Empty = function Empty() {};\n\nvar PROTOTYPE = 'prototype';\n\nvar _createDict = function createDict() {\n  var iframe = __w_pdfjs_require__(22)('iframe');\n\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n\n  __w_pdfjs_require__(63).appendChild(iframe);\n\n  iframe.src = 'javascript:';\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  _createDict = iframeDocument.F;\n\n  while (i--) {\n    delete _createDict[PROTOTYPE][enumBugKeys[i]];\n  }\n\n  return _createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    result[IE_PROTO] = O;\n  } else result = _createDict();\n\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(16);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar getKeys = __w_pdfjs_require__(59);\n\nmodule.exports = __w_pdfjs_require__(20) ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n\n  while (length > i) {\n    dP.f(O, P = keys[i++], Properties[P]);\n  }\n\n  return O;\n};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(60);\n\nvar enumBugKeys = __w_pdfjs_require__(62);\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(26);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar arrayIndexOf = __w_pdfjs_require__(46)(false);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n\n  for (key in O) {\n    if (key != IE_PROTO) has(O, key) && result.push(key);\n  }\n\n  while (names.length > i) {\n    if (has(O, key = names[i++])) {\n      ~arrayIndexOf(result, key) || result.push(key);\n    }\n  }\n\n  return result;\n};\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(36)('keys');\n\nvar uid = __w_pdfjs_require__(27);\n\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 62 */\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/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(13).document;\n\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(16).f;\n\nvar has = __w_pdfjs_require__(26);\n\nvar TAG = __w_pdfjs_require__(35)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n    configurable: true,\n    value: tag\n  });\n};\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(26);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar IE_PROTO = __w_pdfjs_require__(61)('IE_PROTO');\n\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n  O = toObject(O);\n  if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  }\n\n  return O instanceof Object ? ObjectProto : null;\n};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar call = __w_pdfjs_require__(68);\n\nvar isArrayIter = __w_pdfjs_require__(69);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar createProperty = __w_pdfjs_require__(70);\n\nvar getIterFn = __w_pdfjs_require__(71);\n\n$export($export.S + $export.F * !__w_pdfjs_require__(73)(function (iter) {\n  Array.from(iter);\n}), 'Array', {\n  from: function from(arrayLike) {\n    var O = toObject(arrayLike);\n    var C = typeof this == 'function' ? this : Array;\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var index = 0;\n    var iterFn = getIterFn(O);\n    var length, result, step, iterator;\n    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n\n    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n      }\n    } else {\n      length = toLength(O.length);\n\n      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n\n    result.length = index;\n    return result;\n  }\n});\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $defineProperty = __w_pdfjs_require__(16);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;\n};\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(72);\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar Iterators = __w_pdfjs_require__(55);\n\nmodule.exports = __w_pdfjs_require__(14).getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nvar TAG = __w_pdfjs_require__(35)('toStringTag');\n\nvar ARG = cof(function () {\n  return arguments;\n}()) == 'Arguments';\n\nvar tryGet = function tryGet(it, key) {\n  try {\n    return it[key];\n  } catch (e) {}\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(35)('iterator');\n\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n\n  riter['return'] = function () {\n    SAFE_CLOSING = true;\n  };\n\n  Array.from(riter, function () {\n    throw 2;\n  });\n} catch (e) {}\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n\n    iter.next = function () {\n      return {\n        done: safe = true\n      };\n    };\n\n    arr[ITERATOR] = function () {\n      return iter;\n    };\n\n    exec(arr);\n  } catch (e) {}\n\n  return safe;\n};\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(75);\n\nmodule.exports = __w_pdfjs_require__(14).Object.assign;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S + $export.F, 'Object', {\n  assign: __w_pdfjs_require__(76)\n});\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar gOPS = __w_pdfjs_require__(77);\n\nvar pIE = __w_pdfjs_require__(78);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar $assign = Object.assign;\nmodule.exports = !$assign || __w_pdfjs_require__(21)(function () {\n  var A = {};\n  var B = {};\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) {\n    B[k] = k;\n  });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) {\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n\n    while (length > j) {\n      if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n    }\n  }\n\n  return T;\n} : $assign;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(80);\n\nmodule.exports = __w_pdfjs_require__(14).Math.log2;\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Math', {\n  log2: function log2(x) {\n    return Math.log(x) / Math.LN2;\n  }\n});\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(82);\n\nmodule.exports = __w_pdfjs_require__(14).Number.isNaN;\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number) {\n    return number != number;\n  }\n});\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(84);\n\nmodule.exports = __w_pdfjs_require__(14).Number.isInteger;\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\n$export($export.S, 'Number', {\n  isInteger: __w_pdfjs_require__(85)\n});\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar floor = Math.floor;\n\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(52);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(91);\n\n__w_pdfjs_require__(104);\n\n__w_pdfjs_require__(105);\n\nmodule.exports = __w_pdfjs_require__(14).Promise;\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(72);\n\nvar test = {};\ntest[__w_pdfjs_require__(35)('toStringTag')] = 'z';\n\nif (test + '' != '[object z]') {\n  __w_pdfjs_require__(25)(Object.prototype, 'toString', function toString() {\n    return '[object ' + classof(this) + ']';\n  }, true);\n}\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(89);\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar global = __w_pdfjs_require__(13);\n\nvar hide = __w_pdfjs_require__(15);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar wks = __w_pdfjs_require__(35);\n\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\nvar DOMIterables = {\n  CSSRuleList: true,\n  CSSStyleDeclaration: false,\n  CSSValueList: false,\n  ClientRectList: false,\n  DOMRectList: false,\n  DOMStringList: false,\n  DOMTokenList: true,\n  DataTransferItemList: false,\n  FileList: false,\n  HTMLAllCollection: false,\n  HTMLCollection: false,\n  HTMLFormElement: false,\n  HTMLSelectElement: false,\n  MediaList: true,\n  MimeTypeArray: false,\n  NamedNodeMap: false,\n  NodeList: true,\n  PaintRequestList: false,\n  Plugin: false,\n  PluginArray: false,\n  SVGLengthList: false,\n  SVGNumberList: false,\n  SVGPathSegList: false,\n  SVGPointList: false,\n  SVGStringList: false,\n  SVGTransformList: false,\n  SourceBufferList: false,\n  StyleSheetList: true,\n  TextTrackCueList: false,\n  TextTrackList: false,\n  TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n  var NAME = collections[i];\n  var explicit = DOMIterables[NAME];\n  var Collection = global[NAME];\n  var proto = Collection && Collection.prototype;\n  var key;\n\n  if (proto) {\n    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n    Iterators[NAME] = ArrayValues;\n    if (explicit) for (key in $iterators) {\n      if (!proto[key]) redefine(proto, key, $iterators[key], true);\n    }\n  }\n}\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(50);\n\nvar step = __w_pdfjs_require__(90);\n\nvar Iterators = __w_pdfjs_require__(55);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nmodule.exports = __w_pdfjs_require__(54)(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated);\n  this._i = 0;\n  this._k = kind;\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n/***/ }),\n/* 90 */\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/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar global = __w_pdfjs_require__(13);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar classof = __w_pdfjs_require__(72);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar speciesConstructor = __w_pdfjs_require__(94);\n\nvar task = __w_pdfjs_require__(95).set;\n\nvar microtask = __w_pdfjs_require__(97)();\n\nvar newPromiseCapabilityModule = __w_pdfjs_require__(98);\n\nvar perform = __w_pdfjs_require__(99);\n\nvar userAgent = __w_pdfjs_require__(100);\n\nvar promiseResolve = __w_pdfjs_require__(101);\n\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\n\nvar empty = function empty() {};\n\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n  try {\n    var promise = $Promise.resolve(1);\n\n    var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(35)('species')] = function (exec) {\n      exec(empty, empty);\n    };\n\n    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) {}\n}();\n\nvar isThenable = function isThenable(it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function notify(promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n\n    var run = function run(reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n\n          if (handler === true) result = value;else {\n            if (domain) domain.enter();\n            result = handler(value);\n\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n\n    while (chain.length > i) {\n      run(chain[i++]);\n    }\n\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\n\nvar onUnhandled = function onUnhandled(promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({\n            promise: promise,\n            reason: value\n          });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    }\n\n    promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\n\nvar isUnhandled = function isUnhandled(promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\n\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n  task.call(global, function () {\n    var handler;\n\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({\n        promise: promise,\n        reason: promise._v\n      });\n    }\n  });\n};\n\nvar $reject = function $reject(value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise;\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\n\nvar $resolve = function $resolve(value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise;\n\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = {\n          _w: promise,\n          _d: false\n        };\n\n        try {\n          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n        } catch (e) {\n          $reject.call(wrapper, e);\n        }\n      });\n    } else {\n      promise._v = value;\n      promise._s = 1;\n      notify(promise, false);\n    }\n  } catch (e) {\n    $reject.call({\n      _w: promise,\n      _d: false\n    }, e);\n  }\n};\n\nif (!USE_NATIVE) {\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n\n  Internal = function Promise(executor) {\n    this._c = [];\n    this._a = undefined;\n    this._s = 0;\n    this._d = false;\n    this._v = undefined;\n    this._h = 0;\n    this._n = false;\n  };\n\n  Internal.prototype = __w_pdfjs_require__(102)($Promise.prototype, {\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n\n      this._c.push(reaction);\n\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    'catch': function _catch(onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n\n  OwnPromiseCapability = function OwnPromiseCapability() {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n\n  newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n    return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n  Promise: $Promise\n});\n\n__w_pdfjs_require__(64)($Promise, PROMISE);\n\n__w_pdfjs_require__(103)(PROMISE);\n\nWrapper = __w_pdfjs_require__(14)[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__(73)(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/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n    throw TypeError(name + ': incorrect invocation!');\n  }\n\n  return it;\n};\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar call = __w_pdfjs_require__(68);\n\nvar isArrayIter = __w_pdfjs_require__(69);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar getIterFn = __w_pdfjs_require__(71);\n\nvar BREAK = {};\nvar RETURN = {};\n\nvar _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () {\n    return iterable;\n  } : getIterFn(iterable);\n  var f = ctx(fn, that, entries ? 2 : 1);\n  var index = 0;\n  var length, step, iterator, result;\n  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n    if (result === BREAK || result === RETURN) return result;\n  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n    result = call(iterator, f, step.value, entries);\n    if (result === BREAK || result === RETURN) return result;\n  }\n};\n\n_exports.BREAK = BREAK;\n_exports.RETURN = RETURN;\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar invoke = __w_pdfjs_require__(96);\n\nvar html = __w_pdfjs_require__(63);\n\nvar cel = __w_pdfjs_require__(22);\n\nvar global = __w_pdfjs_require__(13);\n\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function run() {\n  var id = +this;\n\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\n\nvar listener = function listener(event) {\n  run.call(event.data);\n};\n\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n\n    while (arguments.length > i) {\n      args.push(arguments[i++]);\n    }\n\n    queue[++counter] = function () {\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n\n    defer(counter);\n    return counter;\n  };\n\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n\n  if (__w_pdfjs_require__(34)(process) == 'process') {\n    defer = function defer(id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  } else if (Dispatch && Dispatch.now) {\n    defer = function defer(id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function defer(id) {\n      global.postMessage(id + '', '*');\n    };\n\n    global.addEventListener('message', listener, false);\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function defer(id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  } else {\n    defer = function defer(id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\n\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n\n  switch (args.length) {\n    case 0:\n      return un ? fn() : fn.call(that);\n\n    case 1:\n      return un ? fn(args[0]) : fn.call(that, args[0]);\n\n    case 2:\n      return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n\n    case 3:\n      return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n\n    case 4:\n      return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n  }\n\n  return fn.apply(that, args);\n};\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar macrotask = __w_pdfjs_require__(95).set;\n\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(34)(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function flush() {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();else last = undefined;\n        throw e;\n      }\n    }\n\n    last = undefined;\n    if (parent) parent.enter();\n  };\n\n  if (isNode) {\n    notify = function notify() {\n      process.nextTick(flush);\n    };\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, {\n      characterData: true\n    });\n\n    notify = function notify() {\n      node.data = toggle = !toggle;\n    };\n  } else if (Promise && Promise.resolve) {\n    var promise = Promise.resolve(undefined);\n\n    notify = function notify() {\n      promise.then(flush);\n    };\n  } else {\n    notify = function notify() {\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = {\n      fn: fn,\n      next: undefined\n    };\n    if (last) last.next = task;\n\n    if (!head) {\n      head = task;\n      notify();\n    }\n\n    last = task;\n  };\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(29);\n\nfunction PromiseCapability(C) {\n  var resolve, reject;\n  this.promise = new C(function ($$resolve, $$reject) {\n    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n    resolve = $$resolve;\n    reject = $$reject;\n  });\n  this.resolve = aFunction(resolve);\n  this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n  return new PromiseCapability(C);\n};\n\n/***/ }),\n/* 99 */\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/* 100 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar newPromiseCapability = __w_pdfjs_require__(98);\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(25);\n\nmodule.exports = function (target, src, safe) {\n  for (var key in src) {\n    redefine(target, key, src[key], safe);\n  }\n\n  return target;\n};\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar dP = __w_pdfjs_require__(16);\n\nvar DESCRIPTORS = __w_pdfjs_require__(20);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (KEY) {\n  var C = global[KEY];\n  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n    configurable: true,\n    get: function get() {\n      return this;\n    }\n  });\n};\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar core = __w_pdfjs_require__(14);\n\nvar global = __w_pdfjs_require__(13);\n\nvar speciesConstructor = __w_pdfjs_require__(94);\n\nvar promiseResolve = __w_pdfjs_require__(101);\n\n$export($export.P + $export.R, 'Promise', {\n  'finally': function _finally(onFinally) {\n    var C = speciesConstructor(this, core.Promise || global.Promise);\n    var isFunction = typeof onFinally == 'function';\n    return this.then(isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () {\n        return x;\n      });\n    } : onFinally, isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () {\n        throw e;\n      });\n    } : onFinally);\n  }\n});\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar newPromiseCapability = __w_pdfjs_require__(98);\n\nvar perform = __w_pdfjs_require__(99);\n\n$export($export.S, 'Promise', {\n  'try': function _try(callbackfn) {\n    var promiseCapability = newPromiseCapability.f(this);\n    var result = perform(callbackfn);\n    (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n    return promiseCapability.promise;\n  }\n});\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(107);\n\n__w_pdfjs_require__(119);\n\n__w_pdfjs_require__(121);\n\nmodule.exports = __w_pdfjs_require__(14).WeakMap;\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar each = __w_pdfjs_require__(108)(0);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar meta = __w_pdfjs_require__(112);\n\nvar assign = __w_pdfjs_require__(76);\n\nvar weak = __w_pdfjs_require__(113);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar fails = __w_pdfjs_require__(21);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function wrapper(get) {\n  return function WeakMap() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n};\n\nvar methods = {\n  get: function get(key) {\n    if (isObject(key)) {\n      var data = getWeak(key);\n      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n      return data ? data[this._i] : undefined;\n    }\n  },\n  set: function set(key, value) {\n    return weak.def(validate(this, WEAK_MAP), key, value);\n  }\n};\n\nvar $WeakMap = module.exports = __w_pdfjs_require__(115)(WEAK_MAP, wrapper, methods, weak, true, true);\n\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\n        var result = this._f[key](a, b);\n\n        return key == 'set' ? this : result;\n      }\n\n      return method.call(this, a, b);\n    });\n  });\n}\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar IObject = __w_pdfjs_require__(48);\n\nvar toObject = __w_pdfjs_require__(66);\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar asc = __w_pdfjs_require__(109);\n\nmodule.exports = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || asc;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IObject(O);\n    var f = ctx(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n\n    for (; length > index; index++) {\n      if (NO_HOLES || index in self) {\n        val = self[index];\n        res = f(val, index, O);\n\n        if (TYPE) {\n          if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {\n            case 3:\n              return true;\n\n            case 5:\n              return val;\n\n            case 6:\n              return index;\n\n            case 2:\n              result.push(val);\n          } else if (IS_EVERY) return false;\n        }\n      }\n    }\n\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(110);\n\nmodule.exports = function (original, length) {\n  return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar isArray = __w_pdfjs_require__(111);\n\nvar SPECIES = __w_pdfjs_require__(35)('species');\n\nmodule.exports = function (original) {\n  var C;\n\n  if (isArray(original)) {\n    C = original.constructor;\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n\n    if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  }\n\n  return C === undefined ? Array : C;\n};\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(34);\n\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar META = __w_pdfjs_require__(27)('meta');\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar has = __w_pdfjs_require__(26);\n\nvar setDesc = __w_pdfjs_require__(16).f;\n\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\n\nvar FREEZE = !__w_pdfjs_require__(21)(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\n\nvar setMeta = function setMeta(it) {\n  setDesc(it, META, {\n    value: {\n      i: 'O' + ++id,\n      w: {}\n    }\n  });\n};\n\nvar fastKey = function fastKey(it, create) {\n  if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n\n  if (!has(it, META)) {\n    if (!isExtensible(it)) return 'F';\n    if (!create) return 'E';\n    setMeta(it);\n  }\n\n  return it[META].i;\n};\n\nvar getWeak = function getWeak(it, create) {\n  if (!has(it, META)) {\n    if (!isExtensible(it)) return true;\n    if (!create) return false;\n    setMeta(it);\n  }\n\n  return it[META].w;\n};\n\nvar onFreeze = function onFreeze(it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\n\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(102);\n\nvar getWeak = __w_pdfjs_require__(112).getWeak;\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar createArrayMethod = __w_pdfjs_require__(108);\n\nvar $has = __w_pdfjs_require__(26);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\nvar uncaughtFrozenStore = function uncaughtFrozenStore(that) {\n  return that._l || (that._l = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function UncaughtFrozenStore() {\n  this.a = [];\n};\n\nvar findUncaughtFrozen = function findUncaughtFrozen(store, key) {\n  return arrayFind(store.a, function (it) {\n    return it[0] === key;\n  });\n};\n\nUncaughtFrozenStore.prototype = {\n  get: function get(key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function has(key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function set(key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;else this.a.push([key, value]);\n  },\n  'delete': function _delete(key) {\n    var index = arrayFindIndex(this.a, function (it) {\n      return it[0] === key;\n    });\n    if (~index) this.a.splice(index, 1);\n    return !!~index;\n  }\n};\nmodule.exports = {\n  getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;\n      that._i = id++;\n      that._l = undefined;\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      'delete': function _delete(key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n        return data && $has(data, this._i) && delete data[this._i];\n      },\n      has: function has(key) {\n        if (!isObject(key)) return false;\n        var data = getWeak(key);\n        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n        return data && $has(data, this._i);\n      }\n    });\n    return C;\n  },\n  def: function def(that, key, value) {\n    var data = getWeak(anObject(key), true);\n    if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;\n    return that;\n  },\n  ufstore: uncaughtFrozenStore\n};\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar redefineAll = __w_pdfjs_require__(102);\n\nvar meta = __w_pdfjs_require__(112);\n\nvar forOf = __w_pdfjs_require__(93);\n\nvar anInstance = __w_pdfjs_require__(92);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar fails = __w_pdfjs_require__(21);\n\nvar $iterDetect = __w_pdfjs_require__(73);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar inheritIfRequired = __w_pdfjs_require__(116);\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n  var Base = global[NAME];\n  var C = Base;\n  var ADDER = IS_MAP ? 'set' : 'add';\n  var proto = C && C.prototype;\n  var O = {};\n\n  var fixMethod = function fixMethod(KEY) {\n    var fn = proto[KEY];\n    redefine(proto, KEY, KEY == 'delete' ? function (a) {\n      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'has' ? function has(a) {\n      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'get' ? function get(a) {\n      return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n    } : KEY == 'add' ? function add(a) {\n      fn.call(this, a === 0 ? 0 : a);\n      return this;\n    } : function set(a, b) {\n      fn.call(this, a === 0 ? 0 : a, b);\n      return this;\n    });\n  };\n\n  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n    redefineAll(C.prototype, methods);\n    meta.NEED = true;\n  } else {\n    var instance = new C();\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    var THROWS_ON_PRIMITIVES = fails(function () {\n      instance.has(1);\n    });\n    var ACCEPT_ITERABLES = $iterDetect(function (iter) {\n      new C(iter);\n    });\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      var $instance = new C();\n      var index = 5;\n\n      while (index--) {\n        $instance[ADDER](index, index);\n      }\n\n      return !$instance.has(-0);\n    });\n\n    if (!ACCEPT_ITERABLES) {\n      C = wrapper(function (target, iterable) {\n        anInstance(target, C, NAME);\n        var that = inheritIfRequired(new Base(), target, C);\n        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n        return that;\n      });\n      C.prototype = proto;\n      proto.constructor = C;\n    }\n\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n    if (IS_WEAK && proto.clear) delete proto.clear;\n  }\n\n  setToStringTag(C, NAME);\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F * (C != Base), O);\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n  return C;\n};\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar setPrototypeOf = __w_pdfjs_require__(117).set;\n\nmodule.exports = function (that, target, C) {\n  var S = target.constructor;\n  var P;\n\n  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n    setPrototypeOf(that, P);\n  }\n\n  return that;\n};\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar check = function check(O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\n\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {\n    try {\n      set = __w_pdfjs_require__(28)(Function.call, __w_pdfjs_require__(118).f(Object.prototype, '__proto__').set, 2);\n      set(test, []);\n      buggy = !(test instanceof Array);\n    } catch (e) {\n      buggy = true;\n    }\n\n    return function setPrototypeOf(O, proto) {\n      check(O, proto);\n      if (buggy) O.__proto__ = proto;else set(O, proto);\n      return O;\n    };\n  }({}, false) : undefined),\n  check: check\n};\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(78);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar has = __w_pdfjs_require__(26);\n\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(19);\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(20) ? 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/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(120)('WeakMap');\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, {\n    of: function of() {\n      var length = arguments.length;\n      var A = new Array(length);\n\n      while (length--) {\n        A[length] = arguments[length];\n      }\n\n      return new this(A);\n    }\n  });\n};\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(122)('WeakMap');\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar aFunction = __w_pdfjs_require__(29);\n\nvar ctx = __w_pdfjs_require__(28);\n\nvar forOf = __w_pdfjs_require__(93);\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, {\n    from: function from(source) {\n      var mapFn = arguments[1];\n      var mapping, A, n, cb;\n      aFunction(this);\n      mapping = mapFn !== undefined;\n      if (mapping) aFunction(mapFn);\n      if (source == undefined) return new this();\n      A = [];\n\n      if (mapping) {\n        n = 0;\n        cb = ctx(mapFn, arguments[2], 2);\n        forOf(source, false, function (nextItem) {\n          A.push(cb(nextItem, n++));\n        });\n      } else {\n        forOf(source, false, A.push, A);\n      }\n\n      return new this(A);\n    }\n  });\n};\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(87);\n\n__w_pdfjs_require__(88);\n\n__w_pdfjs_require__(124);\n\n__w_pdfjs_require__(125);\n\n__w_pdfjs_require__(126);\n\nmodule.exports = __w_pdfjs_require__(14).WeakSet;\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar weak = __w_pdfjs_require__(113);\n\nvar validate = __w_pdfjs_require__(114);\n\nvar WEAK_SET = 'WeakSet';\n\n__w_pdfjs_require__(115)(WEAK_SET, function (get) {\n  return function WeakSet() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n}, {\n  add: function add(value) {\n    return weak.def(validate(this, WEAK_SET), value, true);\n  }\n}, weak, false, true);\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(120)('WeakSet');\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(122)('WeakSet');\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(128);\n\nmodule.exports = __w_pdfjs_require__(14).String.codePointAt;\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $at = __w_pdfjs_require__(53)(false);\n\n$export($export.P, 'String', {\n  codePointAt: function codePointAt(pos) {\n    return $at(this, pos);\n  }\n});\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(130);\n\nmodule.exports = __w_pdfjs_require__(14).String.fromCodePoint;\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar toAbsoluteIndex = __w_pdfjs_require__(49);\n\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  fromCodePoint: function fromCodePoint(x) {\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));\n    }\n\n    return res.join('');\n  }\n});\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(132);\n\n__w_pdfjs_require__(87);\n\nmodule.exports = __w_pdfjs_require__(14).Symbol;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar global = __w_pdfjs_require__(13);\n\nvar has = __w_pdfjs_require__(26);\n\nvar DESCRIPTORS = __w_pdfjs_require__(20);\n\nvar $export = __w_pdfjs_require__(12);\n\nvar redefine = __w_pdfjs_require__(25);\n\nvar META = __w_pdfjs_require__(112).KEY;\n\nvar $fails = __w_pdfjs_require__(21);\n\nvar shared = __w_pdfjs_require__(36);\n\nvar setToStringTag = __w_pdfjs_require__(64);\n\nvar uid = __w_pdfjs_require__(27);\n\nvar wks = __w_pdfjs_require__(35);\n\nvar wksExt = __w_pdfjs_require__(133);\n\nvar wksDefine = __w_pdfjs_require__(134);\n\nvar enumKeys = __w_pdfjs_require__(135);\n\nvar isArray = __w_pdfjs_require__(111);\n\nvar anObject = __w_pdfjs_require__(17);\n\nvar isObject = __w_pdfjs_require__(18);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar toPrimitive = __w_pdfjs_require__(23);\n\nvar createDesc = __w_pdfjs_require__(24);\n\nvar _create = __w_pdfjs_require__(57);\n\nvar gOPNExt = __w_pdfjs_require__(136);\n\nvar $GOPD = __w_pdfjs_require__(118);\n\nvar $DP = __w_pdfjs_require__(16);\n\nvar $keys = __w_pdfjs_require__(59);\n\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\n\nvar _stringify = $JSON && $JSON.stringify;\n\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function get() {\n      return dP(this, 'a', {\n        value: 7\n      }).a;\n    }\n  })).a != 7;\n}) ? function (it, key, D) {\n  var protoDesc = gOPD(ObjectProto, key);\n  if (protoDesc) delete ObjectProto[key];\n  dP(it, key, D);\n  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function wrap(tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n\n  sym._k = tag;\n  return sym;\n};\n\nvar isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {\n  return _typeof(it) == 'symbol';\n} : function (it) {\n  return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n  anObject(it);\n  key = toPrimitive(key, true);\n  anObject(D);\n\n  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, {\n        enumerable: createDesc(0, false)\n      });\n    }\n\n    return setSymbolDesc(it, key, D);\n  }\n\n  return dP(it, key, D);\n};\n\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n\n  while (l > i) {\n    $defineProperty(it, key = keys[i++], P[key]);\n  }\n\n  return it;\n};\n\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  }\n\n  return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  }\n\n  return result;\n};\n\nif (!USE_NATIVE) {\n  $Symbol = function _Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n\n    var $set = function $set(value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {\n      configurable: true,\n      set: $set\n    });\n    return wrap(tag);\n  };\n\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  __w_pdfjs_require__(137).f = gOPNExt.f = $getOwnPropertyNames;\n  __w_pdfjs_require__(78).f = $propertyIsEnumerable;\n  __w_pdfjs_require__(77).f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !__w_pdfjs_require__(37)) {\n    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n  }\n\n  wksExt.f = function (name) {\n    return wrap(wks(name));\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n  Symbol: $Symbol\n});\n\nfor (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {\n  wks(es6Symbols[j++]);\n}\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {\n  wksDefine(wellKnownSymbols[k++]);\n}\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  'for': function _for(key) {\n    return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);\n  },\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n\n    for (var key in SymbolRegistry) {\n      if (SymbolRegistry[key] === sym) return key;\n    }\n  },\n  useSetter: function useSetter() {\n    setter = true;\n  },\n  useSimple: function useSimple() {\n    setter = false;\n  }\n});\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  create: $create,\n  defineProperty: $defineProperty,\n  defineProperties: $defineProperties,\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  getOwnPropertyNames: $getOwnPropertyNames,\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  return _stringify([S]) != '[null]' || _stringify({\n    a: S\n  }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n\n    while (arguments.length > i) {\n      args.push(arguments[i++]);\n    }\n\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return;\n    if (!isArray(replacer)) replacer = function replacer(key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(15)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\nsetToStringTag($Symbol, 'Symbol');\nsetToStringTag(Math, 'Math', true);\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(35);\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(13);\n\nvar core = __w_pdfjs_require__(14);\n\nvar LIBRARY = __w_pdfjs_require__(37);\n\nvar wksExt = __w_pdfjs_require__(133);\n\nvar defineProperty = __w_pdfjs_require__(16).f;\n\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {\n    value: wksExt.f(name)\n  });\n};\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar gOPS = __w_pdfjs_require__(77);\n\nvar pIE = __w_pdfjs_require__(78);\n\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n\n    while (symbols.length > i) {\n      if (isEnum.call(it, key = symbols[i++])) result.push(key);\n    }\n  }\n\n  return result;\n};\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar gOPN = __w_pdfjs_require__(137).f;\n\nvar toString = {}.toString;\nvar windowNames = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function getWindowNames(it) {\n  try {\n    return gOPN(it);\n  } catch (e) {\n    return windowNames.slice();\n  }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(60);\n\nvar hiddenKeys = __w_pdfjs_require__(62).concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(139);\n\nmodule.exports = __w_pdfjs_require__(14).String.padStart;\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $pad = __w_pdfjs_require__(140);\n\nvar userAgent = __w_pdfjs_require__(100);\n\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padStart: function padStart(maxLength) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n  }\n});\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toLength = __w_pdfjs_require__(30);\n\nvar repeat = __w_pdfjs_require__(141);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function (that, maxLength, fillString, left) {\n  var S = String(defined(that));\n  var stringLength = S.length;\n  var fillStr = fillString === undefined ? ' ' : String(fillString);\n  var intMaxLength = toLength(maxLength);\n  if (intMaxLength <= stringLength || fillStr == '') return S;\n  var fillLen = intMaxLength - stringLength;\n  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n  return left ? stringFiller + S : S + stringFiller;\n};\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(31);\n\nvar defined = __w_pdfjs_require__(38);\n\nmodule.exports = function repeat(count) {\n  var str = String(defined(this));\n  var res = '';\n  var n = toInteger(count);\n  if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n\n  for (; n > 0; (n >>>= 1) && (str += str)) {\n    if (n & 1) res += str;\n  }\n\n  return res;\n};\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(143);\n\nmodule.exports = __w_pdfjs_require__(14).String.padEnd;\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $pad = __w_pdfjs_require__(140);\n\nvar userAgent = __w_pdfjs_require__(100);\n\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padEnd: function padEnd(maxLength) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n  }\n});\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(145);\n\nmodule.exports = __w_pdfjs_require__(14).Object.values;\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(12);\n\nvar $values = __w_pdfjs_require__(146)(false);\n\n$export($export.S, 'Object', {\n  values: function values(it) {\n    return $values(it);\n  }\n});\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(59);\n\nvar toIObject = __w_pdfjs_require__(47);\n\nvar isEnum = __w_pdfjs_require__(78).f;\n\nmodule.exports = function (isEntries) {\n  return function (it) {\n    var O = toIObject(it);\n    var keys = getKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n\n    while (length > i) {\n      if (isEnum.call(O, key = keys[i++])) {\n        result.push(isEntries ? [key, O[key]] : O[key]);\n      }\n    }\n\n    return result;\n  };\n};\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n{\n  var isReadableStreamSupported = false;\n\n  if (typeof ReadableStream !== 'undefined') {\n    try {\n      new ReadableStream({\n        start: function start(controller) {\n          controller.close();\n        }\n      });\n      isReadableStreamSupported = true;\n    } catch (e) {}\n  }\n\n  if (isReadableStreamSupported) {\n    exports.ReadableStream = ReadableStream;\n  } else {\n    exports.ReadableStream = __w_pdfjs_require__(148).ReadableStream;\n  }\n}\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof2(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (e, a) {\n  for (var i in a) {\n    e[i] = a[i];\n  }\n})(exports, function (modules) {\n  var installedModules = {};\n\n  function __w_pdfjs_require__(moduleId) {\n    if (installedModules[moduleId]) return installedModules[moduleId].exports;\n    var module = installedModules[moduleId] = {\n      i: moduleId,\n      l: false,\n      exports: {}\n    };\n    modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n    module.l = true;\n    return module.exports;\n  }\n\n  __w_pdfjs_require__.m = modules;\n  __w_pdfjs_require__.c = installedModules;\n\n  __w_pdfjs_require__.i = function (value) {\n    return value;\n  };\n\n  __w_pdfjs_require__.d = function (exports, name, getter) {\n    if (!__w_pdfjs_require__.o(exports, name)) {\n      Object.defineProperty(exports, name, {\n        configurable: false,\n        enumerable: true,\n        get: getter\n      });\n    }\n  };\n\n  __w_pdfjs_require__.n = function (module) {\n    var getter = module && module.__esModule ? function getDefault() {\n      return module['default'];\n    } : function getModuleExports() {\n      return module;\n    };\n\n    __w_pdfjs_require__.d(getter, 'a', getter);\n\n    return getter;\n  };\n\n  __w_pdfjs_require__.o = function (object, property) {\n    return Object.prototype.hasOwnProperty.call(object, property);\n  };\n\n  __w_pdfjs_require__.p = \"\";\n  return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n}([function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n    return _typeof2(obj);\n  } : function (obj) {\n    return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n  };\n\n  var _require = __w_pdfjs_require__(1),\n      assert = _require.assert;\n\n  function IsPropertyKey(argument) {\n    return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n  }\n\n  exports.typeIsObject = function (x) {\n    return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n  };\n\n  exports.createDataProperty = function (o, p, v) {\n    assert(exports.typeIsObject(o));\n    Object.defineProperty(o, p, {\n      value: v,\n      writable: true,\n      enumerable: true,\n      configurable: true\n    });\n  };\n\n  exports.createArrayFromList = function (elements) {\n    return elements.slice();\n  };\n\n  exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n    new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n  };\n\n  exports.CreateIterResultObject = function (value, done) {\n    assert(typeof done === 'boolean');\n    var obj = {};\n    Object.defineProperty(obj, 'value', {\n      value: value,\n      enumerable: true,\n      writable: true,\n      configurable: true\n    });\n    Object.defineProperty(obj, 'done', {\n      value: done,\n      enumerable: true,\n      writable: true,\n      configurable: true\n    });\n    return obj;\n  };\n\n  exports.IsFiniteNonNegativeNumber = function (v) {\n    if (Number.isNaN(v)) {\n      return false;\n    }\n\n    if (v === Infinity) {\n      return false;\n    }\n\n    if (v < 0) {\n      return false;\n    }\n\n    return true;\n  };\n\n  function Call(F, V, args) {\n    if (typeof F !== 'function') {\n      throw new TypeError('Argument is not a function');\n    }\n\n    return Function.prototype.apply.call(F, V, args);\n  }\n\n  exports.InvokeOrNoop = function (O, P, args) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n    var method = O[P];\n\n    if (method === undefined) {\n      return undefined;\n    }\n\n    return Call(method, O, args);\n  };\n\n  exports.PromiseInvokeOrNoop = function (O, P, args) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n\n    try {\n      return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n    } catch (returnValueE) {\n      return Promise.reject(returnValueE);\n    }\n  };\n\n  exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {\n    assert(O !== undefined);\n    assert(IsPropertyKey(P));\n    assert(Array.isArray(args));\n    assert(Array.isArray(argsF));\n    var method = void 0;\n\n    try {\n      method = O[P];\n    } catch (methodE) {\n      return Promise.reject(methodE);\n    }\n\n    if (method === undefined) {\n      return F.apply(null, argsF);\n    }\n\n    try {\n      return Promise.resolve(Call(method, O, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  };\n\n  exports.TransferArrayBuffer = function (O) {\n    return O.slice();\n  };\n\n  exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n    highWaterMark = Number(highWaterMark);\n\n    if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n      throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n    }\n\n    return highWaterMark;\n  };\n\n  exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {\n    if (size !== undefined && typeof size !== 'function') {\n      throw new TypeError('size property of a queuing strategy must be a function');\n    }\n\n    highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n    return {\n      size: size,\n      highWaterMark: highWaterMark\n    };\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  function rethrowAssertionErrorRejection(e) {\n    if (e && e.constructor === AssertionError) {\n      setTimeout(function () {\n        throw e;\n      }, 0);\n    }\n  }\n\n  function AssertionError(message) {\n    this.name = 'AssertionError';\n    this.message = message || '';\n    this.stack = new Error().stack;\n  }\n\n  AssertionError.prototype = Object.create(Error.prototype);\n  AssertionError.prototype.constructor = AssertionError;\n\n  function assert(value, message) {\n    if (!value) {\n      throw new AssertionError(message);\n    }\n  }\n\n  module.exports = {\n    rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n    AssertionError: AssertionError,\n    assert: assert\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(0),\n      InvokeOrNoop = _require.InvokeOrNoop,\n      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n      typeIsObject = _require.typeIsObject;\n\n  var _require2 = __w_pdfjs_require__(1),\n      assert = _require2.assert,\n      rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\n  var _require3 = __w_pdfjs_require__(3),\n      DequeueValue = _require3.DequeueValue,\n      EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n      PeekQueueValue = _require3.PeekQueueValue,\n      ResetQueue = _require3.ResetQueue;\n\n  var WritableStream = function () {\n    function WritableStream() {\n      var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          size = _ref.size,\n          _ref$highWaterMark = _ref.highWaterMark,\n          highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;\n\n      _classCallCheck(this, WritableStream);\n\n      this._state = 'writable';\n      this._storedError = undefined;\n      this._writer = undefined;\n      this._writableStreamController = undefined;\n      this._writeRequests = [];\n      this._inFlightWriteRequest = undefined;\n      this._closeRequest = undefined;\n      this._inFlightCloseRequest = undefined;\n      this._pendingAbortRequest = undefined;\n      this._backpressure = false;\n      var type = underlyingSink.type;\n\n      if (type !== undefined) {\n        throw new RangeError('Invalid type is specified');\n      }\n\n      this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n\n      this._writableStreamController.__startSteps();\n    }\n\n    _createClass(WritableStream, [{\n      key: 'abort',\n      value: function abort(reason) {\n        if (IsWritableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('abort'));\n        }\n\n        if (IsWritableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n        }\n\n        return WritableStreamAbort(this, reason);\n      }\n    }, {\n      key: 'getWriter',\n      value: function getWriter() {\n        if (IsWritableStream(this) === false) {\n          throw streamBrandCheckException('getWriter');\n        }\n\n        return AcquireWritableStreamDefaultWriter(this);\n      }\n    }, {\n      key: 'locked',\n      get: function get() {\n        if (IsWritableStream(this) === false) {\n          throw streamBrandCheckException('locked');\n        }\n\n        return IsWritableStreamLocked(this);\n      }\n    }]);\n\n    return WritableStream;\n  }();\n\n  module.exports = {\n    AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,\n    IsWritableStream: IsWritableStream,\n    IsWritableStreamLocked: IsWritableStreamLocked,\n    WritableStream: WritableStream,\n    WritableStreamAbort: WritableStreamAbort,\n    WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,\n    WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,\n    WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,\n    WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,\n    WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight\n  };\n\n  function AcquireWritableStreamDefaultWriter(stream) {\n    return new WritableStreamDefaultWriter(stream);\n  }\n\n  function IsWritableStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsWritableStreamLocked(stream) {\n    assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n    if (stream._writer === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamAbort(stream, reason) {\n    var state = stream._state;\n\n    if (state === 'closed') {\n      return Promise.resolve(undefined);\n    }\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    var error = new TypeError('Requested to abort');\n\n    if (stream._pendingAbortRequest !== undefined) {\n      return Promise.reject(error);\n    }\n\n    assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n    var wasAlreadyErroring = false;\n\n    if (state === 'erroring') {\n      wasAlreadyErroring = true;\n      reason = undefined;\n    }\n\n    var promise = new Promise(function (resolve, reject) {\n      stream._pendingAbortRequest = {\n        _resolve: resolve,\n        _reject: reject,\n        _reason: reason,\n        _wasAlreadyErroring: wasAlreadyErroring\n      };\n    });\n\n    if (wasAlreadyErroring === false) {\n      WritableStreamStartErroring(stream, error);\n    }\n\n    return promise;\n  }\n\n  function WritableStreamAddWriteRequest(stream) {\n    assert(IsWritableStreamLocked(stream) === true);\n    assert(stream._state === 'writable');\n    var promise = new Promise(function (resolve, reject) {\n      var writeRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._writeRequests.push(writeRequest);\n    });\n    return promise;\n  }\n\n  function WritableStreamDealWithRejection(stream, error) {\n    var state = stream._state;\n\n    if (state === 'writable') {\n      WritableStreamStartErroring(stream, error);\n      return;\n    }\n\n    assert(state === 'erroring');\n    WritableStreamFinishErroring(stream);\n  }\n\n  function WritableStreamStartErroring(stream, reason) {\n    assert(stream._storedError === undefined, 'stream._storedError === undefined');\n    assert(stream._state === 'writable', 'state must be writable');\n    var controller = stream._writableStreamController;\n    assert(controller !== undefined, 'controller must not be undefined');\n    stream._state = 'erroring';\n    stream._storedError = reason;\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n    }\n\n    if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n      WritableStreamFinishErroring(stream);\n    }\n  }\n\n  function WritableStreamFinishErroring(stream) {\n    assert(stream._state === 'erroring', 'stream._state === erroring');\n    assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n    stream._state = 'errored';\n\n    stream._writableStreamController.__errorSteps();\n\n    var storedError = stream._storedError;\n\n    for (var i = 0; i < stream._writeRequests.length; i++) {\n      var writeRequest = stream._writeRequests[i];\n\n      writeRequest._reject(storedError);\n    }\n\n    stream._writeRequests = [];\n\n    if (stream._pendingAbortRequest === undefined) {\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n      return;\n    }\n\n    var abortRequest = stream._pendingAbortRequest;\n    stream._pendingAbortRequest = undefined;\n\n    if (abortRequest._wasAlreadyErroring === true) {\n      abortRequest._reject(storedError);\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n      return;\n    }\n\n    var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n\n    promise.then(function () {\n      abortRequest._resolve();\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    }, function (reason) {\n      abortRequest._reject(reason);\n\n      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    });\n  }\n\n  function WritableStreamFinishInFlightWrite(stream) {\n    assert(stream._inFlightWriteRequest !== undefined);\n\n    stream._inFlightWriteRequest._resolve(undefined);\n\n    stream._inFlightWriteRequest = undefined;\n  }\n\n  function WritableStreamFinishInFlightWriteWithError(stream, error) {\n    assert(stream._inFlightWriteRequest !== undefined);\n\n    stream._inFlightWriteRequest._reject(error);\n\n    stream._inFlightWriteRequest = undefined;\n    assert(stream._state === 'writable' || stream._state === 'erroring');\n    WritableStreamDealWithRejection(stream, error);\n  }\n\n  function WritableStreamFinishInFlightClose(stream) {\n    assert(stream._inFlightCloseRequest !== undefined);\n\n    stream._inFlightCloseRequest._resolve(undefined);\n\n    stream._inFlightCloseRequest = undefined;\n    var state = stream._state;\n    assert(state === 'writable' || state === 'erroring');\n\n    if (state === 'erroring') {\n      stream._storedError = undefined;\n\n      if (stream._pendingAbortRequest !== undefined) {\n        stream._pendingAbortRequest._resolve();\n\n        stream._pendingAbortRequest = undefined;\n      }\n    }\n\n    stream._state = 'closed';\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      defaultWriterClosedPromiseResolve(writer);\n    }\n\n    assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n    assert(stream._storedError === undefined, 'stream._storedError === undefined');\n  }\n\n  function WritableStreamFinishInFlightCloseWithError(stream, error) {\n    assert(stream._inFlightCloseRequest !== undefined);\n\n    stream._inFlightCloseRequest._reject(error);\n\n    stream._inFlightCloseRequest = undefined;\n    assert(stream._state === 'writable' || stream._state === 'erroring');\n\n    if (stream._pendingAbortRequest !== undefined) {\n      stream._pendingAbortRequest._reject(error);\n\n      stream._pendingAbortRequest = undefined;\n    }\n\n    WritableStreamDealWithRejection(stream, error);\n  }\n\n  function WritableStreamCloseQueuedOrInFlight(stream) {\n    if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamHasOperationMarkedInFlight(stream) {\n    if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamMarkCloseRequestInFlight(stream) {\n    assert(stream._inFlightCloseRequest === undefined);\n    assert(stream._closeRequest !== undefined);\n    stream._inFlightCloseRequest = stream._closeRequest;\n    stream._closeRequest = undefined;\n  }\n\n  function WritableStreamMarkFirstWriteRequestInFlight(stream) {\n    assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');\n    assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');\n    stream._inFlightWriteRequest = stream._writeRequests.shift();\n  }\n\n  function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n    assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n\n    if (stream._closeRequest !== undefined) {\n      assert(stream._inFlightCloseRequest === undefined);\n\n      stream._closeRequest._reject(stream._storedError);\n\n      stream._closeRequest = undefined;\n    }\n\n    var writer = stream._writer;\n\n    if (writer !== undefined) {\n      defaultWriterClosedPromiseReject(writer, stream._storedError);\n\n      writer._closedPromise.catch(function () {});\n    }\n  }\n\n  function WritableStreamUpdateBackpressure(stream, backpressure) {\n    assert(stream._state === 'writable');\n    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n    var writer = stream._writer;\n\n    if (writer !== undefined && backpressure !== stream._backpressure) {\n      if (backpressure === true) {\n        defaultWriterReadyPromiseReset(writer);\n      } else {\n        assert(backpressure === false);\n        defaultWriterReadyPromiseResolve(writer);\n      }\n    }\n\n    stream._backpressure = backpressure;\n  }\n\n  var WritableStreamDefaultWriter = function () {\n    function WritableStreamDefaultWriter(stream) {\n      _classCallCheck(this, WritableStreamDefaultWriter);\n\n      if (IsWritableStream(stream) === false) {\n        throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');\n      }\n\n      if (IsWritableStreamLocked(stream) === true) {\n        throw new TypeError('This stream has already been locked for exclusive writing by another writer');\n      }\n\n      this._ownerWritableStream = stream;\n      stream._writer = this;\n      var state = stream._state;\n\n      if (state === 'writable') {\n        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n          defaultWriterReadyPromiseInitialize(this);\n        } else {\n          defaultWriterReadyPromiseInitializeAsResolved(this);\n        }\n\n        defaultWriterClosedPromiseInitialize(this);\n      } else if (state === 'erroring') {\n        defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);\n\n        this._readyPromise.catch(function () {});\n\n        defaultWriterClosedPromiseInitialize(this);\n      } else if (state === 'closed') {\n        defaultWriterReadyPromiseInitializeAsResolved(this);\n        defaultWriterClosedPromiseInitializeAsResolved(this);\n      } else {\n        assert(state === 'errored', 'state must be errored');\n        var storedError = stream._storedError;\n        defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n\n        this._readyPromise.catch(function () {});\n\n        defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n\n        this._closedPromise.catch(function () {});\n      }\n    }\n\n    _createClass(WritableStreamDefaultWriter, [{\n      key: 'abort',\n      value: function abort(reason) {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('abort'));\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          return Promise.reject(defaultWriterLockException('abort'));\n        }\n\n        return WritableStreamDefaultWriterAbort(this, reason);\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('close'));\n        }\n\n        var stream = this._ownerWritableStream;\n\n        if (stream === undefined) {\n          return Promise.reject(defaultWriterLockException('close'));\n        }\n\n        if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n          return Promise.reject(new TypeError('cannot close an already-closing stream'));\n        }\n\n        return WritableStreamDefaultWriterClose(this);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          throw defaultWriterBrandCheckException('releaseLock');\n        }\n\n        var stream = this._ownerWritableStream;\n\n        if (stream === undefined) {\n          return;\n        }\n\n        assert(stream._writer !== undefined);\n        WritableStreamDefaultWriterRelease(this);\n      }\n    }, {\n      key: 'write',\n      value: function write(chunk) {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('write'));\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          return Promise.reject(defaultWriterLockException('write to'));\n        }\n\n        return WritableStreamDefaultWriterWrite(this, chunk);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          throw defaultWriterBrandCheckException('desiredSize');\n        }\n\n        if (this._ownerWritableStream === undefined) {\n          throw defaultWriterLockException('desiredSize');\n        }\n\n        return WritableStreamDefaultWriterGetDesiredSize(this);\n      }\n    }, {\n      key: 'ready',\n      get: function get() {\n        if (IsWritableStreamDefaultWriter(this) === false) {\n          return Promise.reject(defaultWriterBrandCheckException('ready'));\n        }\n\n        return this._readyPromise;\n      }\n    }]);\n\n    return WritableStreamDefaultWriter;\n  }();\n\n  function IsWritableStreamDefaultWriter(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamDefaultWriterAbort(writer, reason) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    return WritableStreamAbort(stream, reason);\n  }\n\n  function WritableStreamDefaultWriterClose(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var state = stream._state;\n\n    if (state === 'closed' || state === 'errored') {\n      return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n    }\n\n    assert(state === 'writable' || state === 'erroring');\n    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n    var promise = new Promise(function (resolve, reject) {\n      var closeRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n      stream._closeRequest = closeRequest;\n    });\n\n    if (stream._backpressure === true && state === 'writable') {\n      defaultWriterReadyPromiseResolve(writer);\n    }\n\n    WritableStreamDefaultControllerClose(stream._writableStreamController);\n    return promise;\n  }\n\n  function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var state = stream._state;\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n      return Promise.resolve();\n    }\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(state === 'writable' || state === 'erroring');\n    return WritableStreamDefaultWriterClose(writer);\n  }\n\n  function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n    if (writer._closedPromiseState === 'pending') {\n      defaultWriterClosedPromiseReject(writer, error);\n    } else {\n      defaultWriterClosedPromiseResetToRejected(writer, error);\n    }\n\n    writer._closedPromise.catch(function () {});\n  }\n\n  function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n    if (writer._readyPromiseState === 'pending') {\n      defaultWriterReadyPromiseReject(writer, error);\n    } else {\n      defaultWriterReadyPromiseResetToRejected(writer, error);\n    }\n\n    writer._readyPromise.catch(function () {});\n  }\n\n  function WritableStreamDefaultWriterGetDesiredSize(writer) {\n    var stream = writer._ownerWritableStream;\n    var state = stream._state;\n\n    if (state === 'errored' || state === 'erroring') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n  }\n\n  function WritableStreamDefaultWriterRelease(writer) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    assert(stream._writer === writer);\n    var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n    WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n    WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n    stream._writer = undefined;\n    writer._ownerWritableStream = undefined;\n  }\n\n  function WritableStreamDefaultWriterWrite(writer, chunk) {\n    var stream = writer._ownerWritableStream;\n    assert(stream !== undefined);\n    var controller = stream._writableStreamController;\n    var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n    if (stream !== writer._ownerWritableStream) {\n      return Promise.reject(defaultWriterLockException('write to'));\n    }\n\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n      return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n    }\n\n    if (state === 'erroring') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(state === 'writable');\n    var promise = WritableStreamAddWriteRequest(stream);\n    WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n    return promise;\n  }\n\n  var WritableStreamDefaultController = function () {\n    function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n      _classCallCheck(this, WritableStreamDefaultController);\n\n      if (IsWritableStream(stream) === false) {\n        throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n      }\n\n      if (stream._writableStreamController !== undefined) {\n        throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n      }\n\n      this._controlledWritableStream = stream;\n      this._underlyingSink = underlyingSink;\n      this._queue = undefined;\n      this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._started = false;\n      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n      this._strategySize = normalizedStrategy.size;\n      this._strategyHWM = normalizedStrategy.highWaterMark;\n      var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n      WritableStreamUpdateBackpressure(stream, backpressure);\n    }\n\n    _createClass(WritableStreamDefaultController, [{\n      key: 'error',\n      value: function error(e) {\n        if (IsWritableStreamDefaultController(this) === false) {\n          throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');\n        }\n\n        var state = this._controlledWritableStream._state;\n\n        if (state !== 'writable') {\n          return;\n        }\n\n        WritableStreamDefaultControllerError(this, e);\n      }\n    }, {\n      key: '__abortSteps',\n      value: function __abortSteps(reason) {\n        return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);\n      }\n    }, {\n      key: '__errorSteps',\n      value: function __errorSteps() {\n        ResetQueue(this);\n      }\n    }, {\n      key: '__startSteps',\n      value: function __startSteps() {\n        var _this = this;\n\n        var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n        var stream = this._controlledWritableStream;\n        Promise.resolve(startResult).then(function () {\n          assert(stream._state === 'writable' || stream._state === 'erroring');\n          _this._started = true;\n          WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);\n        }, function (r) {\n          assert(stream._state === 'writable' || stream._state === 'erroring');\n          _this._started = true;\n          WritableStreamDealWithRejection(stream, r);\n        }).catch(rethrowAssertionErrorRejection);\n      }\n    }]);\n\n    return WritableStreamDefaultController;\n  }();\n\n  function WritableStreamDefaultControllerClose(controller) {\n    EnqueueValueWithSize(controller, 'close', 0);\n    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n  }\n\n  function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n    var strategySize = controller._strategySize;\n\n    if (strategySize === undefined) {\n      return 1;\n    }\n\n    try {\n      return strategySize(chunk);\n    } catch (chunkSizeE) {\n      WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n      return 1;\n    }\n  }\n\n  function WritableStreamDefaultControllerGetDesiredSize(controller) {\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n    var writeRecord = {\n      chunk: chunk\n    };\n\n    try {\n      EnqueueValueWithSize(controller, writeRecord, chunkSize);\n    } catch (enqueueE) {\n      WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n      return;\n    }\n\n    var stream = controller._controlledWritableStream;\n\n    if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n      var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n      WritableStreamUpdateBackpressure(stream, backpressure);\n    }\n\n    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n  }\n\n  function IsWritableStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n    var stream = controller._controlledWritableStream;\n\n    if (controller._started === false) {\n      return;\n    }\n\n    if (stream._inFlightWriteRequest !== undefined) {\n      return;\n    }\n\n    var state = stream._state;\n\n    if (state === 'closed' || state === 'errored') {\n      return;\n    }\n\n    if (state === 'erroring') {\n      WritableStreamFinishErroring(stream);\n      return;\n    }\n\n    if (controller._queue.length === 0) {\n      return;\n    }\n\n    var writeRecord = PeekQueueValue(controller);\n\n    if (writeRecord === 'close') {\n      WritableStreamDefaultControllerProcessClose(controller);\n    } else {\n      WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n    }\n  }\n\n  function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n    if (controller._controlledWritableStream._state === 'writable') {\n      WritableStreamDefaultControllerError(controller, error);\n    }\n  }\n\n  function WritableStreamDefaultControllerProcessClose(controller) {\n    var stream = controller._controlledWritableStream;\n    WritableStreamMarkCloseRequestInFlight(stream);\n    DequeueValue(controller);\n    assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n    var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);\n    sinkClosePromise.then(function () {\n      WritableStreamFinishInFlightClose(stream);\n    }, function (reason) {\n      WritableStreamFinishInFlightCloseWithError(stream, reason);\n    }).catch(rethrowAssertionErrorRejection);\n  }\n\n  function WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n    var stream = controller._controlledWritableStream;\n    WritableStreamMarkFirstWriteRequestInFlight(stream);\n    var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n    sinkWritePromise.then(function () {\n      WritableStreamFinishInFlightWrite(stream);\n      var state = stream._state;\n      assert(state === 'writable' || state === 'erroring');\n      DequeueValue(controller);\n\n      if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n        WritableStreamUpdateBackpressure(stream, backpressure);\n      }\n\n      WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n    }, function (reason) {\n      WritableStreamFinishInFlightWriteWithError(stream, reason);\n    }).catch(rethrowAssertionErrorRejection);\n  }\n\n  function WritableStreamDefaultControllerGetBackpressure(controller) {\n    var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n    return desiredSize <= 0;\n  }\n\n  function WritableStreamDefaultControllerError(controller, error) {\n    var stream = controller._controlledWritableStream;\n    assert(stream._state === 'writable');\n    WritableStreamStartErroring(stream, error);\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n  }\n\n  function defaultWriterBrandCheckException(name) {\n    return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n  }\n\n  function defaultWriterLockException(name) {\n    return new TypeError('Cannot ' + name + ' a stream using a released writer');\n  }\n\n  function defaultWriterClosedPromiseInitialize(writer) {\n    writer._closedPromise = new Promise(function (resolve, reject) {\n      writer._closedPromise_resolve = resolve;\n      writer._closedPromise_reject = reject;\n      writer._closedPromiseState = 'pending';\n    });\n  }\n\n  function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {\n    writer._closedPromise = Promise.reject(reason);\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseInitializeAsResolved(writer) {\n    writer._closedPromise = Promise.resolve(undefined);\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'resolved';\n  }\n\n  function defaultWriterClosedPromiseReject(writer, reason) {\n    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n    writer._closedPromise_reject(reason);\n\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseResetToRejected(writer, reason) {\n    assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');\n    assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');\n    assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');\n    writer._closedPromise = Promise.reject(reason);\n    writer._closedPromiseState = 'rejected';\n  }\n\n  function defaultWriterClosedPromiseResolve(writer) {\n    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');\n    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');\n    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');\n\n    writer._closedPromise_resolve(undefined);\n\n    writer._closedPromise_resolve = undefined;\n    writer._closedPromise_reject = undefined;\n    writer._closedPromiseState = 'resolved';\n  }\n\n  function defaultWriterReadyPromiseInitialize(writer) {\n    writer._readyPromise = new Promise(function (resolve, reject) {\n      writer._readyPromise_resolve = resolve;\n      writer._readyPromise_reject = reject;\n    });\n    writer._readyPromiseState = 'pending';\n  }\n\n  function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {\n    writer._readyPromise = Promise.reject(reason);\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseInitializeAsResolved(writer) {\n    writer._readyPromise = Promise.resolve(undefined);\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'fulfilled';\n  }\n\n  function defaultWriterReadyPromiseReject(writer, reason) {\n    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n    writer._readyPromise_reject(reason);\n\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseReset(writer) {\n    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n    writer._readyPromise = new Promise(function (resolve, reject) {\n      writer._readyPromise_resolve = resolve;\n      writer._readyPromise_reject = reject;\n    });\n    writer._readyPromiseState = 'pending';\n  }\n\n  function defaultWriterReadyPromiseResetToRejected(writer, reason) {\n    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n    writer._readyPromise = Promise.reject(reason);\n    writer._readyPromiseState = 'rejected';\n  }\n\n  function defaultWriterReadyPromiseResolve(writer) {\n    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n    writer._readyPromise_resolve(undefined);\n\n    writer._readyPromise_resolve = undefined;\n    writer._readyPromise_reject = undefined;\n    writer._readyPromiseState = 'fulfilled';\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _require = __w_pdfjs_require__(0),\n      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\n  var _require2 = __w_pdfjs_require__(1),\n      assert = _require2.assert;\n\n  exports.DequeueValue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');\n\n    var pair = container._queue.shift();\n\n    container._queueTotalSize -= pair.size;\n\n    if (container._queueTotalSize < 0) {\n      container._queueTotalSize = 0;\n    }\n\n    return pair.value;\n  };\n\n  exports.EnqueueValueWithSize = function (container, value, size) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');\n    size = Number(size);\n\n    if (!IsFiniteNonNegativeNumber(size)) {\n      throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n    }\n\n    container._queue.push({\n      value: value,\n      size: size\n    });\n\n    container._queueTotalSize += size;\n  };\n\n  exports.PeekQueueValue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');\n    var pair = container._queue[0];\n    return pair.value;\n  };\n\n  exports.ResetQueue = function (container) {\n    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');\n    container._queue = [];\n    container._queueTotalSize = 0;\n  };\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(0),\n      ArrayBufferCopy = _require.ArrayBufferCopy,\n      CreateIterResultObject = _require.CreateIterResultObject,\n      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,\n      InvokeOrNoop = _require.InvokeOrNoop,\n      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n      TransferArrayBuffer = _require.TransferArrayBuffer,\n      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n      ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;\n\n  var _require2 = __w_pdfjs_require__(0),\n      createArrayFromList = _require2.createArrayFromList,\n      createDataProperty = _require2.createDataProperty,\n      typeIsObject = _require2.typeIsObject;\n\n  var _require3 = __w_pdfjs_require__(1),\n      assert = _require3.assert,\n      rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\n  var _require4 = __w_pdfjs_require__(3),\n      DequeueValue = _require4.DequeueValue,\n      EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n      ResetQueue = _require4.ResetQueue;\n\n  var _require5 = __w_pdfjs_require__(2),\n      AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,\n      IsWritableStream = _require5.IsWritableStream,\n      IsWritableStreamLocked = _require5.IsWritableStreamLocked,\n      WritableStreamAbort = _require5.WritableStreamAbort,\n      WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,\n      WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,\n      WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,\n      WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;\n\n  var ReadableStream = function () {\n    function ReadableStream() {\n      var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          size = _ref.size,\n          highWaterMark = _ref.highWaterMark;\n\n      _classCallCheck(this, ReadableStream);\n\n      this._state = 'readable';\n      this._reader = undefined;\n      this._storedError = undefined;\n      this._disturbed = false;\n      this._readableStreamController = undefined;\n      var type = underlyingSource.type;\n      var typeString = String(type);\n\n      if (typeString === 'bytes') {\n        if (highWaterMark === undefined) {\n          highWaterMark = 0;\n        }\n\n        this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n      } else if (type === undefined) {\n        if (highWaterMark === undefined) {\n          highWaterMark = 1;\n        }\n\n        this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n      } else {\n        throw new RangeError('Invalid type is specified');\n      }\n    }\n\n    _createClass(ReadableStream, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (IsReadableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('cancel'));\n        }\n\n        if (IsReadableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n        }\n\n        return ReadableStreamCancel(this, reason);\n      }\n    }, {\n      key: 'getReader',\n      value: function getReader() {\n        var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n            mode = _ref2.mode;\n\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('getReader');\n        }\n\n        if (mode === undefined) {\n          return AcquireReadableStreamDefaultReader(this);\n        }\n\n        mode = String(mode);\n\n        if (mode === 'byob') {\n          return AcquireReadableStreamBYOBReader(this);\n        }\n\n        throw new RangeError('Invalid mode is specified');\n      }\n    }, {\n      key: 'pipeThrough',\n      value: function pipeThrough(_ref3, options) {\n        var writable = _ref3.writable,\n            readable = _ref3.readable;\n        var promise = this.pipeTo(writable, options);\n        ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n        return readable;\n      }\n    }, {\n      key: 'pipeTo',\n      value: function pipeTo(dest) {\n        var _this = this;\n\n        var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n            preventClose = _ref4.preventClose,\n            preventAbort = _ref4.preventAbort,\n            preventCancel = _ref4.preventCancel;\n\n        if (IsReadableStream(this) === false) {\n          return Promise.reject(streamBrandCheckException('pipeTo'));\n        }\n\n        if (IsWritableStream(dest) === false) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\\'s first argument must be a WritableStream'));\n        }\n\n        preventClose = Boolean(preventClose);\n        preventAbort = Boolean(preventAbort);\n        preventCancel = Boolean(preventCancel);\n\n        if (IsReadableStreamLocked(this) === true) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));\n        }\n\n        if (IsWritableStreamLocked(dest) === true) {\n          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));\n        }\n\n        var reader = AcquireReadableStreamDefaultReader(this);\n        var writer = AcquireWritableStreamDefaultWriter(dest);\n        var shuttingDown = false;\n        var currentWrite = Promise.resolve();\n        return new Promise(function (resolve, reject) {\n          function pipeLoop() {\n            currentWrite = Promise.resolve();\n\n            if (shuttingDown === true) {\n              return Promise.resolve();\n            }\n\n            return writer._readyPromise.then(function () {\n              return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n                var value = _ref5.value,\n                    done = _ref5.done;\n\n                if (done === true) {\n                  return;\n                }\n\n                currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n              });\n            }).then(pipeLoop);\n          }\n\n          isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {\n            if (preventAbort === false) {\n              shutdownWithAction(function () {\n                return WritableStreamAbort(dest, storedError);\n              }, true, storedError);\n            } else {\n              shutdown(true, storedError);\n            }\n          });\n          isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {\n            if (preventCancel === false) {\n              shutdownWithAction(function () {\n                return ReadableStreamCancel(_this, storedError);\n              }, true, storedError);\n            } else {\n              shutdown(true, storedError);\n            }\n          });\n          isOrBecomesClosed(_this, reader._closedPromise, function () {\n            if (preventClose === false) {\n              shutdownWithAction(function () {\n                return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);\n              });\n            } else {\n              shutdown();\n            }\n          });\n\n          if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {\n            var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');\n\n            if (preventCancel === false) {\n              shutdownWithAction(function () {\n                return ReadableStreamCancel(_this, destClosed);\n              }, true, destClosed);\n            } else {\n              shutdown(true, destClosed);\n            }\n          }\n\n          pipeLoop().catch(function (err) {\n            currentWrite = Promise.resolve();\n            rethrowAssertionErrorRejection(err);\n          });\n\n          function waitForWritesToFinish() {\n            var oldCurrentWrite = currentWrite;\n            return currentWrite.then(function () {\n              return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n            });\n          }\n\n          function isOrBecomesErrored(stream, promise, action) {\n            if (stream._state === 'errored') {\n              action(stream._storedError);\n            } else {\n              promise.catch(action).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function isOrBecomesClosed(stream, promise, action) {\n            if (stream._state === 'closed') {\n              action();\n            } else {\n              promise.then(action).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function shutdownWithAction(action, originalIsError, originalError) {\n            if (shuttingDown === true) {\n              return;\n            }\n\n            shuttingDown = true;\n\n            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n              waitForWritesToFinish().then(doTheRest);\n            } else {\n              doTheRest();\n            }\n\n            function doTheRest() {\n              action().then(function () {\n                return finalize(originalIsError, originalError);\n              }, function (newError) {\n                return finalize(true, newError);\n              }).catch(rethrowAssertionErrorRejection);\n            }\n          }\n\n          function shutdown(isError, error) {\n            if (shuttingDown === true) {\n              return;\n            }\n\n            shuttingDown = true;\n\n            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n              waitForWritesToFinish().then(function () {\n                return finalize(isError, error);\n              }).catch(rethrowAssertionErrorRejection);\n            } else {\n              finalize(isError, error);\n            }\n          }\n\n          function finalize(isError, error) {\n            WritableStreamDefaultWriterRelease(writer);\n            ReadableStreamReaderGenericRelease(reader);\n\n            if (isError) {\n              reject(error);\n            } else {\n              resolve(undefined);\n            }\n          }\n        });\n      }\n    }, {\n      key: 'tee',\n      value: function tee() {\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('tee');\n        }\n\n        var branches = ReadableStreamTee(this, false);\n        return createArrayFromList(branches);\n      }\n    }, {\n      key: 'locked',\n      get: function get() {\n        if (IsReadableStream(this) === false) {\n          throw streamBrandCheckException('locked');\n        }\n\n        return IsReadableStreamLocked(this);\n      }\n    }]);\n\n    return ReadableStream;\n  }();\n\n  module.exports = {\n    ReadableStream: ReadableStream,\n    IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n    ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n    ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n    ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n    ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n  };\n\n  function AcquireReadableStreamBYOBReader(stream) {\n    return new ReadableStreamBYOBReader(stream);\n  }\n\n  function AcquireReadableStreamDefaultReader(stream) {\n    return new ReadableStreamDefaultReader(stream);\n  }\n\n  function IsReadableStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamDisturbed(stream) {\n    assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n    return stream._disturbed;\n  }\n\n  function IsReadableStreamLocked(stream) {\n    assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n    if (stream._reader === undefined) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamTee(stream, cloneForBranch2) {\n    assert(IsReadableStream(stream) === true);\n    assert(typeof cloneForBranch2 === 'boolean');\n    var reader = AcquireReadableStreamDefaultReader(stream);\n    var teeState = {\n      closedOrErrored: false,\n      canceled1: false,\n      canceled2: false,\n      reason1: undefined,\n      reason2: undefined\n    };\n    teeState.promise = new Promise(function (resolve) {\n      teeState._resolve = resolve;\n    });\n    var pull = create_ReadableStreamTeePullFunction();\n    pull._reader = reader;\n    pull._teeState = teeState;\n    pull._cloneForBranch2 = cloneForBranch2;\n    var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n    cancel1._stream = stream;\n    cancel1._teeState = teeState;\n    var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n    cancel2._stream = stream;\n    cancel2._teeState = teeState;\n    var underlyingSource1 = Object.create(Object.prototype);\n    createDataProperty(underlyingSource1, 'pull', pull);\n    createDataProperty(underlyingSource1, 'cancel', cancel1);\n    var branch1Stream = new ReadableStream(underlyingSource1);\n    var underlyingSource2 = Object.create(Object.prototype);\n    createDataProperty(underlyingSource2, 'pull', pull);\n    createDataProperty(underlyingSource2, 'cancel', cancel2);\n    var branch2Stream = new ReadableStream(underlyingSource2);\n    pull._branch1 = branch1Stream._readableStreamController;\n    pull._branch2 = branch2Stream._readableStreamController;\n\n    reader._closedPromise.catch(function (r) {\n      if (teeState.closedOrErrored === true) {\n        return;\n      }\n\n      ReadableStreamDefaultControllerError(pull._branch1, r);\n      ReadableStreamDefaultControllerError(pull._branch2, r);\n      teeState.closedOrErrored = true;\n    });\n\n    return [branch1Stream, branch2Stream];\n  }\n\n  function create_ReadableStreamTeePullFunction() {\n    function f() {\n      var reader = f._reader,\n          branch1 = f._branch1,\n          branch2 = f._branch2,\n          teeState = f._teeState;\n      return ReadableStreamDefaultReaderRead(reader).then(function (result) {\n        assert(typeIsObject(result));\n        var value = result.value;\n        var done = result.done;\n        assert(typeof done === 'boolean');\n\n        if (done === true && teeState.closedOrErrored === false) {\n          if (teeState.canceled1 === false) {\n            ReadableStreamDefaultControllerClose(branch1);\n          }\n\n          if (teeState.canceled2 === false) {\n            ReadableStreamDefaultControllerClose(branch2);\n          }\n\n          teeState.closedOrErrored = true;\n        }\n\n        if (teeState.closedOrErrored === true) {\n          return;\n        }\n\n        var value1 = value;\n        var value2 = value;\n\n        if (teeState.canceled1 === false) {\n          ReadableStreamDefaultControllerEnqueue(branch1, value1);\n        }\n\n        if (teeState.canceled2 === false) {\n          ReadableStreamDefaultControllerEnqueue(branch2, value2);\n        }\n      });\n    }\n\n    return f;\n  }\n\n  function create_ReadableStreamTeeBranch1CancelFunction() {\n    function f(reason) {\n      var stream = f._stream,\n          teeState = f._teeState;\n      teeState.canceled1 = true;\n      teeState.reason1 = reason;\n\n      if (teeState.canceled2 === true) {\n        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n        var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n        teeState._resolve(cancelResult);\n      }\n\n      return teeState.promise;\n    }\n\n    return f;\n  }\n\n  function create_ReadableStreamTeeBranch2CancelFunction() {\n    function f(reason) {\n      var stream = f._stream,\n          teeState = f._teeState;\n      teeState.canceled2 = true;\n      teeState.reason2 = reason;\n\n      if (teeState.canceled1 === true) {\n        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n        var cancelResult = ReadableStreamCancel(stream, compositeReason);\n\n        teeState._resolve(cancelResult);\n      }\n\n      return teeState.promise;\n    }\n\n    return f;\n  }\n\n  function ReadableStreamAddReadIntoRequest(stream) {\n    assert(IsReadableStreamBYOBReader(stream._reader) === true);\n    assert(stream._state === 'readable' || stream._state === 'closed');\n    var promise = new Promise(function (resolve, reject) {\n      var readIntoRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._reader._readIntoRequests.push(readIntoRequest);\n    });\n    return promise;\n  }\n\n  function ReadableStreamAddReadRequest(stream) {\n    assert(IsReadableStreamDefaultReader(stream._reader) === true);\n    assert(stream._state === 'readable');\n    var promise = new Promise(function (resolve, reject) {\n      var readRequest = {\n        _resolve: resolve,\n        _reject: reject\n      };\n\n      stream._reader._readRequests.push(readRequest);\n    });\n    return promise;\n  }\n\n  function ReadableStreamCancel(stream, reason) {\n    stream._disturbed = true;\n\n    if (stream._state === 'closed') {\n      return Promise.resolve(undefined);\n    }\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    ReadableStreamClose(stream);\n\n    var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n\n    return sourceCancelPromise.then(function () {\n      return undefined;\n    });\n  }\n\n  function ReadableStreamClose(stream) {\n    assert(stream._state === 'readable');\n    stream._state = 'closed';\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return undefined;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === true) {\n      for (var i = 0; i < reader._readRequests.length; i++) {\n        var _resolve = reader._readRequests[i]._resolve;\n\n        _resolve(CreateIterResultObject(undefined, true));\n      }\n\n      reader._readRequests = [];\n    }\n\n    defaultReaderClosedPromiseResolve(reader);\n    return undefined;\n  }\n\n  function ReadableStreamError(stream, e) {\n    assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n    assert(stream._state === 'readable', 'state must be readable');\n    stream._state = 'errored';\n    stream._storedError = e;\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return undefined;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === true) {\n      for (var i = 0; i < reader._readRequests.length; i++) {\n        var readRequest = reader._readRequests[i];\n\n        readRequest._reject(e);\n      }\n\n      reader._readRequests = [];\n    } else {\n      assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n      for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n        var readIntoRequest = reader._readIntoRequests[_i];\n\n        readIntoRequest._reject(e);\n      }\n\n      reader._readIntoRequests = [];\n    }\n\n    defaultReaderClosedPromiseReject(reader, e);\n\n    reader._closedPromise.catch(function () {});\n  }\n\n  function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n    var reader = stream._reader;\n    assert(reader._readIntoRequests.length > 0);\n\n    var readIntoRequest = reader._readIntoRequests.shift();\n\n    readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n  }\n\n  function ReadableStreamFulfillReadRequest(stream, chunk, done) {\n    var reader = stream._reader;\n    assert(reader._readRequests.length > 0);\n\n    var readRequest = reader._readRequests.shift();\n\n    readRequest._resolve(CreateIterResultObject(chunk, done));\n  }\n\n  function ReadableStreamGetNumReadIntoRequests(stream) {\n    return stream._reader._readIntoRequests.length;\n  }\n\n  function ReadableStreamGetNumReadRequests(stream) {\n    return stream._reader._readRequests.length;\n  }\n\n  function ReadableStreamHasBYOBReader(stream) {\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return false;\n    }\n\n    if (IsReadableStreamBYOBReader(reader) === false) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamHasDefaultReader(stream) {\n    var reader = stream._reader;\n\n    if (reader === undefined) {\n      return false;\n    }\n\n    if (IsReadableStreamDefaultReader(reader) === false) {\n      return false;\n    }\n\n    return true;\n  }\n\n  var ReadableStreamDefaultReader = function () {\n    function ReadableStreamDefaultReader(stream) {\n      _classCallCheck(this, ReadableStreamDefaultReader);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');\n      }\n\n      if (IsReadableStreamLocked(stream) === true) {\n        throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n      }\n\n      ReadableStreamReaderGenericInitialize(this, stream);\n      this._readRequests = [];\n    }\n\n    _createClass(ReadableStreamDefaultReader, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('cancel'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('cancel'));\n        }\n\n        return ReadableStreamReaderGenericCancel(this, reason);\n      }\n    }, {\n      key: 'read',\n      value: function read() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('read'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('read from'));\n        }\n\n        return ReadableStreamDefaultReaderRead(this);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          throw defaultReaderBrandCheckException('releaseLock');\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return;\n        }\n\n        if (this._readRequests.length > 0) {\n          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n        }\n\n        ReadableStreamReaderGenericRelease(this);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (IsReadableStreamDefaultReader(this) === false) {\n          return Promise.reject(defaultReaderBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }]);\n\n    return ReadableStreamDefaultReader;\n  }();\n\n  var ReadableStreamBYOBReader = function () {\n    function ReadableStreamBYOBReader(stream) {\n      _classCallCheck(this, ReadableStreamBYOBReader);\n\n      if (!IsReadableStream(stream)) {\n        throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');\n      }\n\n      if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n        throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n      }\n\n      if (IsReadableStreamLocked(stream)) {\n        throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n      }\n\n      ReadableStreamReaderGenericInitialize(this, stream);\n      this._readIntoRequests = [];\n    }\n\n    _createClass(ReadableStreamBYOBReader, [{\n      key: 'cancel',\n      value: function cancel(reason) {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('cancel'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('cancel'));\n        }\n\n        return ReadableStreamReaderGenericCancel(this, reason);\n      }\n    }, {\n      key: 'read',\n      value: function read(view) {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('read'));\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return Promise.reject(readerLockException('read from'));\n        }\n\n        if (!ArrayBuffer.isView(view)) {\n          return Promise.reject(new TypeError('view must be an array buffer view'));\n        }\n\n        if (view.byteLength === 0) {\n          return Promise.reject(new TypeError('view must have non-zero byteLength'));\n        }\n\n        return ReadableStreamBYOBReaderRead(this, view);\n      }\n    }, {\n      key: 'releaseLock',\n      value: function releaseLock() {\n        if (!IsReadableStreamBYOBReader(this)) {\n          throw byobReaderBrandCheckException('releaseLock');\n        }\n\n        if (this._ownerReadableStream === undefined) {\n          return;\n        }\n\n        if (this._readIntoRequests.length > 0) {\n          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');\n        }\n\n        ReadableStreamReaderGenericRelease(this);\n      }\n    }, {\n      key: 'closed',\n      get: function get() {\n        if (!IsReadableStreamBYOBReader(this)) {\n          return Promise.reject(byobReaderBrandCheckException('closed'));\n        }\n\n        return this._closedPromise;\n      }\n    }]);\n\n    return ReadableStreamBYOBReader;\n  }();\n\n  function IsReadableStreamBYOBReader(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamDefaultReader(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamReaderGenericInitialize(reader, stream) {\n    reader._ownerReadableStream = stream;\n    stream._reader = reader;\n\n    if (stream._state === 'readable') {\n      defaultReaderClosedPromiseInitialize(reader);\n    } else if (stream._state === 'closed') {\n      defaultReaderClosedPromiseInitializeAsResolved(reader);\n    } else {\n      assert(stream._state === 'errored', 'state must be errored');\n      defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n\n      reader._closedPromise.catch(function () {});\n    }\n  }\n\n  function ReadableStreamReaderGenericCancel(reader, reason) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    return ReadableStreamCancel(stream, reason);\n  }\n\n  function ReadableStreamReaderGenericRelease(reader) {\n    assert(reader._ownerReadableStream !== undefined);\n    assert(reader._ownerReadableStream._reader === reader);\n\n    if (reader._ownerReadableStream._state === 'readable') {\n      defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n    } else {\n      defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\\'s closedness'));\n    }\n\n    reader._closedPromise.catch(function () {});\n\n    reader._ownerReadableStream._reader = undefined;\n    reader._ownerReadableStream = undefined;\n  }\n\n  function ReadableStreamBYOBReaderRead(reader, view) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    stream._disturbed = true;\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n  }\n\n  function ReadableStreamDefaultReaderRead(reader) {\n    var stream = reader._ownerReadableStream;\n    assert(stream !== undefined);\n    stream._disturbed = true;\n\n    if (stream._state === 'closed') {\n      return Promise.resolve(CreateIterResultObject(undefined, true));\n    }\n\n    if (stream._state === 'errored') {\n      return Promise.reject(stream._storedError);\n    }\n\n    assert(stream._state === 'readable');\n    return stream._readableStreamController.__pullSteps();\n  }\n\n  var ReadableStreamDefaultController = function () {\n    function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n      _classCallCheck(this, ReadableStreamDefaultController);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n      }\n\n      if (stream._readableStreamController !== undefined) {\n        throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n      }\n\n      this._controlledReadableStream = stream;\n      this._underlyingSource = underlyingSource;\n      this._queue = undefined;\n      this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._started = false;\n      this._closeRequested = false;\n      this._pullAgain = false;\n      this._pulling = false;\n      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n      this._strategySize = normalizedStrategy.size;\n      this._strategyHWM = normalizedStrategy.highWaterMark;\n      var controller = this;\n      var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n      Promise.resolve(startResult).then(function () {\n        controller._started = true;\n        assert(controller._pulling === false);\n        assert(controller._pullAgain === false);\n        ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n      }, function (r) {\n        ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n      }).catch(rethrowAssertionErrorRejection);\n    }\n\n    _createClass(ReadableStreamDefaultController, [{\n      key: 'close',\n      value: function close() {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('close');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('The stream has already been closed; do not close it again!');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n        }\n\n        ReadableStreamDefaultControllerClose(this);\n      }\n    }, {\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('enqueue');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('stream is closed or draining');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n        }\n\n        return ReadableStreamDefaultControllerEnqueue(this, chunk);\n      }\n    }, {\n      key: 'error',\n      value: function error(e) {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('error');\n        }\n\n        var stream = this._controlledReadableStream;\n\n        if (stream._state !== 'readable') {\n          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n        }\n\n        ReadableStreamDefaultControllerError(this, e);\n      }\n    }, {\n      key: '__cancelSteps',\n      value: function __cancelSteps(reason) {\n        ResetQueue(this);\n        return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);\n      }\n    }, {\n      key: '__pullSteps',\n      value: function __pullSteps() {\n        var stream = this._controlledReadableStream;\n\n        if (this._queue.length > 0) {\n          var chunk = DequeueValue(this);\n\n          if (this._closeRequested === true && this._queue.length === 0) {\n            ReadableStreamClose(stream);\n          } else {\n            ReadableStreamDefaultControllerCallPullIfNeeded(this);\n          }\n\n          return Promise.resolve(CreateIterResultObject(chunk, false));\n        }\n\n        var pendingPromise = ReadableStreamAddReadRequest(stream);\n        ReadableStreamDefaultControllerCallPullIfNeeded(this);\n        return pendingPromise;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsReadableStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('desiredSize');\n        }\n\n        return ReadableStreamDefaultControllerGetDesiredSize(this);\n      }\n    }]);\n\n    return ReadableStreamDefaultController;\n  }();\n\n  function IsReadableStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n    var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n\n    if (shouldPull === false) {\n      return undefined;\n    }\n\n    if (controller._pulling === true) {\n      controller._pullAgain = true;\n      return undefined;\n    }\n\n    assert(controller._pullAgain === false);\n    controller._pulling = true;\n    var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n    pullPromise.then(function () {\n      controller._pulling = false;\n\n      if (controller._pullAgain === true) {\n        controller._pullAgain = false;\n        return ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n      }\n\n      return undefined;\n    }, function (e) {\n      ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n    }).catch(rethrowAssertionErrorRejection);\n    return undefined;\n  }\n\n  function ReadableStreamDefaultControllerShouldCallPull(controller) {\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state === 'closed' || stream._state === 'errored') {\n      return false;\n    }\n\n    if (controller._closeRequested === true) {\n      return false;\n    }\n\n    if (controller._started === false) {\n      return false;\n    }\n\n    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      return true;\n    }\n\n    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n\n    if (desiredSize > 0) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function ReadableStreamDefaultControllerClose(controller) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n    controller._closeRequested = true;\n\n    if (controller._queue.length === 0) {\n      ReadableStreamClose(stream);\n    }\n  }\n\n  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n\n    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      ReadableStreamFulfillReadRequest(stream, chunk, false);\n    } else {\n      var chunkSize = 1;\n\n      if (controller._strategySize !== undefined) {\n        var strategySize = controller._strategySize;\n\n        try {\n          chunkSize = strategySize(chunk);\n        } catch (chunkSizeE) {\n          ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n          throw chunkSizeE;\n        }\n      }\n\n      try {\n        EnqueueValueWithSize(controller, chunk, chunkSize);\n      } catch (enqueueE) {\n        ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n        throw enqueueE;\n      }\n    }\n\n    ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n    return undefined;\n  }\n\n  function ReadableStreamDefaultControllerError(controller, e) {\n    var stream = controller._controlledReadableStream;\n    assert(stream._state === 'readable');\n    ResetQueue(controller);\n    ReadableStreamError(stream, e);\n  }\n\n  function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n    if (controller._controlledReadableStream._state === 'readable') {\n      ReadableStreamDefaultControllerError(controller, e);\n    }\n  }\n\n  function ReadableStreamDefaultControllerGetDesiredSize(controller) {\n    var stream = controller._controlledReadableStream;\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  var ReadableStreamBYOBRequest = function () {\n    function ReadableStreamBYOBRequest(controller, view) {\n      _classCallCheck(this, ReadableStreamBYOBRequest);\n\n      this._associatedReadableByteStreamController = controller;\n      this._view = view;\n    }\n\n    _createClass(ReadableStreamBYOBRequest, [{\n      key: 'respond',\n      value: function respond(bytesWritten) {\n        if (IsReadableStreamBYOBRequest(this) === false) {\n          throw byobRequestBrandCheckException('respond');\n        }\n\n        if (this._associatedReadableByteStreamController === undefined) {\n          throw new TypeError('This BYOB request has been invalidated');\n        }\n\n        ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);\n      }\n    }, {\n      key: 'respondWithNewView',\n      value: function respondWithNewView(view) {\n        if (IsReadableStreamBYOBRequest(this) === false) {\n          throw byobRequestBrandCheckException('respond');\n        }\n\n        if (this._associatedReadableByteStreamController === undefined) {\n          throw new TypeError('This BYOB request has been invalidated');\n        }\n\n        if (!ArrayBuffer.isView(view)) {\n          throw new TypeError('You can only respond with array buffer views');\n        }\n\n        ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n      }\n    }, {\n      key: 'view',\n      get: function get() {\n        return this._view;\n      }\n    }]);\n\n    return ReadableStreamBYOBRequest;\n  }();\n\n  var ReadableByteStreamController = function () {\n    function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n      _classCallCheck(this, ReadableByteStreamController);\n\n      if (IsReadableStream(stream) === false) {\n        throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n      }\n\n      if (stream._readableStreamController !== undefined) {\n        throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');\n      }\n\n      this._controlledReadableStream = stream;\n      this._underlyingByteSource = underlyingByteSource;\n      this._pullAgain = false;\n      this._pulling = false;\n      ReadableByteStreamControllerClearPendingPullIntos(this);\n      this._queue = this._queueTotalSize = undefined;\n      ResetQueue(this);\n      this._closeRequested = false;\n      this._started = false;\n      this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n      var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n\n      if (autoAllocateChunkSize !== undefined) {\n        if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n          throw new RangeError('autoAllocateChunkSize must be a positive integer');\n        }\n      }\n\n      this._autoAllocateChunkSize = autoAllocateChunkSize;\n      this._pendingPullIntos = [];\n      var controller = this;\n      var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n      Promise.resolve(startResult).then(function () {\n        controller._started = true;\n        assert(controller._pulling === false);\n        assert(controller._pullAgain === false);\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n      }, function (r) {\n        if (stream._state === 'readable') {\n          ReadableByteStreamControllerError(controller, r);\n        }\n      }).catch(rethrowAssertionErrorRejection);\n    }\n\n    _createClass(ReadableByteStreamController, [{\n      key: 'close',\n      value: function close() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('close');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('The stream has already been closed; do not close it again!');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');\n        }\n\n        ReadableByteStreamControllerClose(this);\n      }\n    }, {\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('enqueue');\n        }\n\n        if (this._closeRequested === true) {\n          throw new TypeError('stream is closed or draining');\n        }\n\n        var state = this._controlledReadableStream._state;\n\n        if (state !== 'readable') {\n          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');\n        }\n\n        if (!ArrayBuffer.isView(chunk)) {\n          throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n        }\n\n        ReadableByteStreamControllerEnqueue(this, chunk);\n      }\n    }, {\n      key: 'error',\n      value: function error(e) {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('error');\n        }\n\n        var stream = this._controlledReadableStream;\n\n        if (stream._state !== 'readable') {\n          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');\n        }\n\n        ReadableByteStreamControllerError(this, e);\n      }\n    }, {\n      key: '__cancelSteps',\n      value: function __cancelSteps(reason) {\n        if (this._pendingPullIntos.length > 0) {\n          var firstDescriptor = this._pendingPullIntos[0];\n          firstDescriptor.bytesFilled = 0;\n        }\n\n        ResetQueue(this);\n        return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);\n      }\n    }, {\n      key: '__pullSteps',\n      value: function __pullSteps() {\n        var stream = this._controlledReadableStream;\n        assert(ReadableStreamHasDefaultReader(stream) === true);\n\n        if (this._queueTotalSize > 0) {\n          assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n          var entry = this._queue.shift();\n\n          this._queueTotalSize -= entry.byteLength;\n          ReadableByteStreamControllerHandleQueueDrain(this);\n          var view = void 0;\n\n          try {\n            view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n          } catch (viewE) {\n            return Promise.reject(viewE);\n          }\n\n          return Promise.resolve(CreateIterResultObject(view, false));\n        }\n\n        var autoAllocateChunkSize = this._autoAllocateChunkSize;\n\n        if (autoAllocateChunkSize !== undefined) {\n          var buffer = void 0;\n\n          try {\n            buffer = new ArrayBuffer(autoAllocateChunkSize);\n          } catch (bufferE) {\n            return Promise.reject(bufferE);\n          }\n\n          var pullIntoDescriptor = {\n            buffer: buffer,\n            byteOffset: 0,\n            byteLength: autoAllocateChunkSize,\n            bytesFilled: 0,\n            elementSize: 1,\n            ctor: Uint8Array,\n            readerType: 'default'\n          };\n\n          this._pendingPullIntos.push(pullIntoDescriptor);\n        }\n\n        var promise = ReadableStreamAddReadRequest(stream);\n        ReadableByteStreamControllerCallPullIfNeeded(this);\n        return promise;\n      }\n    }, {\n      key: 'byobRequest',\n      get: function get() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('byobRequest');\n        }\n\n        if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {\n          var firstDescriptor = this._pendingPullIntos[0];\n          var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);\n          this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n        }\n\n        return this._byobRequest;\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsReadableByteStreamController(this) === false) {\n          throw byteStreamControllerBrandCheckException('desiredSize');\n        }\n\n        return ReadableByteStreamControllerGetDesiredSize(this);\n      }\n    }]);\n\n    return ReadableByteStreamController;\n  }();\n\n  function IsReadableByteStreamController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsReadableStreamBYOBRequest(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function ReadableByteStreamControllerCallPullIfNeeded(controller) {\n    var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n\n    if (shouldPull === false) {\n      return undefined;\n    }\n\n    if (controller._pulling === true) {\n      controller._pullAgain = true;\n      return undefined;\n    }\n\n    assert(controller._pullAgain === false);\n    controller._pulling = true;\n    var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n    pullPromise.then(function () {\n      controller._pulling = false;\n\n      if (controller._pullAgain === true) {\n        controller._pullAgain = false;\n        ReadableByteStreamControllerCallPullIfNeeded(controller);\n      }\n    }, function (e) {\n      if (controller._controlledReadableStream._state === 'readable') {\n        ReadableByteStreamControllerError(controller, e);\n      }\n    }).catch(rethrowAssertionErrorRejection);\n    return undefined;\n  }\n\n  function ReadableByteStreamControllerClearPendingPullIntos(controller) {\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    controller._pendingPullIntos = [];\n  }\n\n  function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n    assert(stream._state !== 'errored', 'state must not be errored');\n    var done = false;\n\n    if (stream._state === 'closed') {\n      assert(pullIntoDescriptor.bytesFilled === 0);\n      done = true;\n    }\n\n    var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n    if (pullIntoDescriptor.readerType === 'default') {\n      ReadableStreamFulfillReadRequest(stream, filledView, done);\n    } else {\n      assert(pullIntoDescriptor.readerType === 'byob');\n      ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n    }\n  }\n\n  function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n    var bytesFilled = pullIntoDescriptor.bytesFilled;\n    var elementSize = pullIntoDescriptor.elementSize;\n    assert(bytesFilled <= pullIntoDescriptor.byteLength);\n    assert(bytesFilled % elementSize === 0);\n    return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n  }\n\n  function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n    controller._queue.push({\n      buffer: buffer,\n      byteOffset: byteOffset,\n      byteLength: byteLength\n    });\n\n    controller._queueTotalSize += byteLength;\n  }\n\n  function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n    var elementSize = pullIntoDescriptor.elementSize;\n    var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n    var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n    var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n    var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n    var totalBytesToCopyRemaining = maxBytesToCopy;\n    var ready = false;\n\n    if (maxAlignedBytes > currentAlignedBytes) {\n      totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n      ready = true;\n    }\n\n    var queue = controller._queue;\n\n    while (totalBytesToCopyRemaining > 0) {\n      var headOfQueue = queue[0];\n      var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n      var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n      ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n      if (headOfQueue.byteLength === bytesToCopy) {\n        queue.shift();\n      } else {\n        headOfQueue.byteOffset += bytesToCopy;\n        headOfQueue.byteLength -= bytesToCopy;\n      }\n\n      controller._queueTotalSize -= bytesToCopy;\n      ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n      totalBytesToCopyRemaining -= bytesToCopy;\n    }\n\n    if (ready === false) {\n      assert(controller._queueTotalSize === 0, 'queue must be empty');\n      assert(pullIntoDescriptor.bytesFilled > 0);\n      assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);\n    }\n\n    return ready;\n  }\n\n  function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n    assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    pullIntoDescriptor.bytesFilled += size;\n  }\n\n  function ReadableByteStreamControllerHandleQueueDrain(controller) {\n    assert(controller._controlledReadableStream._state === 'readable');\n\n    if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n      ReadableStreamClose(controller._controlledReadableStream);\n    } else {\n      ReadableByteStreamControllerCallPullIfNeeded(controller);\n    }\n  }\n\n  function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n    if (controller._byobRequest === undefined) {\n      return;\n    }\n\n    controller._byobRequest._associatedReadableByteStreamController = undefined;\n    controller._byobRequest._view = undefined;\n    controller._byobRequest = undefined;\n  }\n\n  function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n    assert(controller._closeRequested === false);\n\n    while (controller._pendingPullIntos.length > 0) {\n      if (controller._queueTotalSize === 0) {\n        return;\n      }\n\n      var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n        ReadableByteStreamControllerShiftPendingPullInto(controller);\n        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n      }\n    }\n  }\n\n  function ReadableByteStreamControllerPullInto(controller, view) {\n    var stream = controller._controlledReadableStream;\n    var elementSize = 1;\n\n    if (view.constructor !== DataView) {\n      elementSize = view.constructor.BYTES_PER_ELEMENT;\n    }\n\n    var ctor = view.constructor;\n    var pullIntoDescriptor = {\n      buffer: view.buffer,\n      byteOffset: view.byteOffset,\n      byteLength: view.byteLength,\n      bytesFilled: 0,\n      elementSize: elementSize,\n      ctor: ctor,\n      readerType: 'byob'\n    };\n\n    if (controller._pendingPullIntos.length > 0) {\n      pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n      controller._pendingPullIntos.push(pullIntoDescriptor);\n\n      return ReadableStreamAddReadIntoRequest(stream);\n    }\n\n    if (stream._state === 'closed') {\n      var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);\n      return Promise.resolve(CreateIterResultObject(emptyView, true));\n    }\n\n    if (controller._queueTotalSize > 0) {\n      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n        ReadableByteStreamControllerHandleQueueDrain(controller);\n        return Promise.resolve(CreateIterResultObject(filledView, false));\n      }\n\n      if (controller._closeRequested === true) {\n        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n        ReadableByteStreamControllerError(controller, e);\n        return Promise.reject(e);\n      }\n    }\n\n    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n\n    controller._pendingPullIntos.push(pullIntoDescriptor);\n\n    var promise = ReadableStreamAddReadIntoRequest(stream);\n    ReadableByteStreamControllerCallPullIfNeeded(controller);\n    return promise;\n  }\n\n  function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n    firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n    assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n    var stream = controller._controlledReadableStream;\n\n    if (ReadableStreamHasBYOBReader(stream) === true) {\n      while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n        var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n        ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n      }\n    }\n  }\n\n  function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n    if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n      throw new RangeError('bytesWritten out of range');\n    }\n\n    ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n    if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n      return;\n    }\n\n    ReadableByteStreamControllerShiftPendingPullInto(controller);\n    var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n\n    if (remainderSize > 0) {\n      var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n      var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n    }\n\n    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n    pullIntoDescriptor.bytesFilled -= remainderSize;\n    ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n    ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n  }\n\n  function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n    var firstDescriptor = controller._pendingPullIntos[0];\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state === 'closed') {\n      if (bytesWritten !== 0) {\n        throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');\n      }\n\n      ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n    } else {\n      assert(stream._state === 'readable');\n      ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n    }\n  }\n\n  function ReadableByteStreamControllerShiftPendingPullInto(controller) {\n    var descriptor = controller._pendingPullIntos.shift();\n\n    ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n    return descriptor;\n  }\n\n  function ReadableByteStreamControllerShouldCallPull(controller) {\n    var stream = controller._controlledReadableStream;\n\n    if (stream._state !== 'readable') {\n      return false;\n    }\n\n    if (controller._closeRequested === true) {\n      return false;\n    }\n\n    if (controller._started === false) {\n      return false;\n    }\n\n    if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n      return true;\n    }\n\n    if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n      return true;\n    }\n\n    if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function ReadableByteStreamControllerClose(controller) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n\n    if (controller._queueTotalSize > 0) {\n      controller._closeRequested = true;\n      return;\n    }\n\n    if (controller._pendingPullIntos.length > 0) {\n      var firstPendingPullInto = controller._pendingPullIntos[0];\n\n      if (firstPendingPullInto.bytesFilled > 0) {\n        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n        ReadableByteStreamControllerError(controller, e);\n        throw e;\n      }\n    }\n\n    ReadableStreamClose(stream);\n  }\n\n  function ReadableByteStreamControllerEnqueue(controller, chunk) {\n    var stream = controller._controlledReadableStream;\n    assert(controller._closeRequested === false);\n    assert(stream._state === 'readable');\n    var buffer = chunk.buffer;\n    var byteOffset = chunk.byteOffset;\n    var byteLength = chunk.byteLength;\n    var transferredBuffer = TransferArrayBuffer(buffer);\n\n    if (ReadableStreamHasDefaultReader(stream) === true) {\n      if (ReadableStreamGetNumReadRequests(stream) === 0) {\n        ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n      } else {\n        assert(controller._queue.length === 0);\n        var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n        ReadableStreamFulfillReadRequest(stream, transferredView, false);\n      }\n    } else if (ReadableStreamHasBYOBReader(stream) === true) {\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n      ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n    } else {\n      assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n    }\n  }\n\n  function ReadableByteStreamControllerError(controller, e) {\n    var stream = controller._controlledReadableStream;\n    assert(stream._state === 'readable');\n    ReadableByteStreamControllerClearPendingPullIntos(controller);\n    ResetQueue(controller);\n    ReadableStreamError(stream, e);\n  }\n\n  function ReadableByteStreamControllerGetDesiredSize(controller) {\n    var stream = controller._controlledReadableStream;\n    var state = stream._state;\n\n    if (state === 'errored') {\n      return null;\n    }\n\n    if (state === 'closed') {\n      return 0;\n    }\n\n    return controller._strategyHWM - controller._queueTotalSize;\n  }\n\n  function ReadableByteStreamControllerRespond(controller, bytesWritten) {\n    bytesWritten = Number(bytesWritten);\n\n    if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n      throw new RangeError('bytesWritten must be a finite');\n    }\n\n    assert(controller._pendingPullIntos.length > 0);\n    ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n  }\n\n  function ReadableByteStreamControllerRespondWithNewView(controller, view) {\n    assert(controller._pendingPullIntos.length > 0);\n    var firstDescriptor = controller._pendingPullIntos[0];\n\n    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {\n      throw new RangeError('The region specified by view does not match byobRequest');\n    }\n\n    if (firstDescriptor.byteLength !== view.byteLength) {\n      throw new RangeError('The buffer of view has different capacity than byobRequest');\n    }\n\n    firstDescriptor.buffer = view.buffer;\n    ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n  }\n\n  function readerLockException(name) {\n    return new TypeError('Cannot ' + name + ' a stream using a released reader');\n  }\n\n  function defaultReaderBrandCheckException(name) {\n    return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n  }\n\n  function defaultReaderClosedPromiseInitialize(reader) {\n    reader._closedPromise = new Promise(function (resolve, reject) {\n      reader._closedPromise_resolve = resolve;\n      reader._closedPromise_reject = reject;\n    });\n  }\n\n  function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n    reader._closedPromise = Promise.reject(reason);\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseInitializeAsResolved(reader) {\n    reader._closedPromise = Promise.resolve(undefined);\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseReject(reader, reason) {\n    assert(reader._closedPromise_resolve !== undefined);\n    assert(reader._closedPromise_reject !== undefined);\n\n    reader._closedPromise_reject(reason);\n\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function defaultReaderClosedPromiseResetToRejected(reader, reason) {\n    assert(reader._closedPromise_resolve === undefined);\n    assert(reader._closedPromise_reject === undefined);\n    reader._closedPromise = Promise.reject(reason);\n  }\n\n  function defaultReaderClosedPromiseResolve(reader) {\n    assert(reader._closedPromise_resolve !== undefined);\n    assert(reader._closedPromise_reject !== undefined);\n\n    reader._closedPromise_resolve(undefined);\n\n    reader._closedPromise_resolve = undefined;\n    reader._closedPromise_reject = undefined;\n  }\n\n  function byobReaderBrandCheckException(name) {\n    return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n  }\n\n  function defaultControllerBrandCheckException(name) {\n    return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n  }\n\n  function byobRequestBrandCheckException(name) {\n    return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n  }\n\n  function byteStreamControllerBrandCheckException(name) {\n    return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n  }\n\n  function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n    try {\n      Promise.prototype.then.call(promise, undefined, function () {});\n    } catch (e) {}\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var transformStream = __w_pdfjs_require__(6);\n\n  var readableStream = __w_pdfjs_require__(4);\n\n  var writableStream = __w_pdfjs_require__(2);\n\n  exports.TransformStream = transformStream.TransformStream;\n  exports.ReadableStream = readableStream.ReadableStream;\n  exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\n  exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\n  exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\n  exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\n  exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\n  exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\n  exports.IsWritableStream = writableStream.IsWritableStream;\n  exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\n  exports.WritableStream = writableStream.WritableStream;\n  exports.WritableStreamAbort = writableStream.WritableStreamAbort;\n  exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\n  exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\n  exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\n  exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n}, function (module, exports, __w_pdfjs_require__) {\n  \"use strict\";\n\n  var _createClass = function () {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if (\"value\" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  }();\n\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError(\"Cannot call a class as a function\");\n    }\n  }\n\n  var _require = __w_pdfjs_require__(1),\n      assert = _require.assert;\n\n  var _require2 = __w_pdfjs_require__(0),\n      InvokeOrNoop = _require2.InvokeOrNoop,\n      PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n      PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n      typeIsObject = _require2.typeIsObject;\n\n  var _require3 = __w_pdfjs_require__(4),\n      ReadableStream = _require3.ReadableStream,\n      ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,\n      ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,\n      ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,\n      ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;\n\n  var _require4 = __w_pdfjs_require__(2),\n      WritableStream = _require4.WritableStream,\n      WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n  function TransformStreamCloseReadable(transformStream) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    if (transformStream._readableClosed === true) {\n      throw new TypeError('Readable side is already closed');\n    }\n\n    TransformStreamCloseReadableInternal(transformStream);\n  }\n\n  function TransformStreamEnqueueToReadable(transformStream, chunk) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    if (transformStream._readableClosed === true) {\n      throw new TypeError('Readable side is already closed');\n    }\n\n    var controller = transformStream._readableController;\n\n    try {\n      ReadableStreamDefaultControllerEnqueue(controller, chunk);\n    } catch (e) {\n      transformStream._readableClosed = true;\n      TransformStreamErrorIfNeeded(transformStream, e);\n      throw transformStream._storedError;\n    }\n\n    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n    var maybeBackpressure = desiredSize <= 0;\n\n    if (maybeBackpressure === true && transformStream._backpressure === false) {\n      TransformStreamSetBackpressure(transformStream, true);\n    }\n  }\n\n  function TransformStreamError(transformStream, e) {\n    if (transformStream._errored === true) {\n      throw new TypeError('TransformStream is already errored');\n    }\n\n    TransformStreamErrorInternal(transformStream, e);\n  }\n\n  function TransformStreamCloseReadableInternal(transformStream) {\n    assert(transformStream._errored === false);\n    assert(transformStream._readableClosed === false);\n\n    try {\n      ReadableStreamDefaultControllerClose(transformStream._readableController);\n    } catch (e) {\n      assert(false);\n    }\n\n    transformStream._readableClosed = true;\n  }\n\n  function TransformStreamErrorIfNeeded(transformStream, e) {\n    if (transformStream._errored === false) {\n      TransformStreamErrorInternal(transformStream, e);\n    }\n  }\n\n  function TransformStreamErrorInternal(transformStream, e) {\n    assert(transformStream._errored === false);\n    transformStream._errored = true;\n    transformStream._storedError = e;\n\n    if (transformStream._writableDone === false) {\n      WritableStreamDefaultControllerError(transformStream._writableController, e);\n    }\n\n    if (transformStream._readableClosed === false) {\n      ReadableStreamDefaultControllerError(transformStream._readableController, e);\n    }\n  }\n\n  function TransformStreamReadableReadyPromise(transformStream) {\n    assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n    if (transformStream._backpressure === false) {\n      return Promise.resolve();\n    }\n\n    assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n    return transformStream._backpressureChangePromise;\n  }\n\n  function TransformStreamSetBackpressure(transformStream, backpressure) {\n    assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n    if (transformStream._backpressureChangePromise !== undefined) {\n      transformStream._backpressureChangePromise_resolve(backpressure);\n    }\n\n    transformStream._backpressureChangePromise = new Promise(function (resolve) {\n      transformStream._backpressureChangePromise_resolve = resolve;\n    });\n\n    transformStream._backpressureChangePromise.then(function (resolution) {\n      assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n    });\n\n    transformStream._backpressure = backpressure;\n  }\n\n  function TransformStreamDefaultTransform(chunk, transformStreamController) {\n    var transformStream = transformStreamController._controlledTransformStream;\n    TransformStreamEnqueueToReadable(transformStream, chunk);\n    return Promise.resolve();\n  }\n\n  function TransformStreamTransform(transformStream, chunk) {\n    assert(transformStream._errored === false);\n    assert(transformStream._transforming === false);\n    assert(transformStream._backpressure === false);\n    transformStream._transforming = true;\n    var transformer = transformStream._transformer;\n    var controller = transformStream._transformStreamController;\n    var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n    return transformPromise.then(function () {\n      transformStream._transforming = false;\n      return TransformStreamReadableReadyPromise(transformStream);\n    }, function (e) {\n      TransformStreamErrorIfNeeded(transformStream, e);\n      return Promise.reject(e);\n    });\n  }\n\n  function IsTransformStreamDefaultController(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  function IsTransformStream(x) {\n    if (!typeIsObject(x)) {\n      return false;\n    }\n\n    if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n      return false;\n    }\n\n    return true;\n  }\n\n  var TransformStreamSink = function () {\n    function TransformStreamSink(transformStream, startPromise) {\n      _classCallCheck(this, TransformStreamSink);\n\n      this._transformStream = transformStream;\n      this._startPromise = startPromise;\n    }\n\n    _createClass(TransformStreamSink, [{\n      key: 'start',\n      value: function start(c) {\n        var transformStream = this._transformStream;\n        transformStream._writableController = c;\n        return this._startPromise.then(function () {\n          return TransformStreamReadableReadyPromise(transformStream);\n        });\n      }\n    }, {\n      key: 'write',\n      value: function write(chunk) {\n        var transformStream = this._transformStream;\n        return TransformStreamTransform(transformStream, chunk);\n      }\n    }, {\n      key: 'abort',\n      value: function abort() {\n        var transformStream = this._transformStream;\n        transformStream._writableDone = true;\n        TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        var transformStream = this._transformStream;\n        assert(transformStream._transforming === false);\n        transformStream._writableDone = true;\n        var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n        return flushPromise.then(function () {\n          if (transformStream._errored === true) {\n            return Promise.reject(transformStream._storedError);\n          }\n\n          if (transformStream._readableClosed === false) {\n            TransformStreamCloseReadableInternal(transformStream);\n          }\n\n          return Promise.resolve();\n        }).catch(function (r) {\n          TransformStreamErrorIfNeeded(transformStream, r);\n          return Promise.reject(transformStream._storedError);\n        });\n      }\n    }]);\n\n    return TransformStreamSink;\n  }();\n\n  var TransformStreamSource = function () {\n    function TransformStreamSource(transformStream, startPromise) {\n      _classCallCheck(this, TransformStreamSource);\n\n      this._transformStream = transformStream;\n      this._startPromise = startPromise;\n    }\n\n    _createClass(TransformStreamSource, [{\n      key: 'start',\n      value: function start(c) {\n        var transformStream = this._transformStream;\n        transformStream._readableController = c;\n        return this._startPromise.then(function () {\n          assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n          if (transformStream._backpressure === true) {\n            return Promise.resolve();\n          }\n\n          assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n          return transformStream._backpressureChangePromise;\n        });\n      }\n    }, {\n      key: 'pull',\n      value: function pull() {\n        var transformStream = this._transformStream;\n        assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n        assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n        TransformStreamSetBackpressure(transformStream, false);\n        return transformStream._backpressureChangePromise;\n      }\n    }, {\n      key: 'cancel',\n      value: function cancel() {\n        var transformStream = this._transformStream;\n        transformStream._readableClosed = true;\n        TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));\n      }\n    }]);\n\n    return TransformStreamSource;\n  }();\n\n  var TransformStreamDefaultController = function () {\n    function TransformStreamDefaultController(transformStream) {\n      _classCallCheck(this, TransformStreamDefaultController);\n\n      if (IsTransformStream(transformStream) === false) {\n        throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n      }\n\n      if (transformStream._transformStreamController !== undefined) {\n        throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n      }\n\n      this._controlledTransformStream = transformStream;\n    }\n\n    _createClass(TransformStreamDefaultController, [{\n      key: 'enqueue',\n      value: function enqueue(chunk) {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('enqueue');\n        }\n\n        TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);\n      }\n    }, {\n      key: 'close',\n      value: function close() {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('close');\n        }\n\n        TransformStreamCloseReadable(this._controlledTransformStream);\n      }\n    }, {\n      key: 'error',\n      value: function error(reason) {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('error');\n        }\n\n        TransformStreamError(this._controlledTransformStream, reason);\n      }\n    }, {\n      key: 'desiredSize',\n      get: function get() {\n        if (IsTransformStreamDefaultController(this) === false) {\n          throw defaultControllerBrandCheckException('desiredSize');\n        }\n\n        var transformStream = this._controlledTransformStream;\n        var readableController = transformStream._readableController;\n        return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n      }\n    }]);\n\n    return TransformStreamDefaultController;\n  }();\n\n  var TransformStream = function () {\n    function TransformStream() {\n      var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n      _classCallCheck(this, TransformStream);\n\n      this._transformer = transformer;\n      var readableStrategy = transformer.readableStrategy,\n          writableStrategy = transformer.writableStrategy;\n      this._transforming = false;\n      this._errored = false;\n      this._storedError = undefined;\n      this._writableController = undefined;\n      this._readableController = undefined;\n      this._transformStreamController = undefined;\n      this._writableDone = false;\n      this._readableClosed = false;\n      this._backpressure = undefined;\n      this._backpressureChangePromise = undefined;\n      this._backpressureChangePromise_resolve = undefined;\n      this._transformStreamController = new TransformStreamDefaultController(this);\n      var startPromise_resolve = void 0;\n      var startPromise = new Promise(function (resolve) {\n        startPromise_resolve = resolve;\n      });\n      var source = new TransformStreamSource(this, startPromise);\n      this._readable = new ReadableStream(source, readableStrategy);\n      var sink = new TransformStreamSink(this, startPromise);\n      this._writable = new WritableStream(sink, writableStrategy);\n      assert(this._writableController !== undefined);\n      assert(this._readableController !== undefined);\n      var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n      TransformStreamSetBackpressure(this, desiredSize <= 0);\n      var transformStream = this;\n      var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n      startPromise_resolve(startResult);\n      startPromise.catch(function (e) {\n        if (transformStream._errored === false) {\n          transformStream._errored = true;\n          transformStream._storedError = e;\n        }\n      });\n    }\n\n    _createClass(TransformStream, [{\n      key: 'readable',\n      get: function get() {\n        if (IsTransformStream(this) === false) {\n          throw streamBrandCheckException('readable');\n        }\n\n        return this._readable;\n      }\n    }, {\n      key: 'writable',\n      get: function get() {\n        if (IsTransformStream(this) === false) {\n          throw streamBrandCheckException('writable');\n        }\n\n        return this._writable;\n      }\n    }]);\n\n    return TransformStream;\n  }();\n\n  module.exports = {\n    TransformStream: TransformStream\n  };\n\n  function defaultControllerBrandCheckException(name) {\n    return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n  }\n\n  function streamBrandCheckException(name) {\n    return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n  }\n}, function (module, exports, __w_pdfjs_require__) {\n  module.exports = __w_pdfjs_require__(5);\n}]));\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n{\n  var isURLSupported = false;\n\n  try {\n    if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {\n      var u = new URL('b', 'http://a');\n      u.pathname = 'c%20d';\n      isURLSupported = u.href === 'http://a/c%20d';\n    }\n  } catch (ex) {}\n\n  if (isURLSupported) {\n    exports.URL = URL;\n  } else {\n    var PolyfillURL = __w_pdfjs_require__(150).URL;\n\n    var OriginalURL = __w_pdfjs_require__(8).URL;\n\n    if (OriginalURL) {\n      PolyfillURL.createObjectURL = function (blob) {\n        return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n      };\n\n      PolyfillURL.revokeObjectURL = function (url) {\n        OriginalURL.revokeObjectURL(url);\n      };\n    }\n\n    exports.URL = PolyfillURL;\n  }\n}\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n(function URLConstructorClosure() {\n  'use strict';\n\n  var relative = Object.create(null);\n  relative['ftp'] = 21;\n  relative['file'] = 0;\n  relative['gopher'] = 70;\n  relative['http'] = 80;\n  relative['https'] = 443;\n  relative['ws'] = 80;\n  relative['wss'] = 443;\n  var relativePathDotMapping = Object.create(null);\n  relativePathDotMapping['%2e'] = '.';\n  relativePathDotMapping['.%2e'] = '..';\n  relativePathDotMapping['%2e.'] = '..';\n  relativePathDotMapping['%2e%2e'] = '..';\n\n  function isRelativeScheme(scheme) {\n    return relative[scheme] !== undefined;\n  }\n\n  function invalid() {\n    clear.call(this);\n    this._isInvalid = true;\n  }\n\n  function IDNAToASCII(h) {\n    if (h === '') {\n      invalid.call(this);\n    }\n\n    return h.toLowerCase();\n  }\n\n  function percentEscape(c) {\n    var unicode = c.charCodeAt(0);\n\n    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {\n      return c;\n    }\n\n    return encodeURIComponent(c);\n  }\n\n  function percentEscapeQuery(c) {\n    var unicode = c.charCodeAt(0);\n\n    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {\n      return c;\n    }\n\n    return encodeURIComponent(c);\n  }\n\n  var EOF,\n      ALPHA = /[a-zA-Z]/,\n      ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n  function parse(input, stateOverride, base) {\n    function err(message) {\n      errors.push(message);\n    }\n\n    var state = stateOverride || 'scheme start',\n        cursor = 0,\n        buffer = '',\n        seenAt = false,\n        seenBracket = false,\n        errors = [];\n\n    loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {\n      var c = input[cursor];\n\n      switch (state) {\n        case 'scheme start':\n          if (c && ALPHA.test(c)) {\n            buffer += c.toLowerCase();\n            state = 'scheme';\n          } else if (!stateOverride) {\n            buffer = '';\n            state = 'no scheme';\n            continue;\n          } else {\n            err('Invalid scheme.');\n            break loop;\n          }\n\n          break;\n\n        case 'scheme':\n          if (c && ALPHANUMERIC.test(c)) {\n            buffer += c.toLowerCase();\n          } else if (c === ':') {\n            this._scheme = buffer;\n            buffer = '';\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            if (isRelativeScheme(this._scheme)) {\n              this._isRelative = true;\n            }\n\n            if (this._scheme === 'file') {\n              state = 'relative';\n            } else if (this._isRelative && base && base._scheme === this._scheme) {\n              state = 'relative or authority';\n            } else if (this._isRelative) {\n              state = 'authority first slash';\n            } else {\n              state = 'scheme data';\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            cursor = 0;\n            state = 'no scheme';\n            continue;\n          } else if (c === EOF) {\n            break loop;\n          } else {\n            err('Code point not allowed in scheme: ' + c);\n            break loop;\n          }\n\n          break;\n\n        case 'scheme data':\n          if (c === '?') {\n            this._query = '?';\n            state = 'query';\n          } else if (c === '#') {\n            this._fragment = '#';\n            state = 'fragment';\n          } else {\n            if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n              this._schemeData += percentEscape(c);\n            }\n          }\n\n          break;\n\n        case 'no scheme':\n          if (!base || !isRelativeScheme(base._scheme)) {\n            err('Missing scheme.');\n            invalid.call(this);\n          } else {\n            state = 'relative';\n            continue;\n          }\n\n          break;\n\n        case 'relative or authority':\n          if (c === '/' && input[cursor + 1] === '/') {\n            state = 'authority ignore slashes';\n          } else {\n            err('Expected /, got: ' + c);\n            state = 'relative';\n            continue;\n          }\n\n          break;\n\n        case 'relative':\n          this._isRelative = true;\n\n          if (this._scheme !== 'file') {\n            this._scheme = base._scheme;\n          }\n\n          if (c === EOF) {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._username = base._username;\n            this._password = base._password;\n            break loop;\n          } else if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n\n            state = 'relative slash';\n          } else if (c === '?') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = '?';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'query';\n          } else if (c === '#') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._fragment = '#';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'fragment';\n          } else {\n            var nextC = input[cursor + 1];\n            var nextNextC = input[cursor + 2];\n\n            if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' && nextNextC !== '?' && nextNextC !== '#') {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n              this._path = base._path.slice();\n\n              this._path.pop();\n            }\n\n            state = 'relative path';\n            continue;\n          }\n\n          break;\n\n        case 'relative slash':\n          if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n\n            if (this._scheme === 'file') {\n              state = 'file host';\n            } else {\n              state = 'authority ignore slashes';\n            }\n          } else {\n            if (this._scheme !== 'file') {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n            }\n\n            state = 'relative path';\n            continue;\n          }\n\n          break;\n\n        case 'authority first slash':\n          if (c === '/') {\n            state = 'authority second slash';\n          } else {\n            err('Expected \\'/\\', got: ' + c);\n            state = 'authority ignore slashes';\n            continue;\n          }\n\n          break;\n\n        case 'authority second slash':\n          state = 'authority ignore slashes';\n\n          if (c !== '/') {\n            err('Expected \\'/\\', got: ' + c);\n            continue;\n          }\n\n          break;\n\n        case 'authority ignore slashes':\n          if (c !== '/' && c !== '\\\\') {\n            state = 'authority';\n            continue;\n          } else {\n            err('Expected authority, got: ' + c);\n          }\n\n          break;\n\n        case 'authority':\n          if (c === '@') {\n            if (seenAt) {\n              err('@ already seen.');\n              buffer += '%40';\n            }\n\n            seenAt = true;\n\n            for (var i = 0; i < buffer.length; i++) {\n              var cp = buffer[i];\n\n              if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n                err('Invalid whitespace in authority.');\n                continue;\n              }\n\n              if (cp === ':' && this._password === null) {\n                this._password = '';\n                continue;\n              }\n\n              var tempC = percentEscape(cp);\n\n              if (this._password !== null) {\n                this._password += tempC;\n              } else {\n                this._username += tempC;\n              }\n            }\n\n            buffer = '';\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            cursor -= buffer.length;\n            buffer = '';\n            state = 'host';\n            continue;\n          } else {\n            buffer += c;\n          }\n\n          break;\n\n        case 'file host':\n          if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {\n              state = 'relative path';\n            } else if (buffer.length === 0) {\n              state = 'relative path start';\n            } else {\n              this._host = IDNAToASCII.call(this, buffer);\n              buffer = '';\n              state = 'relative path start';\n            }\n\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid whitespace in file host.');\n          } else {\n            buffer += c;\n          }\n\n          break;\n\n        case 'host':\n        case 'hostname':\n          if (c === ':' && !seenBracket) {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'port';\n\n            if (stateOverride === 'hostname') {\n              break loop;\n            }\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            continue;\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            if (c === '[') {\n              seenBracket = true;\n            } else if (c === ']') {\n              seenBracket = false;\n            }\n\n            buffer += c;\n          } else {\n            err('Invalid code point in host/hostname: ' + c);\n          }\n\n          break;\n\n        case 'port':\n          if (/[0-9]/.test(c)) {\n            buffer += c;\n          } else if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#' || stateOverride) {\n            if (buffer !== '') {\n              var temp = parseInt(buffer, 10);\n\n              if (temp !== relative[this._scheme]) {\n                this._port = temp + '';\n              }\n\n              buffer = '';\n            }\n\n            if (stateOverride) {\n              break loop;\n            }\n\n            state = 'relative path start';\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid code point in port: ' + c);\n          } else {\n            invalid.call(this);\n          }\n\n          break;\n\n        case 'relative path start':\n          if (c === '\\\\') {\n            err('\\'\\\\\\' not allowed in path.');\n          }\n\n          state = 'relative path';\n\n          if (c !== '/' && c !== '\\\\') {\n            continue;\n          }\n\n          break;\n\n        case 'relative path':\n          if (c === EOF || c === '/' || c === '\\\\' || !stateOverride && (c === '?' || c === '#')) {\n            if (c === '\\\\') {\n              err('\\\\ not allowed in relative path.');\n            }\n\n            var tmp;\n\n            if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n              buffer = tmp;\n            }\n\n            if (buffer === '..') {\n              this._path.pop();\n\n              if (c !== '/' && c !== '\\\\') {\n                this._path.push('');\n              }\n            } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n              this._path.push('');\n            } else if (buffer !== '.') {\n              if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {\n                buffer = buffer[0] + ':';\n              }\n\n              this._path.push(buffer);\n            }\n\n            buffer = '';\n\n            if (c === '?') {\n              this._query = '?';\n              state = 'query';\n            } else if (c === '#') {\n              this._fragment = '#';\n              state = 'fragment';\n            }\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            buffer += percentEscape(c);\n          }\n\n          break;\n\n        case 'query':\n          if (!stateOverride && c === '#') {\n            this._fragment = '#';\n            state = 'fragment';\n          } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._query += percentEscapeQuery(c);\n          }\n\n          break;\n\n        case 'fragment':\n          if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._fragment += c;\n          }\n\n          break;\n      }\n\n      cursor++;\n    }\n  }\n\n  function clear() {\n    this._scheme = '';\n    this._schemeData = '';\n    this._username = '';\n    this._password = null;\n    this._host = '';\n    this._port = '';\n    this._path = [];\n    this._query = '';\n    this._fragment = '';\n    this._isInvalid = false;\n    this._isRelative = false;\n  }\n\n  function JURL(url, base) {\n    if (base !== undefined && !(base instanceof JURL)) {\n      base = new JURL(String(base));\n    }\n\n    this._url = url;\n    clear.call(this);\n    var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n    parse.call(this, input, null, base);\n  }\n\n  JURL.prototype = {\n    toString: function toString() {\n      return this.href;\n    },\n\n    get href() {\n      if (this._isInvalid) {\n        return this._url;\n      }\n\n      var authority = '';\n\n      if (this._username !== '' || this._password !== null) {\n        authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';\n      }\n\n      return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;\n    },\n\n    set href(value) {\n      clear.call(this);\n      parse.call(this, value);\n    },\n\n    get protocol() {\n      return this._scheme + ':';\n    },\n\n    set protocol(value) {\n      if (this._isInvalid) {\n        return;\n      }\n\n      parse.call(this, value + ':', 'scheme start');\n    },\n\n    get host() {\n      return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;\n    },\n\n    set host(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'host');\n    },\n\n    get hostname() {\n      return this._host;\n    },\n\n    set hostname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'hostname');\n    },\n\n    get port() {\n      return this._port;\n    },\n\n    set port(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      parse.call(this, value, 'port');\n    },\n\n    get pathname() {\n      return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;\n    },\n\n    set pathname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      this._path = [];\n      parse.call(this, value, 'relative path start');\n    },\n\n    get search() {\n      return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;\n    },\n\n    set search(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n\n      this._query = '?';\n\n      if (value[0] === '?') {\n        value = value.slice(1);\n      }\n\n      parse.call(this, value, 'query');\n    },\n\n    get hash() {\n      return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;\n    },\n\n    set hash(value) {\n      if (this._isInvalid) {\n        return;\n      }\n\n      this._fragment = '#';\n\n      if (value[0] === '#') {\n        value = value.slice(1);\n      }\n\n      parse.call(this, value, 'fragment');\n    },\n\n    get origin() {\n      var host;\n\n      if (this._isInvalid || !this._scheme) {\n        return '';\n      }\n\n      switch (this._scheme) {\n        case 'data':\n        case 'file':\n        case 'javascript':\n        case 'mailto':\n          return 'null';\n\n        case 'blob':\n          try {\n            return new JURL(this._schemeData).origin || 'null';\n          } catch (_) {}\n\n          return 'null';\n      }\n\n      host = this.host;\n\n      if (!host) {\n        return '';\n      }\n\n      return this._scheme + '://' + host;\n    }\n\n  };\n  exports.URL = JURL;\n})();\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.NetworkPdfManager = exports.LocalPdfManager = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _chunked_stream = __w_pdfjs_require__(152);\n\nvar _document = __w_pdfjs_require__(153);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BasePdfManager =\n/*#__PURE__*/\nfunction () {\n  function BasePdfManager() {\n    _classCallCheck(this, BasePdfManager);\n\n    if (this.constructor === BasePdfManager) {\n      (0, _util.unreachable)('Cannot initialize BasePdfManager.');\n    }\n  }\n\n  _createClass(BasePdfManager, [{\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      (0, _util.unreachable)('Abstract method `onLoadedStream` called');\n    }\n  }, {\n    key: \"ensureDoc\",\n    value: function ensureDoc(prop, args) {\n      return this.ensure(this.pdfDocument, prop, args);\n    }\n  }, {\n    key: \"ensureXRef\",\n    value: function ensureXRef(prop, args) {\n      return this.ensure(this.pdfDocument.xref, prop, args);\n    }\n  }, {\n    key: \"ensureCatalog\",\n    value: function ensureCatalog(prop, args) {\n      return this.ensure(this.pdfDocument.catalog, prop, args);\n    }\n  }, {\n    key: \"getPage\",\n    value: function getPage(pageIndex) {\n      return this.pdfDocument.getPage(pageIndex);\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      return this.pdfDocument.fontFallback(id, handler);\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      return this.pdfDocument.cleanup();\n    }\n  }, {\n    key: \"ensure\",\n    value: function () {\n      var _ensure = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(obj, prop, args) {\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                (0, _util.unreachable)('Abstract method `ensure` called');\n\n              case 1:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function ensure(_x, _x2, _x3) {\n        return _ensure.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      (0, _util.unreachable)('Abstract method `requestRange` called');\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {\n      (0, _util.unreachable)('Abstract method `requestLoadedStream` called');\n    }\n  }, {\n    key: \"sendProgressiveData\",\n    value: function sendProgressiveData(chunk) {\n      (0, _util.unreachable)('Abstract method `sendProgressiveData` called');\n    }\n  }, {\n    key: \"updatePassword\",\n    value: function updatePassword(password) {\n      this._password = password;\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {\n      (0, _util.unreachable)('Abstract method `terminate` called');\n    }\n  }, {\n    key: \"docId\",\n    get: function get() {\n      return this._docId;\n    }\n  }, {\n    key: \"password\",\n    get: function get() {\n      return this._password;\n    }\n  }, {\n    key: \"docBaseUrl\",\n    get: function get() {\n      var docBaseUrl = null;\n\n      if (this._docBaseUrl) {\n        var absoluteUrl = (0, _util.createValidAbsoluteUrl)(this._docBaseUrl);\n\n        if (absoluteUrl) {\n          docBaseUrl = absoluteUrl.href;\n        } else {\n          (0, _util.warn)(\"Invalid absolute docBaseUrl: \\\"\".concat(this._docBaseUrl, \"\\\".\"));\n        }\n      }\n\n      return (0, _util.shadow)(this, 'docBaseUrl', docBaseUrl);\n    }\n  }]);\n\n  return BasePdfManager;\n}();\n\nvar LocalPdfManager =\n/*#__PURE__*/\nfunction (_BasePdfManager) {\n  _inherits(LocalPdfManager, _BasePdfManager);\n\n  function LocalPdfManager(docId, data, password, evaluatorOptions, docBaseUrl) {\n    var _this;\n\n    _classCallCheck(this, LocalPdfManager);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(LocalPdfManager).call(this));\n    _this._docId = docId;\n    _this._password = password;\n    _this._docBaseUrl = docBaseUrl;\n    _this.evaluatorOptions = evaluatorOptions;\n    var stream = new _stream.Stream(data);\n    _this.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this)), stream);\n    _this._loadedStreamPromise = Promise.resolve(stream);\n    return _this;\n  }\n\n  _createClass(LocalPdfManager, [{\n    key: \"ensure\",\n    value: function () {\n      var _ensure2 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee2(obj, prop, args) {\n        var value;\n        return _regenerator.default.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                value = obj[prop];\n\n                if (!(typeof value === 'function')) {\n                  _context2.next = 3;\n                  break;\n                }\n\n                return _context2.abrupt(\"return\", value.apply(obj, args));\n\n              case 3:\n                return _context2.abrupt(\"return\", value);\n\n              case 4:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this);\n      }));\n\n      function ensure(_x4, _x5, _x6) {\n        return _ensure2.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      return Promise.resolve();\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {}\n  }, {\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this._loadedStreamPromise;\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {}\n  }]);\n\n  return LocalPdfManager;\n}(BasePdfManager);\n\nexports.LocalPdfManager = LocalPdfManager;\n\nvar NetworkPdfManager =\n/*#__PURE__*/\nfunction (_BasePdfManager2) {\n  _inherits(NetworkPdfManager, _BasePdfManager2);\n\n  function NetworkPdfManager(docId, pdfNetworkStream, args, evaluatorOptions, docBaseUrl) {\n    var _this2;\n\n    _classCallCheck(this, NetworkPdfManager);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(NetworkPdfManager).call(this));\n    _this2._docId = docId;\n    _this2._password = args.password;\n    _this2._docBaseUrl = docBaseUrl;\n    _this2.msgHandler = args.msgHandler;\n    _this2.evaluatorOptions = evaluatorOptions;\n    _this2.streamManager = new _chunked_stream.ChunkedStreamManager(pdfNetworkStream, {\n      msgHandler: args.msgHandler,\n      length: args.length,\n      disableAutoFetch: args.disableAutoFetch,\n      rangeChunkSize: args.rangeChunkSize\n    });\n    _this2.pdfDocument = new _document.PDFDocument(_assertThisInitialized(_assertThisInitialized(_this2)), _this2.streamManager.getStream());\n    return _this2;\n  }\n\n  _createClass(NetworkPdfManager, [{\n    key: \"ensure\",\n    value: function () {\n      var _ensure3 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee3(obj, prop, args) {\n        var value;\n        return _regenerator.default.wrap(function _callee3$(_context3) {\n          while (1) {\n            switch (_context3.prev = _context3.next) {\n              case 0:\n                _context3.prev = 0;\n                value = obj[prop];\n\n                if (!(typeof value === 'function')) {\n                  _context3.next = 4;\n                  break;\n                }\n\n                return _context3.abrupt(\"return\", value.apply(obj, args));\n\n              case 4:\n                return _context3.abrupt(\"return\", value);\n\n              case 7:\n                _context3.prev = 7;\n                _context3.t0 = _context3[\"catch\"](0);\n\n                if (_context3.t0 instanceof _util.MissingDataException) {\n                  _context3.next = 11;\n                  break;\n                }\n\n                throw _context3.t0;\n\n              case 11:\n                _context3.next = 13;\n                return this.requestRange(_context3.t0.begin, _context3.t0.end);\n\n              case 13:\n                return _context3.abrupt(\"return\", this.ensure(obj, prop, args));\n\n              case 14:\n              case \"end\":\n                return _context3.stop();\n            }\n          }\n        }, _callee3, this, [[0, 7]]);\n      }));\n\n      function ensure(_x7, _x8, _x9) {\n        return _ensure3.apply(this, arguments);\n      }\n\n      return ensure;\n    }()\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      return this.streamManager.requestRange(begin, end);\n    }\n  }, {\n    key: \"requestLoadedStream\",\n    value: function requestLoadedStream() {\n      this.streamManager.requestAllChunks();\n    }\n  }, {\n    key: \"sendProgressiveData\",\n    value: function sendProgressiveData(chunk) {\n      this.streamManager.onReceiveData({\n        chunk: chunk\n      });\n    }\n  }, {\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this.streamManager.onLoadedStream();\n    }\n  }, {\n    key: \"terminate\",\n    value: function terminate() {\n      this.streamManager.abort();\n    }\n  }]);\n\n  return NetworkPdfManager;\n}(BasePdfManager);\n\nexports.NetworkPdfManager = NetworkPdfManager;\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.ChunkedStreamManager = exports.ChunkedStream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ChunkedStream =\n/*#__PURE__*/\nfunction () {\n  function ChunkedStream(length, chunkSize, manager) {\n    _classCallCheck(this, ChunkedStream);\n\n    this.bytes = new Uint8Array(length);\n    this.start = 0;\n    this.pos = 0;\n    this.end = length;\n    this.chunkSize = chunkSize;\n    this.loadedChunks = [];\n    this.numChunksLoaded = 0;\n    this.numChunks = Math.ceil(length / chunkSize);\n    this.manager = manager;\n    this.progressiveDataLength = 0;\n    this.lastSuccessfulEnsureByteChunk = -1;\n  }\n\n  _createClass(ChunkedStream, [{\n    key: \"getMissingChunks\",\n    value: function getMissingChunks() {\n      var chunks = [];\n\n      for (var chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n        if (!this.loadedChunks[chunk]) {\n          chunks.push(chunk);\n        }\n      }\n\n      return chunks;\n    }\n  }, {\n    key: \"getBaseStreams\",\n    value: function getBaseStreams() {\n      return [this];\n    }\n  }, {\n    key: \"allChunksLoaded\",\n    value: function allChunksLoaded() {\n      return this.numChunksLoaded === this.numChunks;\n    }\n  }, {\n    key: \"onReceiveData\",\n    value: function onReceiveData(begin, chunk) {\n      var chunkSize = this.chunkSize;\n\n      if (begin % chunkSize !== 0) {\n        throw new Error(\"Bad begin offset: \".concat(begin));\n      }\n\n      var end = begin + chunk.byteLength;\n\n      if (end % chunkSize !== 0 && end !== this.bytes.length) {\n        throw new Error(\"Bad end offset: \".concat(end));\n      }\n\n      this.bytes.set(new Uint8Array(chunk), begin);\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n      for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n        if (!this.loadedChunks[curChunk]) {\n          this.loadedChunks[curChunk] = true;\n          ++this.numChunksLoaded;\n        }\n      }\n    }\n  }, {\n    key: \"onReceiveProgressiveData\",\n    value: function onReceiveProgressiveData(data) {\n      var position = this.progressiveDataLength;\n      var beginChunk = Math.floor(position / this.chunkSize);\n      this.bytes.set(new Uint8Array(data), position);\n      position += data.byteLength;\n      this.progressiveDataLength = position;\n      var endChunk = position >= this.end ? this.numChunks : Math.floor(position / this.chunkSize);\n\n      for (var curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n        if (!this.loadedChunks[curChunk]) {\n          this.loadedChunks[curChunk] = true;\n          ++this.numChunksLoaded;\n        }\n      }\n    }\n  }, {\n    key: \"ensureByte\",\n    value: function ensureByte(pos) {\n      var chunk = Math.floor(pos / this.chunkSize);\n\n      if (chunk === this.lastSuccessfulEnsureByteChunk) {\n        return;\n      }\n\n      if (!this.loadedChunks[chunk]) {\n        throw new _util.MissingDataException(pos, pos + 1);\n      }\n\n      this.lastSuccessfulEnsureByteChunk = chunk;\n    }\n  }, {\n    key: \"ensureRange\",\n    value: function ensureRange(begin, end) {\n      if (begin >= end) {\n        return;\n      }\n\n      if (end <= this.progressiveDataLength) {\n        return;\n      }\n\n      var chunkSize = this.chunkSize;\n      var beginChunk = Math.floor(begin / chunkSize);\n      var endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        if (!this.loadedChunks[chunk]) {\n          throw new _util.MissingDataException(begin, end);\n        }\n      }\n    }\n  }, {\n    key: \"nextEmptyChunk\",\n    value: function nextEmptyChunk(beginChunk) {\n      var numChunks = this.numChunks;\n\n      for (var i = 0; i < numChunks; ++i) {\n        var chunk = (beginChunk + i) % numChunks;\n\n        if (!this.loadedChunks[chunk]) {\n          return chunk;\n        }\n      }\n\n      return null;\n    }\n  }, {\n    key: \"hasChunk\",\n    value: function hasChunk(chunk) {\n      return !!this.loadedChunks[chunk];\n    }\n  }, {\n    key: \"getByte\",\n    value: function getByte() {\n      var pos = this.pos;\n\n      if (pos >= this.end) {\n        return -1;\n      }\n\n      this.ensureByte(pos);\n      return this.bytes[this.pos++];\n    }\n  }, {\n    key: \"getUint16\",\n    value: function getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    }\n  }, {\n    key: \"getInt32\",\n    value: function getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    }\n  }, {\n    key: \"getBytes\",\n    value: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        this.ensureRange(pos, strEnd);\n\n        var _subarray = bytes.subarray(pos, strEnd);\n\n        return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n      }\n\n      var end = pos + length;\n\n      if (end > strEnd) {\n        end = strEnd;\n      }\n\n      this.ensureRange(pos, end);\n      this.pos = end;\n      var subarray = bytes.subarray(pos, end);\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    }\n  }, {\n    key: \"peekByte\",\n    value: function peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    }\n  }, {\n    key: \"peekBytes\",\n    value: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    }\n  }, {\n    key: \"getByteRange\",\n    value: function getByteRange(begin, end) {\n      this.ensureRange(begin, end);\n      return this.bytes.subarray(begin, end);\n    }\n  }, {\n    key: \"skip\",\n    value: function skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.pos = this.start;\n    }\n  }, {\n    key: \"moveStart\",\n    value: function moveStart() {\n      this.start = this.pos;\n    }\n  }, {\n    key: \"makeSubStream\",\n    value: function makeSubStream(start, length, dict) {\n      this.ensureRange(start, start + length);\n\n      function ChunkedStreamSubstream() {}\n\n      ChunkedStreamSubstream.prototype = Object.create(this);\n\n      ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n        var chunkSize = this.chunkSize;\n        var beginChunk = Math.floor(this.start / chunkSize);\n        var endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n        var missingChunks = [];\n\n        for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n          if (!this.loadedChunks[chunk]) {\n            missingChunks.push(chunk);\n          }\n        }\n\n        return missingChunks;\n      };\n\n      var subStream = new ChunkedStreamSubstream();\n      subStream.pos = subStream.start = start;\n      subStream.end = start + length || this.end;\n      subStream.dict = dict;\n      return subStream;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this.end - this.start;\n    }\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this.length === 0;\n    }\n  }]);\n\n  return ChunkedStream;\n}();\n\nexports.ChunkedStream = ChunkedStream;\n\nvar ChunkedStreamManager =\n/*#__PURE__*/\nfunction () {\n  function ChunkedStreamManager(pdfNetworkStream, args) {\n    _classCallCheck(this, ChunkedStreamManager);\n\n    this.length = args.length;\n    this.chunkSize = args.rangeChunkSize;\n    this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n    this.pdfNetworkStream = pdfNetworkStream;\n    this.disableAutoFetch = args.disableAutoFetch;\n    this.msgHandler = args.msgHandler;\n    this.currRequestId = 0;\n    this.chunksNeededByRequest = Object.create(null);\n    this.requestsByChunk = Object.create(null);\n    this.promisesByRequest = Object.create(null);\n    this.progressiveDataLength = 0;\n    this.aborted = false;\n    this._loadedStreamCapability = (0, _util.createPromiseCapability)();\n  }\n\n  _createClass(ChunkedStreamManager, [{\n    key: \"onLoadedStream\",\n    value: function onLoadedStream() {\n      return this._loadedStreamCapability.promise;\n    }\n  }, {\n    key: \"sendRequest\",\n    value: function sendRequest(begin, end) {\n      var _this = this;\n\n      var rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n\n      if (!rangeReader.isStreamingSupported) {\n        rangeReader.onProgress = this.onProgress.bind(this);\n      }\n\n      var chunks = [],\n          loaded = 0;\n      var promise = new Promise(function (resolve, reject) {\n        var readChunk = function readChunk(chunk) {\n          try {\n            if (!chunk.done) {\n              var data = chunk.value;\n              chunks.push(data);\n              loaded += (0, _util.arrayByteLength)(data);\n\n              if (rangeReader.isStreamingSupported) {\n                _this.onProgress({\n                  loaded: loaded\n                });\n              }\n\n              rangeReader.read().then(readChunk, reject);\n              return;\n            }\n\n            var chunkData = (0, _util.arraysToBytes)(chunks);\n            chunks = null;\n            resolve(chunkData);\n          } catch (e) {\n            reject(e);\n          }\n        };\n\n        rangeReader.read().then(readChunk, reject);\n      });\n      promise.then(function (data) {\n        if (_this.aborted) {\n          return;\n        }\n\n        _this.onReceiveData({\n          chunk: data,\n          begin: begin\n        });\n      });\n    }\n  }, {\n    key: \"requestAllChunks\",\n    value: function requestAllChunks() {\n      var missingChunks = this.stream.getMissingChunks();\n\n      this._requestChunks(missingChunks);\n\n      return this._loadedStreamCapability.promise;\n    }\n  }, {\n    key: \"_requestChunks\",\n    value: function _requestChunks(chunks) {\n      var requestId = this.currRequestId++;\n      var chunksNeeded = Object.create(null);\n      this.chunksNeededByRequest[requestId] = chunksNeeded;\n      var _iteratorNormalCompletion = true;\n      var _didIteratorError = false;\n      var _iteratorError = undefined;\n\n      try {\n        for (var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n          var _chunk = _step.value;\n\n          if (!this.stream.hasChunk(_chunk)) {\n            chunksNeeded[_chunk] = true;\n          }\n        }\n      } catch (err) {\n        _didIteratorError = true;\n        _iteratorError = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion && _iterator.return != null) {\n            _iterator.return();\n          }\n        } finally {\n          if (_didIteratorError) {\n            throw _iteratorError;\n          }\n        }\n      }\n\n      if ((0, _util.isEmptyObj)(chunksNeeded)) {\n        return Promise.resolve();\n      }\n\n      var capability = (0, _util.createPromiseCapability)();\n      this.promisesByRequest[requestId] = capability;\n      var chunksToRequest = [];\n\n      for (var chunk in chunksNeeded) {\n        chunk = chunk | 0;\n\n        if (!(chunk in this.requestsByChunk)) {\n          this.requestsByChunk[chunk] = [];\n          chunksToRequest.push(chunk);\n        }\n\n        this.requestsByChunk[chunk].push(requestId);\n      }\n\n      if (!chunksToRequest.length) {\n        return capability.promise;\n      }\n\n      var groupedChunksToRequest = this.groupChunks(chunksToRequest);\n      var _iteratorNormalCompletion2 = true;\n      var _didIteratorError2 = false;\n      var _iteratorError2 = undefined;\n\n      try {\n        for (var _iterator2 = groupedChunksToRequest[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n          var groupedChunk = _step2.value;\n          var begin = groupedChunk.beginChunk * this.chunkSize;\n          var end = Math.min(groupedChunk.endChunk * this.chunkSize, this.length);\n          this.sendRequest(begin, end);\n        }\n      } catch (err) {\n        _didIteratorError2 = true;\n        _iteratorError2 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n            _iterator2.return();\n          }\n        } finally {\n          if (_didIteratorError2) {\n            throw _iteratorError2;\n          }\n        }\n      }\n\n      return capability.promise;\n    }\n  }, {\n    key: \"getStream\",\n    value: function getStream() {\n      return this.stream;\n    }\n  }, {\n    key: \"requestRange\",\n    value: function requestRange(begin, end) {\n      end = Math.min(end, this.length);\n      var beginChunk = this.getBeginChunk(begin);\n      var endChunk = this.getEndChunk(end);\n      var chunks = [];\n\n      for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n        chunks.push(chunk);\n      }\n\n      return this._requestChunks(chunks);\n    }\n  }, {\n    key: \"requestRanges\",\n    value: function requestRanges() {\n      var ranges = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n      var chunksToRequest = [];\n      var _iteratorNormalCompletion3 = true;\n      var _didIteratorError3 = false;\n      var _iteratorError3 = undefined;\n\n      try {\n        for (var _iterator3 = ranges[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n          var range = _step3.value;\n          var beginChunk = this.getBeginChunk(range.begin);\n          var endChunk = this.getEndChunk(range.end);\n\n          for (var chunk = beginChunk; chunk < endChunk; ++chunk) {\n            if (!chunksToRequest.includes(chunk)) {\n              chunksToRequest.push(chunk);\n            }\n          }\n        }\n      } catch (err) {\n        _didIteratorError3 = true;\n        _iteratorError3 = err;\n      } finally {\n        try {\n          if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n            _iterator3.return();\n          }\n        } finally {\n          if (_didIteratorError3) {\n            throw _iteratorError3;\n          }\n        }\n      }\n\n      chunksToRequest.sort(function (a, b) {\n        return a - b;\n      });\n      return this._requestChunks(chunksToRequest);\n    }\n  }, {\n    key: \"groupChunks\",\n    value: function groupChunks(chunks) {\n      var groupedChunks = [];\n      var beginChunk = -1;\n      var prevChunk = -1;\n\n      for (var i = 0, ii = chunks.length; i < ii; ++i) {\n        var chunk = chunks[i];\n\n        if (beginChunk < 0) {\n          beginChunk = chunk;\n        }\n\n        if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n          groupedChunks.push({\n            beginChunk: beginChunk,\n            endChunk: prevChunk + 1\n          });\n          beginChunk = chunk;\n        }\n\n        if (i + 1 === chunks.length) {\n          groupedChunks.push({\n            beginChunk: beginChunk,\n            endChunk: chunk + 1\n          });\n        }\n\n        prevChunk = chunk;\n      }\n\n      return groupedChunks;\n    }\n  }, {\n    key: \"onProgress\",\n    value: function onProgress(args) {\n      this.msgHandler.send('DocProgress', {\n        loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n        total: this.length\n      });\n    }\n  }, {\n    key: \"onReceiveData\",\n    value: function onReceiveData(args) {\n      var chunk = args.chunk;\n      var isProgressive = args.begin === undefined;\n      var begin = isProgressive ? this.progressiveDataLength : args.begin;\n      var end = begin + chunk.byteLength;\n      var beginChunk = Math.floor(begin / this.chunkSize);\n      var endChunk = end < this.length ? Math.floor(end / this.chunkSize) : Math.ceil(end / this.chunkSize);\n\n      if (isProgressive) {\n        this.stream.onReceiveProgressiveData(chunk);\n        this.progressiveDataLength = end;\n      } else {\n        this.stream.onReceiveData(begin, chunk);\n      }\n\n      if (this.stream.allChunksLoaded()) {\n        this._loadedStreamCapability.resolve(this.stream);\n      }\n\n      var loadedRequests = [];\n\n      for (var _chunk2 = beginChunk; _chunk2 < endChunk; ++_chunk2) {\n        var requestIds = this.requestsByChunk[_chunk2] || [];\n        delete this.requestsByChunk[_chunk2];\n        var _iteratorNormalCompletion4 = true;\n        var _didIteratorError4 = false;\n        var _iteratorError4 = undefined;\n\n        try {\n          for (var _iterator4 = requestIds[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var requestId = _step4.value;\n            var chunksNeeded = this.chunksNeededByRequest[requestId];\n\n            if (_chunk2 in chunksNeeded) {\n              delete chunksNeeded[_chunk2];\n            }\n\n            if (!(0, _util.isEmptyObj)(chunksNeeded)) {\n              continue;\n            }\n\n            loadedRequests.push(requestId);\n          }\n        } catch (err) {\n          _didIteratorError4 = true;\n          _iteratorError4 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n              _iterator4.return();\n            }\n          } finally {\n            if (_didIteratorError4) {\n              throw _iteratorError4;\n            }\n          }\n        }\n      }\n\n      if (!this.disableAutoFetch && (0, _util.isEmptyObj)(this.requestsByChunk)) {\n        var nextEmptyChunk;\n\n        if (this.stream.numChunksLoaded === 1) {\n          var lastChunk = this.stream.numChunks - 1;\n\n          if (!this.stream.hasChunk(lastChunk)) {\n            nextEmptyChunk = lastChunk;\n          }\n        } else {\n          nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n        }\n\n        if (Number.isInteger(nextEmptyChunk)) {\n          this._requestChunks([nextEmptyChunk]);\n        }\n      }\n\n      for (var _i = 0; _i < loadedRequests.length; _i++) {\n        var _requestId = loadedRequests[_i];\n        var capability = this.promisesByRequest[_requestId];\n        delete this.promisesByRequest[_requestId];\n        capability.resolve();\n      }\n\n      this.msgHandler.send('DocProgress', {\n        loaded: this.stream.numChunksLoaded * this.chunkSize,\n        total: this.length\n      });\n    }\n  }, {\n    key: \"onError\",\n    value: function onError(err) {\n      this._loadedStreamCapability.reject(err);\n    }\n  }, {\n    key: \"getBeginChunk\",\n    value: function getBeginChunk(begin) {\n      return Math.floor(begin / this.chunkSize);\n    }\n  }, {\n    key: \"getEndChunk\",\n    value: function getEndChunk(end) {\n      return Math.floor((end - 1) / this.chunkSize) + 1;\n    }\n  }, {\n    key: \"abort\",\n    value: function abort() {\n      this.aborted = true;\n\n      if (this.pdfNetworkStream) {\n        this.pdfNetworkStream.cancelAllRequests('abort');\n      }\n\n      for (var requestId in this.promisesByRequest) {\n        this.promisesByRequest[requestId].reject(new Error('Request was aborted'));\n      }\n    }\n  }]);\n\n  return ChunkedStreamManager;\n}();\n\nexports.ChunkedStreamManager = ChunkedStreamManager;\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PDFDocument = exports.Page = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _obj = __w_pdfjs_require__(154);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream2 = __w_pdfjs_require__(157);\n\nvar _annotation = __w_pdfjs_require__(169);\n\nvar _crypto = __w_pdfjs_require__(167);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _evaluator = __w_pdfjs_require__(171);\n\nvar _function = __w_pdfjs_require__(185);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar DEFAULT_USER_UNIT = 1.0;\nvar LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nfunction isAnnotationRenderable(annotation, intent) {\n  return intent === 'display' && annotation.viewable || intent === 'print' && annotation.printable;\n}\n\nvar Page =\n/*#__PURE__*/\nfunction () {\n  function Page(_ref) {\n    var pdfManager = _ref.pdfManager,\n        xref = _ref.xref,\n        pageIndex = _ref.pageIndex,\n        pageDict = _ref.pageDict,\n        ref = _ref.ref,\n        fontCache = _ref.fontCache,\n        builtInCMapCache = _ref.builtInCMapCache,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n\n    _classCallCheck(this, Page);\n\n    this.pdfManager = pdfManager;\n    this.pageIndex = pageIndex;\n    this.pageDict = pageDict;\n    this.xref = xref;\n    this.ref = ref;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n    this.evaluatorOptions = pdfManager.evaluatorOptions;\n    this.resourcesPromise = null;\n    var uniquePrefix = \"p\".concat(this.pageIndex, \"_\");\n    var idCounters = {\n      obj: 0\n    };\n    this.idFactory = {\n      createObjId: function createObjId() {\n        return uniquePrefix + ++idCounters.obj;\n      }\n    };\n  }\n\n  _createClass(Page, [{\n    key: \"_getInheritableProperty\",\n    value: function _getInheritableProperty(key) {\n      var getArray = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var value = (0, _util.getInheritableProperty)({\n        dict: this.pageDict,\n        key: key,\n        getArray: getArray,\n        stopWhenFound: false\n      });\n\n      if (!Array.isArray(value)) {\n        return value;\n      }\n\n      if (value.length === 1 || !(0, _primitives.isDict)(value[0])) {\n        return value[0];\n      }\n\n      return _primitives.Dict.merge(this.xref, value);\n    }\n  }, {\n    key: \"getContentStream\",\n    value: function getContentStream() {\n      var content = this.content;\n      var stream;\n\n      if (Array.isArray(content)) {\n        var xref = this.xref;\n        var streams = [];\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = content[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var _stream = _step.value;\n            streams.push(xref.fetchIfRef(_stream));\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n\n        stream = new _stream2.StreamsSequenceStream(streams);\n      } else if ((0, _primitives.isStream)(content)) {\n        stream = content;\n      } else {\n        stream = new _stream2.NullStream();\n      }\n\n      return stream;\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(keys) {\n      var _this = this;\n\n      if (!this.resourcesPromise) {\n        this.resourcesPromise = this.pdfManager.ensure(this, 'resources');\n      }\n\n      return this.resourcesPromise.then(function () {\n        var objectLoader = new _obj.ObjectLoader(_this.resources, keys, _this.xref);\n        return objectLoader.load();\n      });\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(_ref2) {\n      var _this2 = this;\n\n      var handler = _ref2.handler,\n          task = _ref2.task,\n          intent = _ref2.intent,\n          renderInteractiveForms = _ref2.renderInteractiveForms;\n      var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n      var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n      var partialEvaluator = new _evaluator.PartialEvaluator({\n        pdfManager: this.pdfManager,\n        xref: this.xref,\n        handler: handler,\n        pageIndex: this.pageIndex,\n        idFactory: this.idFactory,\n        fontCache: this.fontCache,\n        builtInCMapCache: this.builtInCMapCache,\n        options: this.evaluatorOptions,\n        pdfFunctionFactory: this.pdfFunctionFactory\n      });\n      var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n      var pageListPromise = dataPromises.then(function (_ref3) {\n        var _ref4 = _slicedToArray(_ref3, 1),\n            contentStream = _ref4[0];\n\n        var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex);\n        handler.send('StartRenderPage', {\n          transparency: partialEvaluator.hasBlendModes(_this2.resources),\n          pageIndex: _this2.pageIndex,\n          intent: intent\n        });\n        return partialEvaluator.getOperatorList({\n          stream: contentStream,\n          task: task,\n          resources: _this2.resources,\n          operatorList: opList\n        }).then(function () {\n          return opList;\n        });\n      });\n      return Promise.all([pageListPromise, this._parsedAnnotations]).then(function (_ref5) {\n        var _ref6 = _slicedToArray(_ref5, 2),\n            pageOpList = _ref6[0],\n            annotations = _ref6[1];\n\n        if (annotations.length === 0) {\n          pageOpList.flush(true);\n          return pageOpList;\n        }\n\n        var opListPromises = [];\n        var _iteratorNormalCompletion2 = true;\n        var _didIteratorError2 = false;\n        var _iteratorError2 = undefined;\n\n        try {\n          for (var _iterator2 = annotations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n            var annotation = _step2.value;\n\n            if (isAnnotationRenderable(annotation, intent)) {\n              opListPromises.push(annotation.getOperatorList(partialEvaluator, task, renderInteractiveForms));\n            }\n          }\n        } catch (err) {\n          _didIteratorError2 = true;\n          _iteratorError2 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n              _iterator2.return();\n            }\n          } finally {\n            if (_didIteratorError2) {\n              throw _iteratorError2;\n            }\n          }\n        }\n\n        return Promise.all(opListPromises).then(function (opLists) {\n          pageOpList.addOp(_util.OPS.beginAnnotations, []);\n          var _iteratorNormalCompletion3 = true;\n          var _didIteratorError3 = false;\n          var _iteratorError3 = undefined;\n\n          try {\n            for (var _iterator3 = opLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n              var opList = _step3.value;\n              pageOpList.addOpList(opList);\n            }\n          } catch (err) {\n            _didIteratorError3 = true;\n            _iteratorError3 = err;\n          } finally {\n            try {\n              if (!_iteratorNormalCompletion3 && _iterator3.return != null) {\n                _iterator3.return();\n              }\n            } finally {\n              if (_didIteratorError3) {\n                throw _iteratorError3;\n              }\n            }\n          }\n\n          pageOpList.addOp(_util.OPS.endAnnotations, []);\n          pageOpList.flush(true);\n          return pageOpList;\n        });\n      });\n    }\n  }, {\n    key: \"extractTextContent\",\n    value: function extractTextContent(_ref7) {\n      var _this3 = this;\n\n      var handler = _ref7.handler,\n          task = _ref7.task,\n          normalizeWhitespace = _ref7.normalizeWhitespace,\n          sink = _ref7.sink,\n          combineTextItems = _ref7.combineTextItems;\n      var contentStreamPromise = this.pdfManager.ensure(this, 'getContentStream');\n      var resourcesPromise = this.loadResources(['ExtGState', 'XObject', 'Font']);\n      var dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n      return dataPromises.then(function (_ref8) {\n        var _ref9 = _slicedToArray(_ref8, 1),\n            contentStream = _ref9[0];\n\n        var partialEvaluator = new _evaluator.PartialEvaluator({\n          pdfManager: _this3.pdfManager,\n          xref: _this3.xref,\n          handler: handler,\n          pageIndex: _this3.pageIndex,\n          idFactory: _this3.idFactory,\n          fontCache: _this3.fontCache,\n          builtInCMapCache: _this3.builtInCMapCache,\n          options: _this3.evaluatorOptions,\n          pdfFunctionFactory: _this3.pdfFunctionFactory\n        });\n        return partialEvaluator.getTextContent({\n          stream: contentStream,\n          task: task,\n          resources: _this3.resources,\n          normalizeWhitespace: normalizeWhitespace,\n          combineTextItems: combineTextItems,\n          sink: sink\n        });\n      });\n    }\n  }, {\n    key: \"getAnnotationsData\",\n    value: function getAnnotationsData(intent) {\n      return this._parsedAnnotations.then(function (annotations) {\n        var annotationsData = [];\n\n        for (var i = 0, ii = annotations.length; i < ii; i++) {\n          if (!intent || isAnnotationRenderable(annotations[i], intent)) {\n            annotationsData.push(annotations[i].data);\n          }\n        }\n\n        return annotationsData;\n      });\n    }\n  }, {\n    key: \"content\",\n    get: function get() {\n      return this.pageDict.get('Contents');\n    }\n  }, {\n    key: \"resources\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'resources', this._getInheritableProperty('Resources') || _primitives.Dict.empty);\n    }\n  }, {\n    key: \"mediaBox\",\n    get: function get() {\n      var mediaBox = this._getInheritableProperty('MediaBox', true);\n\n      if (!Array.isArray(mediaBox) || mediaBox.length !== 4) {\n        return (0, _util.shadow)(this, 'mediaBox', LETTER_SIZE_MEDIABOX);\n      }\n\n      return (0, _util.shadow)(this, 'mediaBox', mediaBox);\n    }\n  }, {\n    key: \"cropBox\",\n    get: function get() {\n      var cropBox = this._getInheritableProperty('CropBox', true);\n\n      if (!Array.isArray(cropBox) || cropBox.length !== 4) {\n        return (0, _util.shadow)(this, 'cropBox', this.mediaBox);\n      }\n\n      return (0, _util.shadow)(this, 'cropBox', cropBox);\n    }\n  }, {\n    key: \"userUnit\",\n    get: function get() {\n      var obj = this.pageDict.get('UserUnit');\n\n      if (!(0, _util.isNum)(obj) || obj <= 0) {\n        obj = DEFAULT_USER_UNIT;\n      }\n\n      return (0, _util.shadow)(this, 'userUnit', obj);\n    }\n  }, {\n    key: \"view\",\n    get: function get() {\n      var mediaBox = this.mediaBox,\n          cropBox = this.cropBox;\n\n      if (mediaBox === cropBox) {\n        return (0, _util.shadow)(this, 'view', mediaBox);\n      }\n\n      var intersection = _util.Util.intersect(cropBox, mediaBox);\n\n      return (0, _util.shadow)(this, 'view', intersection || mediaBox);\n    }\n  }, {\n    key: \"rotate\",\n    get: function get() {\n      var rotate = this._getInheritableProperty('Rotate') || 0;\n\n      if (rotate % 90 !== 0) {\n        rotate = 0;\n      } else if (rotate >= 360) {\n        rotate = rotate % 360;\n      } else if (rotate < 0) {\n        rotate = (rotate % 360 + 360) % 360;\n      }\n\n      return (0, _util.shadow)(this, 'rotate', rotate);\n    }\n  }, {\n    key: \"annotations\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'annotations', this._getInheritableProperty('Annots') || []);\n    }\n  }, {\n    key: \"_parsedAnnotations\",\n    get: function get() {\n      var _this4 = this;\n\n      var parsedAnnotations = this.pdfManager.ensure(this, 'annotations').then(function () {\n        var annotationRefs = _this4.annotations;\n        var annotationPromises = [];\n\n        for (var i = 0, ii = annotationRefs.length; i < ii; i++) {\n          annotationPromises.push(_annotation.AnnotationFactory.create(_this4.xref, annotationRefs[i], _this4.pdfManager, _this4.idFactory));\n        }\n\n        return Promise.all(annotationPromises).then(function (annotations) {\n          return annotations.filter(function isDefined(annotation) {\n            return !!annotation;\n          });\n        }, function (reason) {\n          (0, _util.warn)(\"_parsedAnnotations: \\\"\".concat(reason, \"\\\".\"));\n          return [];\n        });\n      });\n      return (0, _util.shadow)(this, '_parsedAnnotations', parsedAnnotations);\n    }\n  }]);\n\n  return Page;\n}();\n\nexports.Page = Page;\nvar FINGERPRINT_FIRST_BYTES = 1024;\nvar EMPTY_FINGERPRINT = '\\x00\\x00\\x00\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00';\n\nfunction find(stream, needle, limit, backwards) {\n  var pos = stream.pos;\n  var end = stream.end;\n\n  if (pos + limit > end) {\n    limit = end - pos;\n  }\n\n  var strBuf = [];\n\n  for (var i = 0; i < limit; ++i) {\n    strBuf.push(String.fromCharCode(stream.getByte()));\n  }\n\n  var str = strBuf.join('');\n  stream.pos = pos;\n  var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);\n\n  if (index === -1) {\n    return false;\n  }\n\n  stream.pos += index;\n  return true;\n}\n\nvar PDFDocument =\n/*#__PURE__*/\nfunction () {\n  function PDFDocument(pdfManager, arg) {\n    _classCallCheck(this, PDFDocument);\n\n    var stream;\n\n    if ((0, _primitives.isStream)(arg)) {\n      stream = arg;\n    } else if ((0, _util.isArrayBuffer)(arg)) {\n      stream = new _stream2.Stream(arg);\n    } else {\n      throw new Error('PDFDocument: Unknown argument type');\n    }\n\n    if (stream.length <= 0) {\n      throw new Error('PDFDocument: Stream must have data');\n    }\n\n    this.pdfManager = pdfManager;\n    this.stream = stream;\n    this.xref = new _obj.XRef(stream, pdfManager);\n    this.pdfFunctionFactory = new _function.PDFFunctionFactory({\n      xref: this.xref,\n      isEvalSupported: pdfManager.evaluatorOptions.isEvalSupported\n    });\n    this._pagePromises = [];\n  }\n\n  _createClass(PDFDocument, [{\n    key: \"parse\",\n    value: function parse(recoveryMode) {\n      this.setup(recoveryMode);\n      var version = this.catalog.catDict.get('Version');\n\n      if ((0, _primitives.isName)(version)) {\n        this.pdfFormatVersion = version.name;\n      }\n\n      try {\n        this.acroForm = this.catalog.catDict.get('AcroForm');\n\n        if (this.acroForm) {\n          this.xfa = this.acroForm.get('XFA');\n          var fields = this.acroForm.get('Fields');\n\n          if ((!fields || !Array.isArray(fields) || fields.length === 0) && !this.xfa) {\n            this.acroForm = null;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.info)('Cannot fetch AcroForm entry; assuming no AcroForms are present');\n        this.acroForm = null;\n      }\n    }\n  }, {\n    key: \"checkHeader\",\n    value: function checkHeader() {\n      var stream = this.stream;\n      stream.reset();\n\n      if (!find(stream, '%PDF-', 1024)) {\n        return;\n      }\n\n      stream.moveStart();\n      var MAX_PDF_VERSION_LENGTH = 12;\n      var version = '',\n          ch;\n\n      while ((ch = stream.getByte()) > 0x20) {\n        if (version.length >= MAX_PDF_VERSION_LENGTH) {\n          break;\n        }\n\n        version += String.fromCharCode(ch);\n      }\n\n      if (!this.pdfFormatVersion) {\n        this.pdfFormatVersion = version.substring(5);\n      }\n    }\n  }, {\n    key: \"parseStartXRef\",\n    value: function parseStartXRef() {\n      this.xref.setStartXRef(this.startXRef);\n    }\n  }, {\n    key: \"setup\",\n    value: function setup(recoveryMode) {\n      this.xref.parse(recoveryMode);\n      this.catalog = new _obj.Catalog(this.pdfManager, this.xref);\n    }\n  }, {\n    key: \"_getLinearizationPage\",\n    value: function _getLinearizationPage(pageIndex) {\n      var catalog = this.catalog,\n          linearization = this.linearization;\n      (0, _util.assert)(linearization && linearization.pageFirst === pageIndex);\n      var ref = new _primitives.Ref(linearization.objectNumberFirst, 0);\n      return this.xref.fetchAsync(ref).then(function (obj) {\n        if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Type') && obj.has('Contents')) {\n          if (ref && !catalog.pageKidsCountCache.has(ref)) {\n            catalog.pageKidsCountCache.put(ref, 1);\n          }\n\n          return [obj, ref];\n        }\n\n        throw new _util.FormatError('The Linearization dictionary doesn\\'t point ' + 'to a valid Page dictionary.');\n      }).catch(function (reason) {\n        (0, _util.info)(reason);\n        return catalog.getPageDict(pageIndex);\n      });\n    }\n  }, {\n    key: \"getPage\",\n    value: function getPage(pageIndex) {\n      var _this5 = this;\n\n      if (this._pagePromises[pageIndex] !== undefined) {\n        return this._pagePromises[pageIndex];\n      }\n\n      var catalog = this.catalog,\n          linearization = this.linearization;\n      var promise = linearization && linearization.pageFirst === pageIndex ? this._getLinearizationPage(pageIndex) : catalog.getPageDict(pageIndex);\n      return this._pagePromises[pageIndex] = promise.then(function (_ref10) {\n        var _ref11 = _slicedToArray(_ref10, 2),\n            pageDict = _ref11[0],\n            ref = _ref11[1];\n\n        return new Page({\n          pdfManager: _this5.pdfManager,\n          xref: _this5.xref,\n          pageIndex: pageIndex,\n          pageDict: pageDict,\n          ref: ref,\n          fontCache: catalog.fontCache,\n          builtInCMapCache: catalog.builtInCMapCache,\n          pdfFunctionFactory: _this5.pdfFunctionFactory\n        });\n      });\n    }\n  }, {\n    key: \"checkFirstPage\",\n    value: function checkFirstPage() {\n      var _this6 = this;\n\n      return this.getPage(0).catch(function (reason) {\n        if (reason instanceof _util.XRefEntryException) {\n          _this6._pagePromises.length = 0;\n\n          _this6.cleanup();\n\n          throw new _util.XRefParseException();\n        }\n      });\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      return this.catalog.fontFallback(id, handler);\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      return this.catalog.cleanup();\n    }\n  }, {\n    key: \"linearization\",\n    get: function get() {\n      var linearization = null;\n\n      try {\n        linearization = _parser.Linearization.create(this.stream);\n      } catch (err) {\n        if (err instanceof _util.MissingDataException) {\n          throw err;\n        }\n\n        (0, _util.info)(err);\n      }\n\n      return (0, _util.shadow)(this, 'linearization', linearization);\n    }\n  }, {\n    key: \"startXRef\",\n    get: function get() {\n      var stream = this.stream;\n      var startXRef = 0;\n\n      if (this.linearization) {\n        stream.reset();\n\n        if (find(stream, 'endobj', 1024)) {\n          startXRef = stream.pos + 6;\n        }\n      } else {\n        var step = 1024;\n        var startXRefLength = 'startxref'.length;\n        var found = false,\n            pos = stream.end;\n\n        while (!found && pos > 0) {\n          pos -= step - startXRefLength;\n\n          if (pos < 0) {\n            pos = 0;\n          }\n\n          stream.pos = pos;\n          found = find(stream, 'startxref', step, true);\n        }\n\n        if (found) {\n          stream.skip(9);\n          var ch;\n\n          do {\n            ch = stream.getByte();\n          } while ((0, _util.isSpace)(ch));\n\n          var str = '';\n\n          while (ch >= 0x20 && ch <= 0x39) {\n            str += String.fromCharCode(ch);\n            ch = stream.getByte();\n          }\n\n          startXRef = parseInt(str, 10);\n\n          if (isNaN(startXRef)) {\n            startXRef = 0;\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'startXRef', startXRef);\n    }\n  }, {\n    key: \"numPages\",\n    get: function get() {\n      var linearization = this.linearization;\n      var num = linearization ? linearization.numPages : this.catalog.numPages;\n      return (0, _util.shadow)(this, 'numPages', num);\n    }\n  }, {\n    key: \"documentInfo\",\n    get: function get() {\n      var DocumentInfoValidators = {\n        Title: _util.isString,\n        Author: _util.isString,\n        Subject: _util.isString,\n        Keywords: _util.isString,\n        Creator: _util.isString,\n        Producer: _util.isString,\n        CreationDate: _util.isString,\n        ModDate: _util.isString,\n        Trapped: _primitives.isName\n      };\n      var docInfo = {\n        PDFFormatVersion: this.pdfFormatVersion,\n        IsLinearized: !!this.linearization,\n        IsAcroFormPresent: !!this.acroForm,\n        IsXFAPresent: !!this.xfa\n      };\n      var infoDict;\n\n      try {\n        infoDict = this.xref.trailer.get('Info');\n      } catch (err) {\n        if (err instanceof _util.MissingDataException) {\n          throw err;\n        }\n\n        (0, _util.info)('The document information dictionary is invalid.');\n      }\n\n      if ((0, _primitives.isDict)(infoDict)) {\n        var _iteratorNormalCompletion4 = true;\n        var _didIteratorError4 = false;\n        var _iteratorError4 = undefined;\n\n        try {\n          for (var _iterator4 = infoDict.getKeys()[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n            var key = _step4.value;\n            var value = infoDict.get(key);\n\n            if (DocumentInfoValidators[key]) {\n              if (DocumentInfoValidators[key](value)) {\n                docInfo[key] = typeof value !== 'string' ? value : (0, _util.stringToPDFString)(value);\n              } else {\n                (0, _util.info)(\"Bad value in document info for \\\"\".concat(key, \"\\\".\"));\n              }\n            } else if (typeof key === 'string') {\n              var customValue = void 0;\n\n              if ((0, _util.isString)(value)) {\n                customValue = (0, _util.stringToPDFString)(value);\n              } else if ((0, _primitives.isName)(value) || (0, _util.isNum)(value) || (0, _util.isBool)(value)) {\n                customValue = value;\n              } else {\n                (0, _util.info)(\"Unsupported value in document info for (custom) \\\"\".concat(key, \"\\\".\"));\n                continue;\n              }\n\n              if (!docInfo['Custom']) {\n                docInfo['Custom'] = Object.create(null);\n              }\n\n              docInfo['Custom'][key] = customValue;\n            }\n          }\n        } catch (err) {\n          _didIteratorError4 = true;\n          _iteratorError4 = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion4 && _iterator4.return != null) {\n              _iterator4.return();\n            }\n          } finally {\n            if (_didIteratorError4) {\n              throw _iteratorError4;\n            }\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'documentInfo', docInfo);\n    }\n  }, {\n    key: \"fingerprint\",\n    get: function get() {\n      var hash;\n      var idArray = this.xref.trailer.get('ID');\n\n      if (Array.isArray(idArray) && idArray[0] && (0, _util.isString)(idArray[0]) && idArray[0] !== EMPTY_FINGERPRINT) {\n        hash = (0, _util.stringToBytes)(idArray[0]);\n      } else {\n        if (this.stream.ensureRange) {\n          this.stream.ensureRange(0, Math.min(FINGERPRINT_FIRST_BYTES, this.stream.end));\n        }\n\n        hash = (0, _crypto.calculateMD5)(this.stream.bytes.subarray(0, FINGERPRINT_FIRST_BYTES), 0, FINGERPRINT_FIRST_BYTES);\n      }\n\n      var fingerprint = '';\n\n      for (var i = 0, ii = hash.length; i < ii; i++) {\n        var hex = hash[i].toString(16);\n        fingerprint += hex.length === 1 ? '0' + hex : hex;\n      }\n\n      return (0, _util.shadow)(this, 'fingerprint', fingerprint);\n    }\n  }]);\n\n  return PDFDocument;\n}();\n\nexports.PDFDocument = PDFDocument;\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.FileSpec = exports.XRef = exports.ObjectLoader = exports.Catalog = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _chunked_stream = __w_pdfjs_require__(152);\n\nvar _crypto = __w_pdfjs_require__(167);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction fetchDestination(dest) {\n  return (0, _primitives.isDict)(dest) ? dest.get('D') : dest;\n}\n\nvar Catalog =\n/*#__PURE__*/\nfunction () {\n  function Catalog(pdfManager, xref) {\n    _classCallCheck(this, Catalog);\n\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.catDict = xref.getCatalogObj();\n\n    if (!(0, _primitives.isDict)(this.catDict)) {\n      throw new _util.FormatError('Catalog object is not a dictionary.');\n    }\n\n    this.fontCache = new _primitives.RefSetCache();\n    this.builtInCMapCache = new Map();\n    this.pageKidsCountCache = new _primitives.RefSetCache();\n  }\n\n  _createClass(Catalog, [{\n    key: \"_readDocumentOutline\",\n    value: function _readDocumentOutline() {\n      var obj = this.catDict.get('Outlines');\n\n      if (!(0, _primitives.isDict)(obj)) {\n        return null;\n      }\n\n      obj = obj.getRaw('First');\n\n      if (!(0, _primitives.isRef)(obj)) {\n        return null;\n      }\n\n      var root = {\n        items: []\n      };\n      var queue = [{\n        obj: obj,\n        parent: root\n      }];\n      var processed = new _primitives.RefSet();\n      processed.put(obj);\n      var xref = this.xref,\n          blackColor = new Uint8ClampedArray(3);\n\n      while (queue.length > 0) {\n        var i = queue.shift();\n        var outlineDict = xref.fetchIfRef(i.obj);\n\n        if (outlineDict === null) {\n          continue;\n        }\n\n        if (!outlineDict.has('Title')) {\n          throw new _util.FormatError('Invalid outline item encountered.');\n        }\n\n        var data = {\n          url: null,\n          dest: null\n        };\n        Catalog.parseDestDictionary({\n          destDict: outlineDict,\n          resultObj: data,\n          docBaseUrl: this.pdfManager.docBaseUrl\n        });\n        var title = outlineDict.get('Title');\n        var flags = outlineDict.get('F') || 0;\n        var color = outlineDict.getArray('C');\n        var rgbColor = blackColor;\n\n        if (Array.isArray(color) && color.length === 3 && (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)) {\n          rgbColor = _colorspace.ColorSpace.singletons.rgb.getRgb(color, 0);\n        }\n\n        var outlineItem = {\n          dest: data.dest,\n          url: data.url,\n          unsafeUrl: data.unsafeUrl,\n          newWindow: data.newWindow,\n          title: (0, _util.stringToPDFString)(title),\n          color: rgbColor,\n          count: outlineDict.get('Count'),\n          bold: !!(flags & 2),\n          italic: !!(flags & 1),\n          items: []\n        };\n        i.parent.items.push(outlineItem);\n        obj = outlineDict.getRaw('First');\n\n        if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n          queue.push({\n            obj: obj,\n            parent: outlineItem\n          });\n          processed.put(obj);\n        }\n\n        obj = outlineDict.getRaw('Next');\n\n        if ((0, _primitives.isRef)(obj) && !processed.has(obj)) {\n          queue.push({\n            obj: obj,\n            parent: i.parent\n          });\n          processed.put(obj);\n        }\n      }\n\n      return root.items.length > 0 ? root.items : null;\n    }\n  }, {\n    key: \"_readPermissions\",\n    value: function _readPermissions() {\n      var encrypt = this.xref.trailer.get('Encrypt');\n\n      if (!(0, _primitives.isDict)(encrypt)) {\n        return null;\n      }\n\n      var flags = encrypt.get('P');\n\n      if (!(0, _util.isNum)(flags)) {\n        return null;\n      }\n\n      flags += Math.pow(2, 32);\n      var permissions = [];\n\n      for (var key in _util.PermissionFlag) {\n        var value = _util.PermissionFlag[key];\n\n        if (flags & value) {\n          permissions.push(value);\n        }\n      }\n\n      return permissions;\n    }\n  }, {\n    key: \"getDestination\",\n    value: function getDestination(destinationId) {\n      var obj = this._readDests();\n\n      if (obj instanceof NameTree || obj instanceof _primitives.Dict) {\n        return fetchDestination(obj.get(destinationId) || null);\n      }\n\n      return null;\n    }\n  }, {\n    key: \"_readDests\",\n    value: function _readDests() {\n      var obj = this.catDict.get('Names');\n\n      if (obj && obj.has('Dests')) {\n        return new NameTree(obj.getRaw('Dests'), this.xref);\n      } else if (this.catDict.has('Dests')) {\n        return this.catDict.get('Dests');\n      }\n    }\n  }, {\n    key: \"_readPageLabels\",\n    value: function _readPageLabels() {\n      var obj = this.catDict.getRaw('PageLabels');\n\n      if (!obj) {\n        return null;\n      }\n\n      var pageLabels = new Array(this.numPages);\n      var style = null,\n          prefix = '';\n      var numberTree = new NumberTree(obj, this.xref);\n      var nums = numberTree.getAll();\n      var currentLabel = '',\n          currentIndex = 1;\n\n      for (var i = 0, ii = this.numPages; i < ii; i++) {\n        if (i in nums) {\n          var labelDict = nums[i];\n\n          if (!(0, _primitives.isDict)(labelDict)) {\n            throw new _util.FormatError('PageLabel is not a dictionary.');\n          }\n\n          if (labelDict.has('Type') && !(0, _primitives.isName)(labelDict.get('Type'), 'PageLabel')) {\n            throw new _util.FormatError('Invalid type in PageLabel dictionary.');\n          }\n\n          if (labelDict.has('S')) {\n            var s = labelDict.get('S');\n\n            if (!(0, _primitives.isName)(s)) {\n              throw new _util.FormatError('Invalid style in PageLabel dictionary.');\n            }\n\n            style = s.name;\n          } else {\n            style = null;\n          }\n\n          if (labelDict.has('P')) {\n            var p = labelDict.get('P');\n\n            if (!(0, _util.isString)(p)) {\n              throw new _util.FormatError('Invalid prefix in PageLabel dictionary.');\n            }\n\n            prefix = (0, _util.stringToPDFString)(p);\n          } else {\n            prefix = '';\n          }\n\n          if (labelDict.has('St')) {\n            var st = labelDict.get('St');\n\n            if (!(Number.isInteger(st) && st >= 1)) {\n              throw new _util.FormatError('Invalid start in PageLabel dictionary.');\n            }\n\n            currentIndex = st;\n          } else {\n            currentIndex = 1;\n          }\n        }\n\n        switch (style) {\n          case 'D':\n            currentLabel = currentIndex;\n            break;\n\n          case 'R':\n          case 'r':\n            currentLabel = (0, _util.toRomanNumerals)(currentIndex, style === 'r');\n            break;\n\n          case 'A':\n          case 'a':\n            var LIMIT = 26;\n            var A_UPPER_CASE = 0x41,\n                A_LOWER_CASE = 0x61;\n            var baseCharCode = style === 'a' ? A_LOWER_CASE : A_UPPER_CASE;\n            var letterIndex = currentIndex - 1;\n            var character = String.fromCharCode(baseCharCode + letterIndex % LIMIT);\n            var charBuf = [];\n\n            for (var j = 0, jj = letterIndex / LIMIT | 0; j <= jj; j++) {\n              charBuf.push(character);\n            }\n\n            currentLabel = charBuf.join('');\n            break;\n\n          default:\n            if (style) {\n              throw new _util.FormatError(\"Invalid style \\\"\".concat(style, \"\\\" in PageLabel dictionary.\"));\n            }\n\n            currentLabel = '';\n        }\n\n        pageLabels[i] = prefix + currentLabel;\n        currentIndex++;\n      }\n\n      return pageLabels;\n    }\n  }, {\n    key: \"fontFallback\",\n    value: function fontFallback(id, handler) {\n      var promises = [];\n      this.fontCache.forEach(function (promise) {\n        promises.push(promise);\n      });\n      return Promise.all(promises).then(function (translatedFonts) {\n        var _iteratorNormalCompletion = true;\n        var _didIteratorError = false;\n        var _iteratorError = undefined;\n\n        try {\n          for (var _iterator = translatedFonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n            var translatedFont = _step.value;\n\n            if (translatedFont.loadedName === id) {\n              translatedFont.fallback(handler);\n              return;\n            }\n          }\n        } catch (err) {\n          _didIteratorError = true;\n          _iteratorError = err;\n        } finally {\n          try {\n            if (!_iteratorNormalCompletion && _iterator.return != null) {\n              _iterator.return();\n            }\n          } finally {\n            if (_didIteratorError) {\n              throw _iteratorError;\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: \"cleanup\",\n    value: function cleanup() {\n      var _this = this;\n\n      this.pageKidsCountCache.clear();\n      var promises = [];\n      this.fontCache.forEach(function (promise) {\n        promises.push(promise);\n      });\n      return Promise.all(promises).then(function (translatedFonts) {\n        for (var i = 0, ii = translatedFonts.length; i < ii; i++) {\n          var font = translatedFonts[i].dict;\n          delete font.translated;\n        }\n\n        _this.fontCache.clear();\n\n        _this.builtInCMapCache.clear();\n      });\n    }\n  }, {\n    key: \"getPageDict\",\n    value: function getPageDict(pageIndex) {\n      var capability = (0, _util.createPromiseCapability)();\n      var nodesToVisit = [this.catDict.getRaw('Pages')];\n      var xref = this.xref,\n          pageKidsCountCache = this.pageKidsCountCache;\n      var count,\n          currentPageIndex = 0;\n\n      function next() {\n        var _loop = function _loop() {\n          var currentNode = nodesToVisit.pop();\n\n          if ((0, _primitives.isRef)(currentNode)) {\n            count = pageKidsCountCache.get(currentNode);\n\n            if (count > 0 && currentPageIndex + count < pageIndex) {\n              currentPageIndex += count;\n              return \"continue\";\n            }\n\n            xref.fetchAsync(currentNode).then(function (obj) {\n              if ((0, _primitives.isDict)(obj, 'Page') || (0, _primitives.isDict)(obj) && !obj.has('Kids')) {\n                if (pageIndex === currentPageIndex) {\n                  if (currentNode && !pageKidsCountCache.has(currentNode)) {\n                    pageKidsCountCache.put(currentNode, 1);\n                  }\n\n                  capability.resolve([obj, currentNode]);\n                } else {\n                  currentPageIndex++;\n                  next();\n                }\n\n                return;\n              }\n\n              nodesToVisit.push(obj);\n              next();\n            }, capability.reject);\n            return {\n              v: void 0\n            };\n          }\n\n          if (!(0, _primitives.isDict)(currentNode)) {\n            capability.reject(new _util.FormatError('Page dictionary kid reference points to wrong type of object.'));\n            return {\n              v: void 0\n            };\n          }\n\n          count = currentNode.get('Count');\n\n          if (Number.isInteger(count) && count >= 0) {\n            var objId = currentNode.objId;\n\n            if (objId && !pageKidsCountCache.has(objId)) {\n              pageKidsCountCache.put(objId, count);\n            }\n\n            if (currentPageIndex + count <= pageIndex) {\n              currentPageIndex += count;\n              return \"continue\";\n            }\n          }\n\n          var kids = currentNode.get('Kids');\n\n          if (!Array.isArray(kids)) {\n            if ((0, _primitives.isName)(currentNode.get('Type'), 'Page') || !currentNode.has('Type') && currentNode.has('Contents')) {\n              if (currentPageIndex === pageIndex) {\n                capability.resolve([currentNode, null]);\n                return {\n                  v: void 0\n                };\n              }\n\n              currentPageIndex++;\n              return \"continue\";\n            }\n\n            capability.reject(new _util.FormatError('Page dictionary kids object is not an array.'));\n            return {\n              v: void 0\n            };\n          }\n\n          for (var last = kids.length - 1; last >= 0; last--) {\n            nodesToVisit.push(kids[last]);\n          }\n        };\n\n        while (nodesToVisit.length) {\n          var _ret = _loop();\n\n          switch (_ret) {\n            case \"continue\":\n              continue;\n\n            default:\n              if (_typeof(_ret) === \"object\") return _ret.v;\n          }\n        }\n\n        capability.reject(new Error(\"Page index \".concat(pageIndex, \" not found.\")));\n      }\n\n      next();\n      return capability.promise;\n    }\n  }, {\n    key: \"getPageIndex\",\n    value: function getPageIndex(pageRef) {\n      var xref = this.xref;\n\n      function pagesBeforeRef(kidRef) {\n        var total = 0,\n            parentRef;\n        return xref.fetchAsync(kidRef).then(function (node) {\n          if ((0, _primitives.isRefsEqual)(kidRef, pageRef) && !(0, _primitives.isDict)(node, 'Page') && !((0, _primitives.isDict)(node) && !node.has('Type') && node.has('Contents'))) {\n            throw new _util.FormatError('The reference does not point to a /Page dictionary.');\n          }\n\n          if (!node) {\n            return null;\n          }\n\n          if (!(0, _primitives.isDict)(node)) {\n            throw new _util.FormatError('Node must be a dictionary.');\n          }\n\n          parentRef = node.getRaw('Parent');\n          return node.getAsync('Parent');\n        }).then(function (parent) {\n          if (!parent) {\n            return null;\n          }\n\n          if (!(0, _primitives.isDict)(parent)) {\n            throw new _util.FormatError('Parent must be a dictionary.');\n          }\n\n          return parent.getAsync('Kids');\n        }).then(function (kids) {\n          if (!kids) {\n            return null;\n          }\n\n          var kidPromises = [];\n          var found = false;\n\n          for (var i = 0, ii = kids.length; i < ii; i++) {\n            var kid = kids[i];\n\n            if (!(0, _primitives.isRef)(kid)) {\n              throw new _util.FormatError('Kid must be a reference.');\n            }\n\n            if ((0, _primitives.isRefsEqual)(kid, kidRef)) {\n              found = true;\n              break;\n            }\n\n            kidPromises.push(xref.fetchAsync(kid).then(function (kid) {\n              if (!(0, _primitives.isDict)(kid)) {\n                throw new _util.FormatError('Kid node must be a dictionary.');\n              }\n\n              if (kid.has('Count')) {\n                total += kid.get('Count');\n              } else {\n                total++;\n              }\n            }));\n          }\n\n          if (!found) {\n            throw new _util.FormatError('Kid reference not found in parent\\'s kids.');\n          }\n\n          return Promise.all(kidPromises).then(function () {\n            return [total, parentRef];\n          });\n        });\n      }\n\n      var total = 0;\n\n      function next(ref) {\n        return pagesBeforeRef(ref).then(function (args) {\n          if (!args) {\n            return total;\n          }\n\n          var _args = _slicedToArray(args, 2),\n              count = _args[0],\n              parentRef = _args[1];\n\n          total += count;\n          return next(parentRef);\n        });\n      }\n\n      return next(pageRef);\n    }\n  }, {\n    key: \"metadata\",\n    get: function get() {\n      var streamRef = this.catDict.getRaw('Metadata');\n\n      if (!(0, _primitives.isRef)(streamRef)) {\n        return (0, _util.shadow)(this, 'metadata', null);\n      }\n\n      var suppressEncryption = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata);\n      var stream = this.xref.fetch(streamRef, suppressEncryption);\n      var metadata;\n\n      if (stream && (0, _primitives.isDict)(stream.dict)) {\n        var type = stream.dict.get('Type');\n        var subtype = stream.dict.get('Subtype');\n\n        if ((0, _primitives.isName)(type, 'Metadata') && (0, _primitives.isName)(subtype, 'XML')) {\n          try {\n            metadata = (0, _util.stringToUTF8String)((0, _util.bytesToString)(stream.getBytes()));\n          } catch (e) {\n            if (e instanceof _util.MissingDataException) {\n              throw e;\n            }\n\n            (0, _util.info)('Skipping invalid metadata.');\n          }\n        }\n      }\n\n      return (0, _util.shadow)(this, 'metadata', metadata);\n    }\n  }, {\n    key: \"toplevelPagesDict\",\n    get: function get() {\n      var pagesObj = this.catDict.get('Pages');\n\n      if (!(0, _primitives.isDict)(pagesObj)) {\n        throw new _util.FormatError('Invalid top-level pages dictionary.');\n      }\n\n      return (0, _util.shadow)(this, 'toplevelPagesDict', pagesObj);\n    }\n  }, {\n    key: \"documentOutline\",\n    get: function get() {\n      var obj = null;\n\n      try {\n        obj = this._readDocumentOutline();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read document outline.');\n      }\n\n      return (0, _util.shadow)(this, 'documentOutline', obj);\n    }\n  }, {\n    key: \"permissions\",\n    get: function get() {\n      var permissions = null;\n\n      try {\n        permissions = this._readPermissions();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read permissions.');\n      }\n\n      return (0, _util.shadow)(this, 'permissions', permissions);\n    }\n  }, {\n    key: \"numPages\",\n    get: function get() {\n      var obj = this.toplevelPagesDict.get('Count');\n\n      if (!Number.isInteger(obj)) {\n        throw new _util.FormatError('Page count in top-level pages dictionary is not an integer.');\n      }\n\n      return (0, _util.shadow)(this, 'numPages', obj);\n    }\n  }, {\n    key: \"destinations\",\n    get: function get() {\n      var obj = this._readDests(),\n          dests = Object.create(null);\n\n      if (obj instanceof NameTree) {\n        var names = obj.getAll();\n\n        for (var name in names) {\n          dests[name] = fetchDestination(names[name]);\n        }\n      } else if (obj instanceof _primitives.Dict) {\n        obj.forEach(function (key, value) {\n          if (value) {\n            dests[key] = fetchDestination(value);\n          }\n        });\n      }\n\n      return (0, _util.shadow)(this, 'destinations', dests);\n    }\n  }, {\n    key: \"pageLabels\",\n    get: function get() {\n      var obj = null;\n\n      try {\n        obj = this._readPageLabels();\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Unable to read page labels.');\n      }\n\n      return (0, _util.shadow)(this, 'pageLabels', obj);\n    }\n  }, {\n    key: \"pageMode\",\n    get: function get() {\n      var obj = this.catDict.get('PageMode');\n      var pageMode = 'UseNone';\n\n      if ((0, _primitives.isName)(obj)) {\n        switch (obj.name) {\n          case 'UseNone':\n          case 'UseOutlines':\n          case 'UseThumbs':\n          case 'FullScreen':\n          case 'UseOC':\n          case 'UseAttachments':\n            pageMode = obj.name;\n        }\n      }\n\n      return (0, _util.shadow)(this, 'pageMode', pageMode);\n    }\n  }, {\n    key: \"openActionDestination\",\n    get: function get() {\n      var obj = this.catDict.get('OpenAction');\n      var openActionDest = null;\n\n      if ((0, _primitives.isDict)(obj)) {\n        var destDict = new _primitives.Dict(this.xref);\n        destDict.set('A', obj);\n        var resultObj = {\n          url: null,\n          dest: null\n        };\n        Catalog.parseDestDictionary({\n          destDict: destDict,\n          resultObj: resultObj\n        });\n\n        if (Array.isArray(resultObj.dest)) {\n          openActionDest = resultObj.dest;\n        }\n      } else if (Array.isArray(obj)) {\n        openActionDest = obj;\n      }\n\n      return (0, _util.shadow)(this, 'openActionDestination', openActionDest);\n    }\n  }, {\n    key: \"attachments\",\n    get: function get() {\n      var obj = this.catDict.get('Names');\n      var attachments = null;\n\n      if (obj && obj.has('EmbeddedFiles')) {\n        var nameTree = new NameTree(obj.getRaw('EmbeddedFiles'), this.xref);\n        var names = nameTree.getAll();\n\n        for (var name in names) {\n          var fs = new FileSpec(names[name], this.xref);\n\n          if (!attachments) {\n            attachments = Object.create(null);\n          }\n\n          attachments[(0, _util.stringToPDFString)(name)] = fs.serializable;\n        }\n      }\n\n      return (0, _util.shadow)(this, 'attachments', attachments);\n    }\n  }, {\n    key: \"javaScript\",\n    get: function get() {\n      var obj = this.catDict.get('Names');\n      var javaScript = null;\n\n      function appendIfJavaScriptDict(jsDict) {\n        var type = jsDict.get('S');\n\n        if (!(0, _primitives.isName)(type, 'JavaScript')) {\n          return;\n        }\n\n        var js = jsDict.get('JS');\n\n        if ((0, _primitives.isStream)(js)) {\n          js = (0, _util.bytesToString)(js.getBytes());\n        } else if (!(0, _util.isString)(js)) {\n          return;\n        }\n\n        if (!javaScript) {\n          javaScript = [];\n        }\n\n        javaScript.push((0, _util.stringToPDFString)(js));\n      }\n\n      if (obj && obj.has('JavaScript')) {\n        var nameTree = new NameTree(obj.getRaw('JavaScript'), this.xref);\n        var names = nameTree.getAll();\n\n        for (var name in names) {\n          var jsDict = names[name];\n\n          if ((0, _primitives.isDict)(jsDict)) {\n            appendIfJavaScriptDict(jsDict);\n          }\n        }\n      }\n\n      var openActionDict = this.catDict.get('OpenAction');\n\n      if ((0, _primitives.isDict)(openActionDict, 'Action')) {\n        var actionType = openActionDict.get('S');\n\n        if ((0, _primitives.isName)(actionType, 'Named')) {\n          var action = openActionDict.get('N');\n\n          if ((0, _primitives.isName)(action, 'Print')) {\n            if (!javaScript) {\n              javaScript = [];\n            }\n\n            javaScript.push('print({});');\n          }\n        } else {\n          appendIfJavaScriptDict(openActionDict);\n        }\n      }\n\n      return (0, _util.shadow)(this, 'javaScript', javaScript);\n    }\n  }], [{\n    key: \"parseDestDictionary\",\n    value: function parseDestDictionary(params) {\n      function addDefaultProtocolToUrl(url) {\n        return url.startsWith('www.') ? \"http://\".concat(url) : url;\n      }\n\n      function tryConvertUrlEncoding(url) {\n        try {\n          return (0, _util.stringToUTF8String)(url);\n        } catch (e) {\n          return url;\n        }\n      }\n\n      var destDict = params.destDict;\n\n      if (!(0, _primitives.isDict)(destDict)) {\n        (0, _util.warn)('parseDestDictionary: `destDict` must be a dictionary.');\n        return;\n      }\n\n      var resultObj = params.resultObj;\n\n      if (_typeof(resultObj) !== 'object') {\n        (0, _util.warn)('parseDestDictionary: `resultObj` must be an object.');\n        return;\n      }\n\n      var docBaseUrl = params.docBaseUrl || null;\n      var action = destDict.get('A'),\n          url,\n          dest;\n\n      if (!(0, _primitives.isDict)(action) && destDict.has('Dest')) {\n        action = destDict.get('Dest');\n      }\n\n      if ((0, _primitives.isDict)(action)) {\n        var actionType = action.get('S');\n\n        if (!(0, _primitives.isName)(actionType)) {\n          (0, _util.warn)('parseDestDictionary: Invalid type in Action dictionary.');\n          return;\n        }\n\n        var actionName = actionType.name;\n\n        switch (actionName) {\n          case 'URI':\n            url = action.get('URI');\n\n            if ((0, _primitives.isName)(url)) {\n              url = '/' + url.name;\n            } else if ((0, _util.isString)(url)) {\n              url = addDefaultProtocolToUrl(url);\n            }\n\n            break;\n\n          case 'GoTo':\n            dest = action.get('D');\n            break;\n\n          case 'Launch':\n          case 'GoToR':\n            var urlDict = action.get('F');\n\n            if ((0, _primitives.isDict)(urlDict)) {\n              url = urlDict.get('F') || null;\n            } else if ((0, _util.isString)(urlDict)) {\n              url = urlDict;\n            }\n\n            var remoteDest = action.get('D');\n\n            if (remoteDest) {\n              if ((0, _primitives.isName)(remoteDest)) {\n                remoteDest = remoteDest.name;\n              }\n\n              if ((0, _util.isString)(url)) {\n                var baseUrl = url.split('#')[0];\n\n                if ((0, _util.isString)(remoteDest)) {\n                  url = baseUrl + '#' + remoteDest;\n                } else if (Array.isArray(remoteDest)) {\n                  url = baseUrl + '#' + JSON.stringify(remoteDest);\n                }\n              }\n            }\n\n            var newWindow = action.get('NewWindow');\n\n            if ((0, _util.isBool)(newWindow)) {\n              resultObj.newWindow = newWindow;\n            }\n\n            break;\n\n          case 'Named':\n            var namedAction = action.get('N');\n\n            if ((0, _primitives.isName)(namedAction)) {\n              resultObj.action = namedAction.name;\n            }\n\n            break;\n\n          case 'JavaScript':\n            var jsAction = action.get('JS');\n            var js;\n\n            if ((0, _primitives.isStream)(jsAction)) {\n              js = (0, _util.bytesToString)(jsAction.getBytes());\n            } else if ((0, _util.isString)(jsAction)) {\n              js = jsAction;\n            }\n\n            if (js) {\n              var URL_OPEN_METHODS = ['app.launchURL', 'window.open'];\n              var regex = new RegExp('^\\\\s*(' + URL_OPEN_METHODS.join('|').split('.').join('\\\\.') + ')\\\\((?:\\'|\\\")([^\\'\\\"]*)(?:\\'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))', 'i');\n              var jsUrl = regex.exec((0, _util.stringToPDFString)(js));\n\n              if (jsUrl && jsUrl[2]) {\n                url = jsUrl[2];\n\n                if (jsUrl[3] === 'true' && jsUrl[1] === 'app.launchURL') {\n                  resultObj.newWindow = true;\n                }\n\n                break;\n              }\n            }\n\n          default:\n            (0, _util.warn)(\"parseDestDictionary: unsupported action type \\\"\".concat(actionName, \"\\\".\"));\n            break;\n        }\n      } else if (destDict.has('Dest')) {\n        dest = destDict.get('Dest');\n      }\n\n      if ((0, _util.isString)(url)) {\n        url = tryConvertUrlEncoding(url);\n        var absoluteUrl = (0, _util.createValidAbsoluteUrl)(url, docBaseUrl);\n\n        if (absoluteUrl) {\n          resultObj.url = absoluteUrl.href;\n        }\n\n        resultObj.unsafeUrl = url;\n      }\n\n      if (dest) {\n        if ((0, _primitives.isName)(dest)) {\n          dest = dest.name;\n        }\n\n        if ((0, _util.isString)(dest) || Array.isArray(dest)) {\n          resultObj.dest = dest;\n        }\n      }\n    }\n  }]);\n\n  return Catalog;\n}();\n\nexports.Catalog = Catalog;\n\nvar XRef = function XRefClosure() {\n  function XRef(stream, pdfManager) {\n    this.stream = stream;\n    this.pdfManager = pdfManager;\n    this.entries = [];\n    this.xrefstms = Object.create(null);\n    this.cache = [];\n    this.stats = {\n      streamTypes: [],\n      fontTypes: []\n    };\n  }\n\n  XRef.prototype = {\n    setStartXRef: function XRef_setStartXRef(startXRef) {\n      this.startXRefQueue = [startXRef];\n    },\n    parse: function XRef_parse(recoveryMode) {\n      var trailerDict;\n\n      if (!recoveryMode) {\n        trailerDict = this.readXRef();\n      } else {\n        (0, _util.warn)('Indexing all PDF objects');\n        trailerDict = this.indexObjects();\n      }\n\n      trailerDict.assignXref(this);\n      this.trailer = trailerDict;\n      var encrypt;\n\n      try {\n        encrypt = trailerDict.get('Encrypt');\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"XRef.parse - Invalid \\\"Encrypt\\\" reference: \\\"\".concat(ex, \"\\\".\"));\n      }\n\n      if ((0, _primitives.isDict)(encrypt)) {\n        var ids = trailerDict.get('ID');\n        var fileId = ids && ids.length ? ids[0] : '';\n        encrypt.suppressEncryption = true;\n        this.encrypt = new _crypto.CipherTransformFactory(encrypt, fileId, this.pdfManager.password);\n      }\n\n      var root;\n\n      try {\n        root = trailerDict.get('Root');\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)(\"XRef.parse - Invalid \\\"Root\\\" reference: \\\"\".concat(ex, \"\\\".\"));\n      }\n\n      if ((0, _primitives.isDict)(root) && root.has('Pages')) {\n        this.root = root;\n      } else {\n        if (!recoveryMode) {\n          throw new _util.XRefParseException();\n        }\n\n        throw new _util.FormatError('Invalid root reference');\n      }\n    },\n    processXRefTable: function XRef_processXRefTable(parser) {\n      if (!('tableState' in this)) {\n        this.tableState = {\n          entryNum: 0,\n          streamPos: parser.lexer.stream.pos,\n          parserBuf1: parser.buf1,\n          parserBuf2: parser.buf2\n        };\n      }\n\n      var obj = this.readXRefTable(parser);\n\n      if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n        throw new _util.FormatError('Invalid XRef table: could not find trailer dictionary');\n      }\n\n      var dict = parser.getObj();\n\n      if (!(0, _primitives.isDict)(dict) && dict.dict) {\n        dict = dict.dict;\n      }\n\n      if (!(0, _primitives.isDict)(dict)) {\n        throw new _util.FormatError('Invalid XRef table: could not parse trailer dictionary');\n      }\n\n      delete this.tableState;\n      return dict;\n    },\n    readXRefTable: function XRef_readXRefTable(parser) {\n      var stream = parser.lexer.stream;\n      var tableState = this.tableState;\n      stream.pos = tableState.streamPos;\n      parser.buf1 = tableState.parserBuf1;\n      parser.buf2 = tableState.parserBuf2;\n      var obj;\n\n      while (true) {\n        if (!('firstEntryNum' in tableState) || !('entryCount' in tableState)) {\n          if ((0, _primitives.isCmd)(obj = parser.getObj(), 'trailer')) {\n            break;\n          }\n\n          tableState.firstEntryNum = obj;\n          tableState.entryCount = parser.getObj();\n        }\n\n        var first = tableState.firstEntryNum;\n        var count = tableState.entryCount;\n\n        if (!Number.isInteger(first) || !Number.isInteger(count)) {\n          throw new _util.FormatError('Invalid XRef table: wrong types in subsection header');\n        }\n\n        for (var i = tableState.entryNum; i < count; i++) {\n          tableState.streamPos = stream.pos;\n          tableState.entryNum = i;\n          tableState.parserBuf1 = parser.buf1;\n          tableState.parserBuf2 = parser.buf2;\n          var entry = {};\n          entry.offset = parser.getObj();\n          entry.gen = parser.getObj();\n          var type = parser.getObj();\n\n          if ((0, _primitives.isCmd)(type, 'f')) {\n            entry.free = true;\n          } else if ((0, _primitives.isCmd)(type, 'n')) {\n            entry.uncompressed = true;\n          }\n\n          if (!Number.isInteger(entry.offset) || !Number.isInteger(entry.gen) || !(entry.free || entry.uncompressed)) {\n            throw new _util.FormatError(\"Invalid entry in XRef subsection: \".concat(first, \", \").concat(count));\n          }\n\n          if (i === 0 && entry.free && first === 1) {\n            first = 0;\n          }\n\n          if (!this.entries[i + first]) {\n            this.entries[i + first] = entry;\n          }\n        }\n\n        tableState.entryNum = 0;\n        tableState.streamPos = stream.pos;\n        tableState.parserBuf1 = parser.buf1;\n        tableState.parserBuf2 = parser.buf2;\n        delete tableState.firstEntryNum;\n        delete tableState.entryCount;\n      }\n\n      if (this.entries[0] && !this.entries[0].free) {\n        throw new _util.FormatError('Invalid XRef table: unexpected first object');\n      }\n\n      return obj;\n    },\n    processXRefStream: function XRef_processXRefStream(stream) {\n      if (!('streamState' in this)) {\n        var streamParameters = stream.dict;\n        var byteWidths = streamParameters.get('W');\n        var range = streamParameters.get('Index');\n\n        if (!range) {\n          range = [0, streamParameters.get('Size')];\n        }\n\n        this.streamState = {\n          entryRanges: range,\n          byteWidths: byteWidths,\n          entryNum: 0,\n          streamPos: stream.pos\n        };\n      }\n\n      this.readXRefStream(stream);\n      delete this.streamState;\n      return stream.dict;\n    },\n    readXRefStream: function XRef_readXRefStream(stream) {\n      var i, j;\n      var streamState = this.streamState;\n      stream.pos = streamState.streamPos;\n      var byteWidths = streamState.byteWidths;\n      var typeFieldWidth = byteWidths[0];\n      var offsetFieldWidth = byteWidths[1];\n      var generationFieldWidth = byteWidths[2];\n      var entryRanges = streamState.entryRanges;\n\n      while (entryRanges.length > 0) {\n        var first = entryRanges[0];\n        var n = entryRanges[1];\n\n        if (!Number.isInteger(first) || !Number.isInteger(n)) {\n          throw new _util.FormatError(\"Invalid XRef range fields: \".concat(first, \", \").concat(n));\n        }\n\n        if (!Number.isInteger(typeFieldWidth) || !Number.isInteger(offsetFieldWidth) || !Number.isInteger(generationFieldWidth)) {\n          throw new _util.FormatError(\"Invalid XRef entry fields length: \".concat(first, \", \").concat(n));\n        }\n\n        for (i = streamState.entryNum; i < n; ++i) {\n          streamState.entryNum = i;\n          streamState.streamPos = stream.pos;\n          var type = 0,\n              offset = 0,\n              generation = 0;\n\n          for (j = 0; j < typeFieldWidth; ++j) {\n            type = type << 8 | stream.getByte();\n          }\n\n          if (typeFieldWidth === 0) {\n            type = 1;\n          }\n\n          for (j = 0; j < offsetFieldWidth; ++j) {\n            offset = offset << 8 | stream.getByte();\n          }\n\n          for (j = 0; j < generationFieldWidth; ++j) {\n            generation = generation << 8 | stream.getByte();\n          }\n\n          var entry = {};\n          entry.offset = offset;\n          entry.gen = generation;\n\n          switch (type) {\n            case 0:\n              entry.free = true;\n              break;\n\n            case 1:\n              entry.uncompressed = true;\n              break;\n\n            case 2:\n              break;\n\n            default:\n              throw new _util.FormatError(\"Invalid XRef entry type: \".concat(type));\n          }\n\n          if (!this.entries[first + i]) {\n            this.entries[first + i] = entry;\n          }\n        }\n\n        streamState.entryNum = 0;\n        streamState.streamPos = stream.pos;\n        entryRanges.splice(0, 2);\n      }\n    },\n    indexObjects: function XRef_indexObjects() {\n      var TAB = 0x9,\n          LF = 0xA,\n          CR = 0xD,\n          SPACE = 0x20;\n      var PERCENT = 0x25,\n          LT = 0x3C;\n\n      function readToken(data, offset) {\n        var token = '',\n            ch = data[offset];\n\n        while (ch !== LF && ch !== CR && ch !== LT) {\n          if (++offset >= data.length) {\n            break;\n          }\n\n          token += String.fromCharCode(ch);\n          ch = data[offset];\n        }\n\n        return token;\n      }\n\n      function skipUntil(data, offset, what) {\n        var length = what.length,\n            dataLength = data.length;\n        var skipped = 0;\n\n        while (offset < dataLength) {\n          var i = 0;\n\n          while (i < length && data[offset + i] === what[i]) {\n            ++i;\n          }\n\n          if (i >= length) {\n            break;\n          }\n\n          offset++;\n          skipped++;\n        }\n\n        return skipped;\n      }\n\n      var objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n      var endobjRegExp = /\\bendobj[\\b\\s]$/;\n      var nestedObjRegExp = /\\s+(\\d+\\s+\\d+\\s+obj[\\b\\s<])$/;\n      var CHECK_CONTENT_LENGTH = 25;\n      var trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n      var startxrefBytes = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]);\n      var objBytes = new Uint8Array([111, 98, 106]);\n      var xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n      this.entries.length = 0;\n      var stream = this.stream;\n      stream.pos = 0;\n      var buffer = stream.getBytes();\n      var position = stream.start,\n          length = buffer.length;\n      var trailers = [],\n          xrefStms = [];\n\n      while (position < length) {\n        var ch = buffer[position];\n\n        if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n          ++position;\n          continue;\n        }\n\n        if (ch === PERCENT) {\n          do {\n            ++position;\n\n            if (position >= length) {\n              break;\n            }\n\n            ch = buffer[position];\n          } while (ch !== LF && ch !== CR);\n\n          continue;\n        }\n\n        var token = readToken(buffer, position);\n        var m;\n\n        if (token.startsWith('xref') && (token.length === 4 || /\\s/.test(token[4]))) {\n          position += skipUntil(buffer, position, trailerBytes);\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else if (m = objRegExp.exec(token)) {\n          var num = m[1] | 0,\n              gen = m[2] | 0;\n\n          if (typeof this.entries[num] === 'undefined') {\n            this.entries[num] = {\n              offset: position - stream.start,\n              gen: gen,\n              uncompressed: true\n            };\n          }\n\n          var contentLength = void 0,\n              startPos = position + token.length;\n\n          while (startPos < buffer.length) {\n            var endPos = startPos + skipUntil(buffer, startPos, objBytes) + 4;\n            contentLength = endPos - position;\n            var checkPos = Math.max(endPos - CHECK_CONTENT_LENGTH, startPos);\n            var tokenStr = (0, _util.bytesToString)(buffer.subarray(checkPos, endPos));\n\n            if (endobjRegExp.test(tokenStr)) {\n              break;\n            } else {\n              var objToken = nestedObjRegExp.exec(tokenStr);\n\n              if (objToken && objToken[1]) {\n                (0, _util.warn)('indexObjects: Found new \"obj\" inside of another \"obj\", ' + 'caused by missing \"endobj\" -- trying to recover.');\n                contentLength -= objToken[1].length;\n                break;\n              }\n            }\n\n            startPos = endPos;\n          }\n\n          var content = buffer.subarray(position, position + contentLength);\n          var xrefTagOffset = skipUntil(content, 0, xrefBytes);\n\n          if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n            xrefStms.push(position - stream.start);\n            this.xrefstms[position - stream.start] = 1;\n          }\n\n          position += contentLength;\n        } else if (token.startsWith('trailer') && (token.length === 7 || /\\s/.test(token[7]))) {\n          trailers.push(position);\n          position += skipUntil(buffer, position, startxrefBytes);\n        } else {\n          position += token.length + 1;\n        }\n      }\n\n      var i, ii;\n\n      for (i = 0, ii = xrefStms.length; i < ii; ++i) {\n        this.startXRefQueue.push(xrefStms[i]);\n        this.readXRef(true);\n      }\n\n      var trailerDict;\n\n      for (i = 0, ii = trailers.length; i < ii; ++i) {\n        stream.pos = trailers[i];\n        var parser = new _parser.Parser(new _parser.Lexer(stream), true, this, true);\n        var obj = parser.getObj();\n\n        if (!(0, _primitives.isCmd)(obj, 'trailer')) {\n          continue;\n        }\n\n        var dict = parser.getObj();\n\n        if (!(0, _primitives.isDict)(dict)) {\n          continue;\n        }\n\n        var rootDict = void 0;\n\n        try {\n          rootDict = dict.get('Root');\n        } catch (ex) {\n          if (ex instanceof _util.MissingDataException) {\n            throw ex;\n          }\n\n          continue;\n        }\n\n        if (!(0, _primitives.isDict)(rootDict) || !rootDict.has('Pages')) {\n          continue;\n        }\n\n        if (dict.has('ID')) {\n          return dict;\n        }\n\n        trailerDict = dict;\n      }\n\n      if (trailerDict) {\n        return trailerDict;\n      }\n\n      throw new _util.InvalidPDFException('Invalid PDF structure');\n    },\n    readXRef: function XRef_readXRef(recoveryMode) {\n      var stream = this.stream;\n      var startXRefParsedCache = Object.create(null);\n\n      try {\n        while (this.startXRefQueue.length) {\n          var startXRef = this.startXRefQueue[0];\n\n          if (startXRefParsedCache[startXRef]) {\n            (0, _util.warn)('readXRef - skipping XRef table since it was already parsed.');\n            this.startXRefQueue.shift();\n            continue;\n          }\n\n          startXRefParsedCache[startXRef] = true;\n          stream.pos = startXRef + stream.start;\n          var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n          var obj = parser.getObj();\n          var dict;\n\n          if ((0, _primitives.isCmd)(obj, 'xref')) {\n            dict = this.processXRefTable(parser);\n\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            obj = dict.get('XRefStm');\n\n            if (Number.isInteger(obj)) {\n              var pos = obj;\n\n              if (!(pos in this.xrefstms)) {\n                this.xrefstms[pos] = 1;\n                this.startXRefQueue.push(pos);\n              }\n            }\n          } else if (Number.isInteger(obj)) {\n            if (!Number.isInteger(parser.getObj()) || !(0, _primitives.isCmd)(parser.getObj(), 'obj') || !(0, _primitives.isStream)(obj = parser.getObj())) {\n              throw new _util.FormatError('Invalid XRef stream');\n            }\n\n            dict = this.processXRefStream(obj);\n\n            if (!this.topDict) {\n              this.topDict = dict;\n            }\n\n            if (!dict) {\n              throw new _util.FormatError('Failed to read XRef stream');\n            }\n          } else {\n            throw new _util.FormatError('Invalid XRef stream header');\n          }\n\n          obj = dict.get('Prev');\n\n          if (Number.isInteger(obj)) {\n            this.startXRefQueue.push(obj);\n          } else if ((0, _primitives.isRef)(obj)) {\n            this.startXRefQueue.push(obj.num);\n          }\n\n          this.startXRefQueue.shift();\n        }\n\n        return this.topDict;\n      } catch (e) {\n        if (e instanceof _util.MissingDataException) {\n          throw e;\n        }\n\n        (0, _util.info)('(while reading XRef): ' + e);\n      }\n\n      if (recoveryMode) {\n        return;\n      }\n\n      throw new _util.XRefParseException();\n    },\n    getEntry: function XRef_getEntry(i) {\n      var xrefEntry = this.entries[i];\n\n      if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n        return xrefEntry;\n      }\n\n      return null;\n    },\n    fetchIfRef: function XRef_fetchIfRef(obj, suppressEncryption) {\n      if (!(0, _primitives.isRef)(obj)) {\n        return obj;\n      }\n\n      return this.fetch(obj, suppressEncryption);\n    },\n    fetch: function XRef_fetch(ref, suppressEncryption) {\n      if (!(0, _primitives.isRef)(ref)) {\n        throw new Error('ref object is not a reference');\n      }\n\n      var num = ref.num;\n\n      if (num in this.cache) {\n        var cacheEntry = this.cache[num];\n\n        if (cacheEntry instanceof _primitives.Dict && !cacheEntry.objId) {\n          cacheEntry.objId = ref.toString();\n        }\n\n        return cacheEntry;\n      }\n\n      var xrefEntry = this.getEntry(num);\n\n      if (xrefEntry === null) {\n        return this.cache[num] = null;\n      }\n\n      if (xrefEntry.uncompressed) {\n        xrefEntry = this.fetchUncompressed(ref, xrefEntry, suppressEncryption);\n      } else {\n        xrefEntry = this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n      }\n\n      if ((0, _primitives.isDict)(xrefEntry)) {\n        xrefEntry.objId = ref.toString();\n      } else if ((0, _primitives.isStream)(xrefEntry)) {\n        xrefEntry.dict.objId = ref.toString();\n      }\n\n      return xrefEntry;\n    },\n    fetchUncompressed: function fetchUncompressed(ref, xrefEntry) {\n      var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var gen = ref.gen;\n      var num = ref.num;\n\n      if (xrefEntry.gen !== gen) {\n        throw new _util.XRefEntryException(\"Inconsistent generation in XRef: \".concat(ref));\n      }\n\n      var stream = this.stream.makeSubStream(xrefEntry.offset + this.stream.start);\n      var parser = new _parser.Parser(new _parser.Lexer(stream), true, this);\n      var obj1 = parser.getObj();\n      var obj2 = parser.getObj();\n      var obj3 = parser.getObj();\n\n      if (!Number.isInteger(obj1)) {\n        obj1 = parseInt(obj1, 10);\n      }\n\n      if (!Number.isInteger(obj2)) {\n        obj2 = parseInt(obj2, 10);\n      }\n\n      if (obj1 !== num || obj2 !== gen || !(0, _primitives.isCmd)(obj3)) {\n        throw new _util.XRefEntryException(\"Bad (uncompressed) XRef entry: \".concat(ref));\n      }\n\n      if (obj3.cmd !== 'obj') {\n        if (obj3.cmd.startsWith('obj')) {\n          num = parseInt(obj3.cmd.substring(3), 10);\n\n          if (!Number.isNaN(num)) {\n            return num;\n          }\n        }\n\n        throw new _util.XRefEntryException(\"Bad (uncompressed) XRef entry: \".concat(ref));\n      }\n\n      if (this.encrypt && !suppressEncryption) {\n        xrefEntry = parser.getObj(this.encrypt.createCipherTransform(num, gen));\n      } else {\n        xrefEntry = parser.getObj();\n      }\n\n      if (!(0, _primitives.isStream)(xrefEntry)) {\n        this.cache[num] = xrefEntry;\n      }\n\n      return xrefEntry;\n    },\n    fetchCompressed: function fetchCompressed(ref, xrefEntry) {\n      var suppressEncryption = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var tableOffset = xrefEntry.offset;\n      var stream = this.fetch(new _primitives.Ref(tableOffset, 0));\n\n      if (!(0, _primitives.isStream)(stream)) {\n        throw new _util.FormatError('bad ObjStm stream');\n      }\n\n      var first = stream.dict.get('First');\n      var n = stream.dict.get('N');\n\n      if (!Number.isInteger(first) || !Number.isInteger(n)) {\n        throw new _util.FormatError('invalid first and n parameters for ObjStm stream');\n      }\n\n      var parser = new _parser.Parser(new _parser.Lexer(stream), false, this);\n      parser.allowStreams = true;\n      var i,\n          entries = [],\n          num,\n          nums = [];\n\n      for (i = 0; i < n; ++i) {\n        num = parser.getObj();\n\n        if (!Number.isInteger(num)) {\n          throw new _util.FormatError(\"invalid object number in the ObjStm stream: \".concat(num));\n        }\n\n        nums.push(num);\n        var offset = parser.getObj();\n\n        if (!Number.isInteger(offset)) {\n          throw new _util.FormatError(\"invalid object offset in the ObjStm stream: \".concat(offset));\n        }\n      }\n\n      for (i = 0; i < n; ++i) {\n        entries.push(parser.getObj());\n\n        if ((0, _primitives.isCmd)(parser.buf1, 'endobj')) {\n          parser.shift();\n        }\n\n        num = nums[i];\n        var entry = this.entries[num];\n\n        if (entry && entry.offset === tableOffset && entry.gen === i) {\n          this.cache[num] = entries[i];\n        }\n      }\n\n      xrefEntry = entries[xrefEntry.gen];\n\n      if (xrefEntry === undefined) {\n        throw new _util.XRefEntryException(\"Bad (compressed) XRef entry: \".concat(ref));\n      }\n\n      return xrefEntry;\n    },\n    fetchIfRefAsync: function () {\n      var _fetchIfRefAsync = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(obj, suppressEncryption) {\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if ((0, _primitives.isRef)(obj)) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\", obj);\n\n              case 2:\n                return _context.abrupt(\"return\", this.fetchAsync(obj, suppressEncryption));\n\n              case 3:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      function fetchIfRefAsync(_x, _x2) {\n        return _fetchIfRefAsync.apply(this, arguments);\n      }\n\n      return fetchIfRefAsync;\n    }(),\n    fetchAsync: function () {\n      var _fetchAsync = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee2(ref, suppressEncryption) {\n        return _regenerator.default.wrap(function _callee2$(_context2) {\n          while (1) {\n            switch (_context2.prev = _context2.next) {\n              case 0:\n                _context2.prev = 0;\n                return _context2.abrupt(\"return\", this.fetch(ref, suppressEncryption));\n\n              case 4:\n                _context2.prev = 4;\n                _context2.t0 = _context2[\"catch\"](0);\n\n                if (_context2.t0 instanceof _util.MissingDataException) {\n                  _context2.next = 8;\n                  break;\n                }\n\n                throw _context2.t0;\n\n              case 8:\n                _context2.next = 10;\n                return this.pdfManager.requestRange(_context2.t0.begin, _context2.t0.end);\n\n              case 10:\n                return _context2.abrupt(\"return\", this.fetchAsync(ref, suppressEncryption));\n\n              case 11:\n              case \"end\":\n                return _context2.stop();\n            }\n          }\n        }, _callee2, this, [[0, 4]]);\n      }));\n\n      function fetchAsync(_x3, _x4) {\n        return _fetchAsync.apply(this, arguments);\n      }\n\n      return fetchAsync;\n    }(),\n    getCatalogObj: function XRef_getCatalogObj() {\n      return this.root;\n    }\n  };\n  return XRef;\n}();\n\nexports.XRef = XRef;\n\nvar NameOrNumberTree =\n/*#__PURE__*/\nfunction () {\n  function NameOrNumberTree(root, xref, type) {\n    _classCallCheck(this, NameOrNumberTree);\n\n    if (this.constructor === NameOrNumberTree) {\n      (0, _util.unreachable)('Cannot initialize NameOrNumberTree.');\n    }\n\n    this.root = root;\n    this.xref = xref;\n    this._type = type;\n  }\n\n  _createClass(NameOrNumberTree, [{\n    key: \"getAll\",\n    value: function getAll() {\n      var dict = Object.create(null);\n\n      if (!this.root) {\n        return dict;\n      }\n\n      var xref = this.xref;\n      var processed = new _primitives.RefSet();\n      processed.put(this.root);\n      var queue = [this.root];\n\n      while (queue.length > 0) {\n        var obj = xref.fetchIfRef(queue.shift());\n\n        if (!(0, _primitives.isDict)(obj)) {\n          continue;\n        }\n\n        if (obj.has('Kids')) {\n          var kids = obj.get('Kids');\n\n          for (var i = 0, ii = kids.length; i < ii; i++) {\n            var kid = kids[i];\n\n            if (processed.has(kid)) {\n              throw new _util.FormatError(\"Duplicate entry in \\\"\".concat(this._type, \"\\\" tree.\"));\n            }\n\n            queue.push(kid);\n            processed.put(kid);\n          }\n\n          continue;\n        }\n\n        var entries = obj.get(this._type);\n\n        if (Array.isArray(entries)) {\n          for (var _i2 = 0, _ii = entries.length; _i2 < _ii; _i2 += 2) {\n            dict[xref.fetchIfRef(entries[_i2])] = xref.fetchIfRef(entries[_i2 + 1]);\n          }\n        }\n      }\n\n      return dict;\n    }\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      if (!this.root) {\n        return null;\n      }\n\n      var xref = this.xref;\n      var kidsOrEntries = xref.fetchIfRef(this.root);\n      var loopCount = 0;\n      var MAX_LEVELS = 10;\n\n      while (kidsOrEntries.has('Kids')) {\n        if (++loopCount > MAX_LEVELS) {\n          (0, _util.warn)(\"Search depth limit reached for \\\"\".concat(this._type, \"\\\" tree.\"));\n          return null;\n        }\n\n        var kids = kidsOrEntries.get('Kids');\n\n        if (!Array.isArray(kids)) {\n          return null;\n        }\n\n        var l = 0,\n            r = kids.length - 1;\n\n        while (l <= r) {\n          var m = l + r >> 1;\n          var kid = xref.fetchIfRef(kids[m]);\n          var limits = kid.get('Limits');\n\n          if (key < xref.fetchIfRef(limits[0])) {\n            r = m - 1;\n          } else if (key > xref.fetchIfRef(limits[1])) {\n            l = m + 1;\n          } else {\n            kidsOrEntries = xref.fetchIfRef(kids[m]);\n            break;\n          }\n        }\n\n        if (l > r) {\n          return null;\n        }\n      }\n\n      var entries = kidsOrEntries.get(this._type);\n\n      if (Array.isArray(entries)) {\n        var _l = 0,\n            _r = entries.length - 2;\n\n        while (_l <= _r) {\n          var tmp = _l + _r >> 1,\n              _m = tmp + (tmp & 1);\n\n          var currentKey = xref.fetchIfRef(entries[_m]);\n\n          if (key < currentKey) {\n            _r = _m - 2;\n          } else if (key > currentKey) {\n            _l = _m + 2;\n          } else {\n            return xref.fetchIfRef(entries[_m + 1]);\n          }\n        }\n\n        (0, _util.info)(\"Falling back to an exhaustive search, for key \\\"\".concat(key, \"\\\", \") + \"in \\\"\".concat(this._type, \"\\\" tree.\"));\n\n        for (var _m2 = 0, mm = entries.length; _m2 < mm; _m2 += 2) {\n          var _currentKey = xref.fetchIfRef(entries[_m2]);\n\n          if (_currentKey === key) {\n            (0, _util.warn)(\"The \\\"\".concat(key, \"\\\" key was found at an incorrect, \") + \"i.e. out-of-order, position in \\\"\".concat(this._type, \"\\\" tree.\"));\n            return xref.fetchIfRef(entries[_m2 + 1]);\n          }\n        }\n      }\n\n      return null;\n    }\n  }]);\n\n  return NameOrNumberTree;\n}();\n\nvar NameTree =\n/*#__PURE__*/\nfunction (_NameOrNumberTree) {\n  _inherits(NameTree, _NameOrNumberTree);\n\n  function NameTree(root, xref) {\n    _classCallCheck(this, NameTree);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(NameTree).call(this, root, xref, 'Names'));\n  }\n\n  return NameTree;\n}(NameOrNumberTree);\n\nvar NumberTree =\n/*#__PURE__*/\nfunction (_NameOrNumberTree2) {\n  _inherits(NumberTree, _NameOrNumberTree2);\n\n  function NumberTree(root, xref) {\n    _classCallCheck(this, NumberTree);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(NumberTree).call(this, root, xref, 'Nums'));\n  }\n\n  return NumberTree;\n}(NameOrNumberTree);\n\nvar FileSpec = function FileSpecClosure() {\n  function FileSpec(root, xref) {\n    if (!root || !(0, _primitives.isDict)(root)) {\n      return;\n    }\n\n    this.xref = xref;\n    this.root = root;\n\n    if (root.has('FS')) {\n      this.fs = root.get('FS');\n    }\n\n    this.description = root.has('Desc') ? (0, _util.stringToPDFString)(root.get('Desc')) : '';\n\n    if (root.has('RF')) {\n      (0, _util.warn)('Related file specifications are not supported');\n    }\n\n    this.contentAvailable = true;\n\n    if (!root.has('EF')) {\n      this.contentAvailable = false;\n      (0, _util.warn)('Non-embedded file specifications are not supported');\n    }\n  }\n\n  function pickPlatformItem(dict) {\n    if (dict.has('UF')) {\n      return dict.get('UF');\n    } else if (dict.has('F')) {\n      return dict.get('F');\n    } else if (dict.has('Unix')) {\n      return dict.get('Unix');\n    } else if (dict.has('Mac')) {\n      return dict.get('Mac');\n    } else if (dict.has('DOS')) {\n      return dict.get('DOS');\n    }\n\n    return null;\n  }\n\n  FileSpec.prototype = {\n    get filename() {\n      if (!this._filename && this.root) {\n        var filename = pickPlatformItem(this.root) || 'unnamed';\n        this._filename = (0, _util.stringToPDFString)(filename).replace(/\\\\\\\\/g, '\\\\').replace(/\\\\\\//g, '/').replace(/\\\\/g, '/');\n      }\n\n      return this._filename;\n    },\n\n    get content() {\n      if (!this.contentAvailable) {\n        return null;\n      }\n\n      if (!this.contentRef && this.root) {\n        this.contentRef = pickPlatformItem(this.root.get('EF'));\n      }\n\n      var content = null;\n\n      if (this.contentRef) {\n        var xref = this.xref;\n        var fileObj = xref.fetchIfRef(this.contentRef);\n\n        if (fileObj && (0, _primitives.isStream)(fileObj)) {\n          content = fileObj.getBytes();\n        } else {\n          (0, _util.warn)('Embedded file specification points to non-existing/invalid ' + 'content');\n        }\n      } else {\n        (0, _util.warn)('Embedded file specification does not have a content');\n      }\n\n      return content;\n    },\n\n    get serializable() {\n      return {\n        filename: this.filename,\n        content: this.content\n      };\n    }\n\n  };\n  return FileSpec;\n}();\n\nexports.FileSpec = FileSpec;\n\nvar ObjectLoader = function () {\n  function mayHaveChildren(value) {\n    return (0, _primitives.isRef)(value) || (0, _primitives.isDict)(value) || Array.isArray(value) || (0, _primitives.isStream)(value);\n  }\n\n  function addChildren(node, nodesToVisit) {\n    if ((0, _primitives.isDict)(node) || (0, _primitives.isStream)(node)) {\n      var dict = (0, _primitives.isDict)(node) ? node : node.dict;\n      var dictKeys = dict.getKeys();\n\n      for (var i = 0, ii = dictKeys.length; i < ii; i++) {\n        var rawValue = dict.getRaw(dictKeys[i]);\n\n        if (mayHaveChildren(rawValue)) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n    } else if (Array.isArray(node)) {\n      for (var _i3 = 0, _ii2 = node.length; _i3 < _ii2; _i3++) {\n        var value = node[_i3];\n\n        if (mayHaveChildren(value)) {\n          nodesToVisit.push(value);\n        }\n      }\n    }\n  }\n\n  function ObjectLoader(dict, keys, xref) {\n    this.dict = dict;\n    this.keys = keys;\n    this.xref = xref;\n    this.refSet = null;\n    this.capability = null;\n  }\n\n  ObjectLoader.prototype = {\n    load: function load() {\n      this.capability = (0, _util.createPromiseCapability)();\n\n      if (!(this.xref.stream instanceof _chunked_stream.ChunkedStream) || this.xref.stream.getMissingChunks().length === 0) {\n        this.capability.resolve();\n        return this.capability.promise;\n      }\n\n      var keys = this.keys,\n          dict = this.dict;\n      this.refSet = new _primitives.RefSet();\n      var nodesToVisit = [];\n\n      for (var i = 0, ii = keys.length; i < ii; i++) {\n        var rawValue = dict.getRaw(keys[i]);\n\n        if (rawValue !== undefined) {\n          nodesToVisit.push(rawValue);\n        }\n      }\n\n      this._walk(nodesToVisit);\n\n      return this.capability.promise;\n    },\n    _walk: function _walk(nodesToVisit) {\n      var _this2 = this;\n\n      var nodesToRevisit = [];\n      var pendingRequests = [];\n\n      while (nodesToVisit.length) {\n        var currentNode = nodesToVisit.pop();\n\n        if ((0, _primitives.isRef)(currentNode)) {\n          if (this.refSet.has(currentNode)) {\n            continue;\n          }\n\n          try {\n            this.refSet.put(currentNode);\n            currentNode = this.xref.fetch(currentNode);\n          } catch (ex) {\n            if (!(ex instanceof _util.MissingDataException)) {\n              throw ex;\n            }\n\n            nodesToRevisit.push(currentNode);\n            pendingRequests.push({\n              begin: ex.begin,\n              end: ex.end\n            });\n          }\n        }\n\n        if (currentNode && currentNode.getBaseStreams) {\n          var baseStreams = currentNode.getBaseStreams();\n          var foundMissingData = false;\n\n          for (var i = 0, ii = baseStreams.length; i < ii; i++) {\n            var stream = baseStreams[i];\n\n            if (stream.getMissingChunks && stream.getMissingChunks().length) {\n              foundMissingData = true;\n              pendingRequests.push({\n                begin: stream.start,\n                end: stream.end\n              });\n            }\n          }\n\n          if (foundMissingData) {\n            nodesToRevisit.push(currentNode);\n          }\n        }\n\n        addChildren(currentNode, nodesToVisit);\n      }\n\n      if (pendingRequests.length) {\n        this.xref.stream.manager.requestRanges(pendingRequests).then(function () {\n          for (var _i4 = 0, _ii3 = nodesToRevisit.length; _i4 < _ii3; _i4++) {\n            var node = nodesToRevisit[_i4];\n\n            if ((0, _primitives.isRef)(node)) {\n              _this2.refSet.remove(node);\n            }\n          }\n\n          _this2._walk(nodesToRevisit);\n        }, this.capability.reject);\n        return;\n      }\n\n      this.refSet = null;\n      this.capability.resolve();\n    }\n  };\n  return ObjectLoader;\n}();\n\nexports.ObjectLoader = ObjectLoader;\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isEOF = isEOF;\nexports.isCmd = isCmd;\nexports.isDict = isDict;\nexports.isName = isName;\nexports.isRef = isRef;\nexports.isRefsEqual = isRefsEqual;\nexports.isStream = isStream;\nexports.RefSetCache = exports.RefSet = exports.Ref = exports.Name = exports.Dict = exports.Cmd = exports.EOF = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar EOF = {};\nexports.EOF = EOF;\n\nvar Name = function NameClosure() {\n  function Name(name) {\n    this.name = name;\n  }\n\n  Name.prototype = {};\n  var nameCache = Object.create(null);\n\n  Name.get = function Name_get(name) {\n    var nameValue = nameCache[name];\n    return nameValue ? nameValue : nameCache[name] = new Name(name);\n  };\n\n  return Name;\n}();\n\nexports.Name = Name;\n\nvar Cmd = function CmdClosure() {\n  function Cmd(cmd) {\n    this.cmd = cmd;\n  }\n\n  Cmd.prototype = {};\n  var cmdCache = Object.create(null);\n\n  Cmd.get = function Cmd_get(cmd) {\n    var cmdValue = cmdCache[cmd];\n    return cmdValue ? cmdValue : cmdCache[cmd] = new Cmd(cmd);\n  };\n\n  return Cmd;\n}();\n\nexports.Cmd = Cmd;\n\nvar Dict = function DictClosure() {\n  var nonSerializable = function nonSerializableClosure() {\n    return nonSerializable;\n  };\n\n  function Dict(xref) {\n    this._map = Object.create(null);\n    this.xref = xref;\n    this.objId = null;\n    this.suppressEncryption = false;\n    this.__nonSerializable__ = nonSerializable;\n  }\n\n  Dict.prototype = {\n    assignXref: function Dict_assignXref(newXref) {\n      this.xref = newXref;\n    },\n    get: function Dict_get(key1, key2, key3) {\n      var value;\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n        return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n      }\n\n      if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n        return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n      }\n\n      value = this._map[key3] || null;\n      return xref ? xref.fetchIfRef(value, suppressEncryption) : value;\n    },\n    getAsync: function Dict_getAsync(key1, key2, key3) {\n      var value;\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (typeof (value = this._map[key1]) !== 'undefined' || key1 in this._map || typeof key2 === 'undefined') {\n        if (xref) {\n          return xref.fetchIfRefAsync(value, suppressEncryption);\n        }\n\n        return Promise.resolve(value);\n      }\n\n      if (typeof (value = this._map[key2]) !== 'undefined' || key2 in this._map || typeof key3 === 'undefined') {\n        if (xref) {\n          return xref.fetchIfRefAsync(value, suppressEncryption);\n        }\n\n        return Promise.resolve(value);\n      }\n\n      value = this._map[key3] || null;\n\n      if (xref) {\n        return xref.fetchIfRefAsync(value, suppressEncryption);\n      }\n\n      return Promise.resolve(value);\n    },\n    getArray: function Dict_getArray(key1, key2, key3) {\n      var value = this.get(key1, key2, key3);\n      var xref = this.xref,\n          suppressEncryption = this.suppressEncryption;\n\n      if (!Array.isArray(value) || !xref) {\n        return value;\n      }\n\n      value = value.slice();\n\n      for (var i = 0, ii = value.length; i < ii; i++) {\n        if (!isRef(value[i])) {\n          continue;\n        }\n\n        value[i] = xref.fetch(value[i], suppressEncryption);\n      }\n\n      return value;\n    },\n    getRaw: function Dict_getRaw(key) {\n      return this._map[key];\n    },\n    getKeys: function Dict_getKeys() {\n      return Object.keys(this._map);\n    },\n    set: function Dict_set(key, value) {\n      this._map[key] = value;\n    },\n    has: function Dict_has(key) {\n      return key in this._map;\n    },\n    forEach: function Dict_forEach(callback) {\n      for (var key in this._map) {\n        callback(key, this.get(key));\n      }\n    }\n  };\n  Dict.empty = new Dict(null);\n\n  Dict.merge = function (xref, dictArray) {\n    var mergedDict = new Dict(xref);\n\n    for (var i = 0, ii = dictArray.length; i < ii; i++) {\n      var dict = dictArray[i];\n\n      if (!isDict(dict)) {\n        continue;\n      }\n\n      for (var keyName in dict._map) {\n        if (mergedDict._map[keyName] !== undefined) {\n          continue;\n        }\n\n        mergedDict._map[keyName] = dict._map[keyName];\n      }\n    }\n\n    return mergedDict;\n  };\n\n  return Dict;\n}();\n\nexports.Dict = Dict;\n\nvar Ref = function RefClosure() {\n  function Ref(num, gen) {\n    this.num = num;\n    this.gen = gen;\n  }\n\n  Ref.prototype = {\n    toString: function Ref_toString() {\n      if (this.gen !== 0) {\n        return \"\".concat(this.num, \"R\").concat(this.gen);\n      }\n\n      return \"\".concat(this.num, \"R\");\n    }\n  };\n  return Ref;\n}();\n\nexports.Ref = Ref;\n\nvar RefSet = function RefSetClosure() {\n  function RefSet() {\n    this.dict = Object.create(null);\n  }\n\n  RefSet.prototype = {\n    has: function RefSet_has(ref) {\n      return ref.toString() in this.dict;\n    },\n    put: function RefSet_put(ref) {\n      this.dict[ref.toString()] = true;\n    },\n    remove: function RefSet_remove(ref) {\n      delete this.dict[ref.toString()];\n    }\n  };\n  return RefSet;\n}();\n\nexports.RefSet = RefSet;\n\nvar RefSetCache = function RefSetCacheClosure() {\n  function RefSetCache() {\n    this.dict = Object.create(null);\n  }\n\n  RefSetCache.prototype = {\n    get: function RefSetCache_get(ref) {\n      return this.dict[ref.toString()];\n    },\n    has: function RefSetCache_has(ref) {\n      return ref.toString() in this.dict;\n    },\n    put: function RefSetCache_put(ref, obj) {\n      this.dict[ref.toString()] = obj;\n    },\n    putAlias: function RefSetCache_putAlias(ref, aliasRef) {\n      this.dict[ref.toString()] = this.get(aliasRef);\n    },\n    forEach: function RefSetCache_forEach(fn, thisArg) {\n      for (var i in this.dict) {\n        fn.call(thisArg, this.dict[i]);\n      }\n    },\n    clear: function RefSetCache_clear() {\n      this.dict = Object.create(null);\n    }\n  };\n  return RefSetCache;\n}();\n\nexports.RefSetCache = RefSetCache;\n\nfunction isEOF(v) {\n  return v === EOF;\n}\n\nfunction isName(v, name) {\n  return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n  return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n  return v instanceof Dict && (type === undefined || isName(v.get('Type'), type));\n}\n\nfunction isRef(v) {\n  return v instanceof Ref;\n}\n\nfunction isRefsEqual(v1, v2) {\n  return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nfunction isStream(v) {\n  return _typeof(v) === 'object' && v !== null && v.getBytes !== undefined;\n}\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Parser = exports.Linearization = exports.Lexer = void 0;\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ccitt_stream = __w_pdfjs_require__(158);\n\nvar _jbig2_stream = __w_pdfjs_require__(160);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _jpx_stream = __w_pdfjs_require__(165);\n\nvar MAX_LENGTH_TO_CACHE = 1000;\nvar MAX_ADLER32_LENGTH = 5552;\n\nfunction computeAdler32(bytes) {\n  var bytesLength = bytes.length;\n  var a = 1,\n      b = 0;\n\n  for (var i = 0; i < bytesLength; ++i) {\n    a += bytes[i] & 0xFF;\n    b += a;\n  }\n\n  return b % 65521 << 16 | a % 65521;\n}\n\nvar Parser = function ParserClosure() {\n  function Parser(lexer, allowStreams, xref, recoveryMode) {\n    this.lexer = lexer;\n    this.allowStreams = allowStreams;\n    this.xref = xref;\n    this.recoveryMode = recoveryMode || false;\n    this.imageCache = Object.create(null);\n    this.refill();\n  }\n\n  Parser.prototype = {\n    refill: function Parser_refill() {\n      this.buf1 = this.lexer.getObj();\n      this.buf2 = this.lexer.getObj();\n    },\n    shift: function Parser_shift() {\n      if ((0, _primitives.isCmd)(this.buf2, 'ID')) {\n        this.buf1 = this.buf2;\n        this.buf2 = null;\n      } else {\n        this.buf1 = this.buf2;\n        this.buf2 = this.lexer.getObj();\n      }\n    },\n    tryShift: function Parser_tryShift() {\n      try {\n        this.shift();\n        return true;\n      } catch (e) {\n        if (e instanceof _util.MissingDataException) {\n          throw e;\n        }\n\n        return false;\n      }\n    },\n    getObj: function Parser_getObj(cipherTransform) {\n      var buf1 = this.buf1;\n      this.shift();\n\n      if (buf1 instanceof _primitives.Cmd) {\n        switch (buf1.cmd) {\n          case 'BI':\n            return this.makeInlineImage(cipherTransform);\n\n          case '[':\n            var array = [];\n\n            while (!(0, _primitives.isCmd)(this.buf1, ']') && !(0, _primitives.isEOF)(this.buf1)) {\n              array.push(this.getObj(cipherTransform));\n            }\n\n            if ((0, _primitives.isEOF)(this.buf1)) {\n              if (!this.recoveryMode) {\n                throw new _util.FormatError('End of file inside array');\n              }\n\n              return array;\n            }\n\n            this.shift();\n            return array;\n\n          case '<<':\n            var dict = new _primitives.Dict(this.xref);\n\n            while (!(0, _primitives.isCmd)(this.buf1, '>>') && !(0, _primitives.isEOF)(this.buf1)) {\n              if (!(0, _primitives.isName)(this.buf1)) {\n                (0, _util.info)('Malformed dictionary: key must be a name object');\n                this.shift();\n                continue;\n              }\n\n              var key = this.buf1.name;\n              this.shift();\n\n              if ((0, _primitives.isEOF)(this.buf1)) {\n                break;\n              }\n\n              dict.set(key, this.getObj(cipherTransform));\n            }\n\n            if ((0, _primitives.isEOF)(this.buf1)) {\n              if (!this.recoveryMode) {\n                throw new _util.FormatError('End of file inside dictionary');\n              }\n\n              return dict;\n            }\n\n            if ((0, _primitives.isCmd)(this.buf2, 'stream')) {\n              return this.allowStreams ? this.makeStream(dict, cipherTransform) : dict;\n            }\n\n            this.shift();\n            return dict;\n\n          default:\n            return buf1;\n        }\n      }\n\n      if (Number.isInteger(buf1)) {\n        var num = buf1;\n\n        if (Number.isInteger(this.buf1) && (0, _primitives.isCmd)(this.buf2, 'R')) {\n          var ref = new _primitives.Ref(num, this.buf1);\n          this.shift();\n          this.shift();\n          return ref;\n        }\n\n        return num;\n      }\n\n      if ((0, _util.isString)(buf1)) {\n        var str = buf1;\n\n        if (cipherTransform) {\n          str = cipherTransform.decryptString(str);\n        }\n\n        return str;\n      }\n\n      return buf1;\n    },\n    findDefaultInlineStreamEnd: function findDefaultInlineStreamEnd(stream) {\n      var E = 0x45,\n          I = 0x49,\n          SPACE = 0x20,\n          LF = 0xA,\n          CR = 0xD;\n      var n = 10,\n          NUL = 0x0;\n      var startPos = stream.pos,\n          state = 0,\n          ch,\n          maybeEIPos;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (state === 0) {\n          state = ch === E ? 1 : 0;\n        } else if (state === 1) {\n          state = ch === I ? 2 : 0;\n        } else {\n          (0, _util.assert)(state === 2);\n\n          if (ch === SPACE || ch === LF || ch === CR) {\n            maybeEIPos = stream.pos;\n            var followingBytes = stream.peekBytes(n);\n\n            for (var i = 0, ii = followingBytes.length; i < ii; i++) {\n              ch = followingBytes[i];\n\n              if (ch === NUL && followingBytes[i + 1] !== NUL) {\n                continue;\n              }\n\n              if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7F)) {\n                state = 0;\n                break;\n              }\n            }\n\n            if (state === 2) {\n              break;\n            }\n          } else {\n            state = 0;\n          }\n        }\n      }\n\n      if (ch === -1) {\n        (0, _util.warn)('findDefaultInlineStreamEnd: ' + 'Reached the end of the stream without finding a valid EI marker');\n\n        if (maybeEIPos) {\n          (0, _util.warn)('... trying to recover by using the last \"EI\" occurrence.');\n          stream.skip(-(stream.pos - maybeEIPos));\n        }\n      }\n\n      var endOffset = 4;\n      stream.skip(-endOffset);\n      ch = stream.peekByte();\n      stream.skip(endOffset);\n\n      if (!(0, _util.isSpace)(ch)) {\n        endOffset--;\n      }\n\n      return stream.pos - endOffset - startPos;\n    },\n    findDCTDecodeInlineStreamEnd: function Parser_findDCTDecodeInlineStreamEnd(stream) {\n      var startPos = stream.pos,\n          foundEOI = false,\n          b,\n          markerLength,\n          length;\n\n      while ((b = stream.getByte()) !== -1) {\n        if (b !== 0xFF) {\n          continue;\n        }\n\n        switch (stream.getByte()) {\n          case 0x00:\n            break;\n\n          case 0xFF:\n            stream.skip(-1);\n            break;\n\n          case 0xD9:\n            foundEOI = true;\n            break;\n\n          case 0xC0:\n          case 0xC1:\n          case 0xC2:\n          case 0xC3:\n          case 0xC5:\n          case 0xC6:\n          case 0xC7:\n          case 0xC9:\n          case 0xCA:\n          case 0xCB:\n          case 0xCD:\n          case 0xCE:\n          case 0xCF:\n          case 0xC4:\n          case 0xCC:\n          case 0xDA:\n          case 0xDB:\n          case 0xDC:\n          case 0xDD:\n          case 0xDE:\n          case 0xDF:\n          case 0xE0:\n          case 0xE1:\n          case 0xE2:\n          case 0xE3:\n          case 0xE4:\n          case 0xE5:\n          case 0xE6:\n          case 0xE7:\n          case 0xE8:\n          case 0xE9:\n          case 0xEA:\n          case 0xEB:\n          case 0xEC:\n          case 0xED:\n          case 0xEE:\n          case 0xEF:\n          case 0xFE:\n            markerLength = stream.getUint16();\n\n            if (markerLength > 2) {\n              stream.skip(markerLength - 2);\n            } else {\n              stream.skip(-2);\n            }\n\n            break;\n        }\n\n        if (foundEOI) {\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (b === -1) {\n        (0, _util.warn)('Inline DCTDecode image stream: ' + 'EOI marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    findASCII85DecodeInlineStreamEnd: function Parser_findASCII85DecodeInlineStreamEnd(stream) {\n      var TILDE = 0x7E,\n          GT = 0x3E;\n      var startPos = stream.pos,\n          ch,\n          length;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (ch === TILDE && stream.peekByte() === GT) {\n          stream.skip();\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (ch === -1) {\n        (0, _util.warn)('Inline ASCII85Decode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    findASCIIHexDecodeInlineStreamEnd: function Parser_findASCIIHexDecodeInlineStreamEnd(stream) {\n      var GT = 0x3E;\n      var startPos = stream.pos,\n          ch,\n          length;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (ch === GT) {\n          break;\n        }\n      }\n\n      length = stream.pos - startPos;\n\n      if (ch === -1) {\n        (0, _util.warn)('Inline ASCIIHexDecode image stream: ' + 'EOD marker not found, searching for /EI/ instead.');\n        stream.skip(-length);\n        return this.findDefaultInlineStreamEnd(stream);\n      }\n\n      this.inlineStreamSkipEI(stream);\n      return length;\n    },\n    inlineStreamSkipEI: function Parser_inlineStreamSkipEI(stream) {\n      var E = 0x45,\n          I = 0x49;\n      var state = 0,\n          ch;\n\n      while ((ch = stream.getByte()) !== -1) {\n        if (state === 0) {\n          state = ch === E ? 1 : 0;\n        } else if (state === 1) {\n          state = ch === I ? 2 : 0;\n        } else if (state === 2) {\n          break;\n        }\n      }\n    },\n    makeInlineImage: function Parser_makeInlineImage(cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n      var dict = new _primitives.Dict(this.xref),\n          dictLength;\n\n      while (!(0, _primitives.isCmd)(this.buf1, 'ID') && !(0, _primitives.isEOF)(this.buf1)) {\n        if (!(0, _primitives.isName)(this.buf1)) {\n          throw new _util.FormatError('Dictionary key must be a name object');\n        }\n\n        var key = this.buf1.name;\n        this.shift();\n\n        if ((0, _primitives.isEOF)(this.buf1)) {\n          break;\n        }\n\n        dict.set(key, this.getObj(cipherTransform));\n      }\n\n      if (lexer.beginInlineImagePos !== -1) {\n        dictLength = stream.pos - lexer.beginInlineImagePos;\n      }\n\n      var filter = dict.get('Filter', 'F'),\n          filterName;\n\n      if ((0, _primitives.isName)(filter)) {\n        filterName = filter.name;\n      } else if (Array.isArray(filter)) {\n        var filterZero = this.xref.fetchIfRef(filter[0]);\n\n        if ((0, _primitives.isName)(filterZero)) {\n          filterName = filterZero.name;\n        }\n      }\n\n      var startPos = stream.pos,\n          length;\n\n      if (filterName === 'DCTDecode' || filterName === 'DCT') {\n        length = this.findDCTDecodeInlineStreamEnd(stream);\n      } else if (filterName === 'ASCII85Decode' || filterName === 'A85') {\n        length = this.findASCII85DecodeInlineStreamEnd(stream);\n      } else if (filterName === 'ASCIIHexDecode' || filterName === 'AHx') {\n        length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n      } else {\n        length = this.findDefaultInlineStreamEnd(stream);\n      }\n\n      var imageStream = stream.makeSubStream(startPos, length, dict);\n      var cacheKey;\n\n      if (length < MAX_LENGTH_TO_CACHE && dictLength < MAX_ADLER32_LENGTH) {\n        var imageBytes = imageStream.getBytes();\n        imageStream.reset();\n        var initialStreamPos = stream.pos;\n        stream.pos = lexer.beginInlineImagePos;\n        var dictBytes = stream.getBytes(dictLength);\n        stream.pos = initialStreamPos;\n        cacheKey = computeAdler32(imageBytes) + '_' + computeAdler32(dictBytes);\n        var cacheEntry = this.imageCache[cacheKey];\n\n        if (cacheEntry !== undefined) {\n          this.buf2 = _primitives.Cmd.get('EI');\n          this.shift();\n          cacheEntry.reset();\n          return cacheEntry;\n        }\n      }\n\n      if (cipherTransform) {\n        imageStream = cipherTransform.createStream(imageStream, length);\n      }\n\n      imageStream = this.filter(imageStream, dict, length);\n      imageStream.dict = dict;\n\n      if (cacheKey !== undefined) {\n        imageStream.cacheKey = 'inline_' + length + '_' + cacheKey;\n        this.imageCache[cacheKey] = imageStream;\n      }\n\n      this.buf2 = _primitives.Cmd.get('EI');\n      this.shift();\n      return imageStream;\n    },\n    _findStreamLength: function _findStreamLength(startPos, signature) {\n      var stream = this.lexer.stream;\n      stream.pos = startPos;\n      var SCAN_BLOCK_LENGTH = 2048;\n      var signatureLength = signature.length;\n\n      while (stream.pos < stream.end) {\n        var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n        var scanLength = scanBytes.length - signatureLength;\n\n        if (scanLength <= 0) {\n          break;\n        }\n\n        var pos = 0;\n\n        while (pos < scanLength) {\n          var j = 0;\n\n          while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n            j++;\n          }\n\n          if (j >= signatureLength) {\n            stream.pos += pos;\n            return stream.pos - startPos;\n          }\n\n          pos++;\n        }\n\n        stream.pos += scanLength;\n      }\n\n      return -1;\n    },\n    makeStream: function Parser_makeStream(dict, cipherTransform) {\n      var lexer = this.lexer;\n      var stream = lexer.stream;\n      lexer.skipToNextLine();\n      var startPos = stream.pos - 1;\n      var length = dict.get('Length');\n\n      if (!Number.isInteger(length)) {\n        (0, _util.info)('Bad ' + length + ' attribute in stream');\n        length = 0;\n      }\n\n      stream.pos = startPos + length;\n      lexer.nextChar();\n\n      if (this.tryShift() && (0, _primitives.isCmd)(this.buf2, 'endstream')) {\n        this.shift();\n      } else {\n        var ENDSTREAM_SIGNATURE = new Uint8Array([0x65, 0x6E, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6D]);\n\n        var actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n\n        if (actualLength < 0) {\n          var MAX_TRUNCATION = 1;\n\n          for (var i = 1; i <= MAX_TRUNCATION; i++) {\n            var end = ENDSTREAM_SIGNATURE.length - i;\n            var TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n            var maybeLength = this._findStreamLength(startPos, TRUNCATED_SIGNATURE);\n\n            if (maybeLength >= 0) {\n              var lastByte = stream.peekBytes(end + 1)[end];\n\n              if (!(0, _util.isSpace)(lastByte)) {\n                break;\n              }\n\n              (0, _util.info)(\"Found \\\"\".concat((0, _util.bytesToString)(TRUNCATED_SIGNATURE), \"\\\" when \") + 'searching for endstream command.');\n              actualLength = maybeLength;\n              break;\n            }\n          }\n\n          if (actualLength < 0) {\n            throw new _util.FormatError('Missing endstream command.');\n          }\n        }\n\n        length = actualLength;\n        lexer.nextChar();\n        this.shift();\n        this.shift();\n      }\n\n      this.shift();\n      stream = stream.makeSubStream(startPos, length, dict);\n\n      if (cipherTransform) {\n        stream = cipherTransform.createStream(stream, length);\n      }\n\n      stream = this.filter(stream, dict, length);\n      stream.dict = dict;\n      return stream;\n    },\n    filter: function Parser_filter(stream, dict, length) {\n      var filter = dict.get('Filter', 'F');\n      var params = dict.get('DecodeParms', 'DP');\n\n      if ((0, _primitives.isName)(filter)) {\n        if (Array.isArray(params)) {\n          (0, _util.warn)('/DecodeParms should not contain an Array, ' + 'when /Filter contains a Name.');\n        }\n\n        return this.makeFilter(stream, filter.name, length, params);\n      }\n\n      var maybeLength = length;\n\n      if (Array.isArray(filter)) {\n        var filterArray = filter;\n        var paramsArray = params;\n\n        for (var i = 0, ii = filterArray.length; i < ii; ++i) {\n          filter = this.xref.fetchIfRef(filterArray[i]);\n\n          if (!(0, _primitives.isName)(filter)) {\n            throw new _util.FormatError('Bad filter name: ' + filter);\n          }\n\n          params = null;\n\n          if (Array.isArray(paramsArray) && i in paramsArray) {\n            params = this.xref.fetchIfRef(paramsArray[i]);\n          }\n\n          stream = this.makeFilter(stream, filter.name, maybeLength, params);\n          maybeLength = null;\n        }\n      }\n\n      return stream;\n    },\n    makeFilter: function Parser_makeFilter(stream, name, maybeLength, params) {\n      if (maybeLength === 0) {\n        (0, _util.warn)('Empty \"' + name + '\" stream.');\n        return new _stream.NullStream();\n      }\n\n      try {\n        var xrefStreamStats = this.xref.stats.streamTypes;\n\n        if (name === 'FlateDecode' || name === 'Fl') {\n          xrefStreamStats[_util.StreamType.FLATE] = true;\n\n          if (params) {\n            return new _stream.PredictorStream(new _stream.FlateStream(stream, maybeLength), maybeLength, params);\n          }\n\n          return new _stream.FlateStream(stream, maybeLength);\n        }\n\n        if (name === 'LZWDecode' || name === 'LZW') {\n          xrefStreamStats[_util.StreamType.LZW] = true;\n          var earlyChange = 1;\n\n          if (params) {\n            if (params.has('EarlyChange')) {\n              earlyChange = params.get('EarlyChange');\n            }\n\n            return new _stream.PredictorStream(new _stream.LZWStream(stream, maybeLength, earlyChange), maybeLength, params);\n          }\n\n          return new _stream.LZWStream(stream, maybeLength, earlyChange);\n        }\n\n        if (name === 'DCTDecode' || name === 'DCT') {\n          xrefStreamStats[_util.StreamType.DCT] = true;\n          return new _jpeg_stream.JpegStream(stream, maybeLength, stream.dict, params);\n        }\n\n        if (name === 'JPXDecode' || name === 'JPX') {\n          xrefStreamStats[_util.StreamType.JPX] = true;\n          return new _jpx_stream.JpxStream(stream, maybeLength, stream.dict, params);\n        }\n\n        if (name === 'ASCII85Decode' || name === 'A85') {\n          xrefStreamStats[_util.StreamType.A85] = true;\n          return new _stream.Ascii85Stream(stream, maybeLength);\n        }\n\n        if (name === 'ASCIIHexDecode' || name === 'AHx') {\n          xrefStreamStats[_util.StreamType.AHX] = true;\n          return new _stream.AsciiHexStream(stream, maybeLength);\n        }\n\n        if (name === 'CCITTFaxDecode' || name === 'CCF') {\n          xrefStreamStats[_util.StreamType.CCF] = true;\n          return new _ccitt_stream.CCITTFaxStream(stream, maybeLength, params);\n        }\n\n        if (name === 'RunLengthDecode' || name === 'RL') {\n          xrefStreamStats[_util.StreamType.RL] = true;\n          return new _stream.RunLengthStream(stream, maybeLength);\n        }\n\n        if (name === 'JBIG2Decode') {\n          xrefStreamStats[_util.StreamType.JBIG] = true;\n          return new _jbig2_stream.Jbig2Stream(stream, maybeLength, stream.dict, params);\n        }\n\n        (0, _util.warn)('filter \"' + name + '\" not supported yet');\n        return stream;\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Invalid stream: \\\"' + ex + '\\\"');\n        return new _stream.NullStream();\n      }\n    }\n  };\n  return Parser;\n}();\n\nexports.Parser = Parser;\n\nvar Lexer = function LexerClosure() {\n  function Lexer(stream, knownCommands) {\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n    this.knownCommands = knownCommands;\n    this.beginInlineImagePos = -1;\n  }\n\n  var specialChars = [1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 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, 2, 0, 2, 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, 2, 0, 2, 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, 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];\n\n  function toHexDigit(ch) {\n    if (ch >= 0x30 && ch <= 0x39) {\n      return ch & 0x0F;\n    }\n\n    if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n      return (ch & 0x0F) + 9;\n    }\n\n    return -1;\n  }\n\n  Lexer.prototype = {\n    nextChar: function Lexer_nextChar() {\n      return this.currentChar = this.stream.getByte();\n    },\n    peekChar: function Lexer_peekChar() {\n      return this.stream.peekByte();\n    },\n    getNumber: function Lexer_getNumber() {\n      var ch = this.currentChar;\n      var eNotation = false;\n      var divideBy = 0;\n      var sign = 0;\n\n      if (ch === 0x2D) {\n        sign = -1;\n        ch = this.nextChar();\n\n        if (ch === 0x2D) {\n          ch = this.nextChar();\n        }\n      } else if (ch === 0x2B) {\n        sign = 1;\n        ch = this.nextChar();\n      }\n\n      if (ch === 0x0A || ch === 0x0D) {\n        do {\n          ch = this.nextChar();\n        } while (ch === 0x0A || ch === 0x0D);\n      }\n\n      if (ch === 0x2E) {\n        divideBy = 10;\n        ch = this.nextChar();\n      }\n\n      if (ch < 0x30 || ch > 0x39) {\n        if (divideBy === 10 && sign === 0 && ((0, _util.isSpace)(ch) || ch === -1)) {\n          (0, _util.warn)('Lexer.getNumber - treating a single decimal point as zero.');\n          return 0;\n        }\n\n        throw new _util.FormatError(\"Invalid number: \".concat(String.fromCharCode(ch), \" (charCode \").concat(ch, \")\"));\n      }\n\n      sign = sign || 1;\n      var baseValue = ch - 0x30;\n      var powerValue = 0;\n      var powerValueSign = 1;\n\n      while ((ch = this.nextChar()) >= 0) {\n        if (0x30 <= ch && ch <= 0x39) {\n          var currentDigit = ch - 0x30;\n\n          if (eNotation) {\n            powerValue = powerValue * 10 + currentDigit;\n          } else {\n            if (divideBy !== 0) {\n              divideBy *= 10;\n            }\n\n            baseValue = baseValue * 10 + currentDigit;\n          }\n        } else if (ch === 0x2E) {\n          if (divideBy === 0) {\n            divideBy = 1;\n          } else {\n            break;\n          }\n        } else if (ch === 0x2D) {\n          (0, _util.warn)('Badly formatted number');\n        } else if (ch === 0x45 || ch === 0x65) {\n          ch = this.peekChar();\n\n          if (ch === 0x2B || ch === 0x2D) {\n            powerValueSign = ch === 0x2D ? -1 : 1;\n            this.nextChar();\n          } else if (ch < 0x30 || ch > 0x39) {\n            break;\n          }\n\n          eNotation = true;\n        } else {\n          break;\n        }\n      }\n\n      if (divideBy !== 0) {\n        baseValue /= divideBy;\n      }\n\n      if (eNotation) {\n        baseValue *= Math.pow(10, powerValueSign * powerValue);\n      }\n\n      return sign * baseValue;\n    },\n    getString: function Lexer_getString() {\n      var numParen = 1;\n      var done = false;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      var ch = this.nextChar();\n\n      while (true) {\n        var charBuffered = false;\n\n        switch (ch | 0) {\n          case -1:\n            (0, _util.warn)('Unterminated string');\n            done = true;\n            break;\n\n          case 0x28:\n            ++numParen;\n            strBuf.push('(');\n            break;\n\n          case 0x29:\n            if (--numParen === 0) {\n              this.nextChar();\n              done = true;\n            } else {\n              strBuf.push(')');\n            }\n\n            break;\n\n          case 0x5C:\n            ch = this.nextChar();\n\n            switch (ch) {\n              case -1:\n                (0, _util.warn)('Unterminated string');\n                done = true;\n                break;\n\n              case 0x6E:\n                strBuf.push('\\n');\n                break;\n\n              case 0x72:\n                strBuf.push('\\r');\n                break;\n\n              case 0x74:\n                strBuf.push('\\t');\n                break;\n\n              case 0x62:\n                strBuf.push('\\b');\n                break;\n\n              case 0x66:\n                strBuf.push('\\f');\n                break;\n\n              case 0x5C:\n              case 0x28:\n              case 0x29:\n                strBuf.push(String.fromCharCode(ch));\n                break;\n\n              case 0x30:\n              case 0x31:\n              case 0x32:\n              case 0x33:\n              case 0x34:\n              case 0x35:\n              case 0x36:\n              case 0x37:\n                var x = ch & 0x0F;\n                ch = this.nextChar();\n                charBuffered = true;\n\n                if (ch >= 0x30 && ch <= 0x37) {\n                  x = (x << 3) + (ch & 0x0F);\n                  ch = this.nextChar();\n\n                  if (ch >= 0x30 && ch <= 0x37) {\n                    charBuffered = false;\n                    x = (x << 3) + (ch & 0x0F);\n                  }\n                }\n\n                strBuf.push(String.fromCharCode(x));\n                break;\n\n              case 0x0D:\n                if (this.peekChar() === 0x0A) {\n                  this.nextChar();\n                }\n\n                break;\n\n              case 0x0A:\n                break;\n\n              default:\n                strBuf.push(String.fromCharCode(ch));\n                break;\n            }\n\n            break;\n\n          default:\n            strBuf.push(String.fromCharCode(ch));\n            break;\n        }\n\n        if (done) {\n          break;\n        }\n\n        if (!charBuffered) {\n          ch = this.nextChar();\n        }\n      }\n\n      return strBuf.join('');\n    },\n    getName: function Lexer_getName() {\n      var ch, previousCh;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        if (ch === 0x23) {\n          ch = this.nextChar();\n\n          if (specialChars[ch]) {\n            (0, _util.warn)('Lexer_getName: ' + 'NUMBER SIGN (#) should be followed by a hexadecimal number.');\n            strBuf.push('#');\n            break;\n          }\n\n          var x = toHexDigit(ch);\n\n          if (x !== -1) {\n            previousCh = ch;\n            ch = this.nextChar();\n            var x2 = toHexDigit(ch);\n\n            if (x2 === -1) {\n              (0, _util.warn)('Lexer_getName: Illegal digit (' + String.fromCharCode(ch) + ') in hexadecimal number.');\n              strBuf.push('#', String.fromCharCode(previousCh));\n\n              if (specialChars[ch]) {\n                break;\n              }\n\n              strBuf.push(String.fromCharCode(ch));\n              continue;\n            }\n\n            strBuf.push(String.fromCharCode(x << 4 | x2));\n          } else {\n            strBuf.push('#', String.fromCharCode(ch));\n          }\n        } else {\n          strBuf.push(String.fromCharCode(ch));\n        }\n      }\n\n      if (strBuf.length > 127) {\n        (0, _util.warn)('name token is longer than allowed by the spec: ' + strBuf.length);\n      }\n\n      return _primitives.Name.get(strBuf.join(''));\n    },\n    getHexString: function Lexer_getHexString() {\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      var ch = this.currentChar;\n      var isFirstHex = true;\n      var firstDigit;\n      var secondDigit;\n\n      while (true) {\n        if (ch < 0) {\n          (0, _util.warn)('Unterminated hex string');\n          break;\n        } else if (ch === 0x3E) {\n          this.nextChar();\n          break;\n        } else if (specialChars[ch] === 1) {\n          ch = this.nextChar();\n          continue;\n        } else {\n          if (isFirstHex) {\n            firstDigit = toHexDigit(ch);\n\n            if (firstDigit === -1) {\n              (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n          } else {\n            secondDigit = toHexDigit(ch);\n\n            if (secondDigit === -1) {\n              (0, _util.warn)('Ignoring invalid character \"' + ch + '\" in hex string');\n              ch = this.nextChar();\n              continue;\n            }\n\n            strBuf.push(String.fromCharCode(firstDigit << 4 | secondDigit));\n          }\n\n          isFirstHex = !isFirstHex;\n          ch = this.nextChar();\n        }\n      }\n\n      return strBuf.join('');\n    },\n    getObj: function Lexer_getObj() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch < 0) {\n          return _primitives.EOF;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (specialChars[ch] !== 1) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      switch (ch | 0) {\n        case 0x30:\n        case 0x31:\n        case 0x32:\n        case 0x33:\n        case 0x34:\n        case 0x35:\n        case 0x36:\n        case 0x37:\n        case 0x38:\n        case 0x39:\n        case 0x2B:\n        case 0x2D:\n        case 0x2E:\n          return this.getNumber();\n\n        case 0x28:\n          return this.getString();\n\n        case 0x2F:\n          return this.getName();\n\n        case 0x5B:\n          this.nextChar();\n          return _primitives.Cmd.get('[');\n\n        case 0x5D:\n          this.nextChar();\n          return _primitives.Cmd.get(']');\n\n        case 0x3C:\n          ch = this.nextChar();\n\n          if (ch === 0x3C) {\n            this.nextChar();\n            return _primitives.Cmd.get('<<');\n          }\n\n          return this.getHexString();\n\n        case 0x3E:\n          ch = this.nextChar();\n\n          if (ch === 0x3E) {\n            this.nextChar();\n            return _primitives.Cmd.get('>>');\n          }\n\n          return _primitives.Cmd.get('>');\n\n        case 0x7B:\n          this.nextChar();\n          return _primitives.Cmd.get('{');\n\n        case 0x7D:\n          this.nextChar();\n          return _primitives.Cmd.get('}');\n\n        case 0x29:\n          this.nextChar();\n          throw new _util.FormatError(\"Illegal character: \".concat(ch));\n      }\n\n      var str = String.fromCharCode(ch);\n      var knownCommands = this.knownCommands;\n      var knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n\n      while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n        var possibleCommand = str + String.fromCharCode(ch);\n\n        if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n          break;\n        }\n\n        if (str.length === 128) {\n          throw new _util.FormatError(\"Command token too long: \".concat(str.length));\n        }\n\n        str = possibleCommand;\n        knownCommandFound = knownCommands && knownCommands[str] !== undefined;\n      }\n\n      if (str === 'true') {\n        return true;\n      }\n\n      if (str === 'false') {\n        return false;\n      }\n\n      if (str === 'null') {\n        return null;\n      }\n\n      if (str === 'BI') {\n        this.beginInlineImagePos = this.stream.pos;\n      }\n\n      return _primitives.Cmd.get(str);\n    },\n    skipToNextLine: function Lexer_skipToNextLine() {\n      var ch = this.currentChar;\n\n      while (ch >= 0) {\n        if (ch === 0x0D) {\n          ch = this.nextChar();\n\n          if (ch === 0x0A) {\n            this.nextChar();\n          }\n\n          break;\n        } else if (ch === 0x0A) {\n          this.nextChar();\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n    }\n  };\n  return Lexer;\n}();\n\nexports.Lexer = Lexer;\nvar Linearization = {\n  create: function LinearizationCreate(stream) {\n    function getInt(name, allowZeroValue) {\n      var obj = linDict.get(name);\n\n      if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n        return obj;\n      }\n\n      throw new Error('The \"' + name + '\" parameter in the linearization ' + 'dictionary is invalid.');\n    }\n\n    function getHints() {\n      var hints = linDict.get('H'),\n          hintsLength,\n          item;\n\n      if (Array.isArray(hints) && ((hintsLength = hints.length) === 2 || hintsLength === 4)) {\n        for (var index = 0; index < hintsLength; index++) {\n          if (!(Number.isInteger(item = hints[index]) && item > 0)) {\n            throw new Error('Hint (' + index + ') in the linearization dictionary is invalid.');\n          }\n        }\n\n        return hints;\n      }\n\n      throw new Error('Hint array in the linearization dictionary is invalid.');\n    }\n\n    var parser = new Parser(new Lexer(stream), false, null);\n    var obj1 = parser.getObj();\n    var obj2 = parser.getObj();\n    var obj3 = parser.getObj();\n    var linDict = parser.getObj();\n    var obj, length;\n\n    if (!(Number.isInteger(obj1) && Number.isInteger(obj2) && (0, _primitives.isCmd)(obj3, 'obj') && (0, _primitives.isDict)(linDict) && (0, _util.isNum)(obj = linDict.get('Linearized')) && obj > 0)) {\n      return null;\n    } else if ((length = getInt('L')) !== stream.length) {\n      throw new Error('The \"L\" parameter in the linearization dictionary ' + 'does not equal the stream length.');\n    }\n\n    return {\n      length: length,\n      hints: getHints(),\n      objectNumberFirst: getInt('O'),\n      endFirst: getInt('E'),\n      numPages: getInt('N'),\n      mainXRefEntriesOffset: getInt('T'),\n      pageFirst: linDict.has('P') ? getInt('P', true) : 0\n    };\n  }\n};\nexports.Linearization = Linearization;\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar Stream = function StreamClosure() {\n  function Stream(arrayBuffer, start, length, dict) {\n    this.bytes = arrayBuffer instanceof Uint8Array ? arrayBuffer : new Uint8Array(arrayBuffer);\n    this.start = start || 0;\n    this.pos = this.start;\n    this.end = start + length || this.bytes.length;\n    this.dict = dict;\n  }\n\n  Stream.prototype = {\n    get length() {\n      return this.end - this.start;\n    },\n\n    get isEmpty() {\n      return this.length === 0;\n    },\n\n    getByte: function Stream_getByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.bytes[this.pos++];\n    },\n    getUint16: function Stream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    },\n    getInt32: function Stream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    getBytes: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.bytes;\n      var pos = this.pos;\n      var strEnd = this.end;\n\n      if (!length) {\n        var _subarray = bytes.subarray(pos, strEnd);\n\n        return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;\n      }\n\n      var end = pos + length;\n\n      if (end > strEnd) {\n        end = strEnd;\n      }\n\n      this.pos = end;\n      var subarray = bytes.subarray(pos, end);\n      return forceClamped ? new Uint8ClampedArray(subarray) : subarray;\n    },\n    peekByte: function Stream_peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    },\n    peekBytes: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    skip: function Stream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    },\n    reset: function Stream_reset() {\n      this.pos = this.start;\n    },\n    moveStart: function Stream_moveStart() {\n      this.start = this.pos;\n    },\n    makeSubStream: function Stream_makeSubStream(start, length, dict) {\n      return new Stream(this.bytes.buffer, start, length, dict);\n    }\n  };\n  return Stream;\n}();\n\nexports.Stream = Stream;\n\nvar StringStream = function StringStreamClosure() {\n  function StringStream(str) {\n    var bytes = (0, _util.stringToBytes)(str);\n    Stream.call(this, bytes);\n  }\n\n  StringStream.prototype = Stream.prototype;\n  return StringStream;\n}();\n\nexports.StringStream = StringStream;\n\nvar DecodeStream = function DecodeStreamClosure() {\n  var emptyBuffer = new Uint8Array(0);\n\n  function DecodeStream(maybeMinBufferLength) {\n    this._rawMinBufferLength = maybeMinBufferLength || 0;\n    this.pos = 0;\n    this.bufferLength = 0;\n    this.eof = false;\n    this.buffer = emptyBuffer;\n    this.minBufferLength = 512;\n\n    if (maybeMinBufferLength) {\n      while (this.minBufferLength < maybeMinBufferLength) {\n        this.minBufferLength *= 2;\n      }\n    }\n  }\n\n  DecodeStream.prototype = {\n    get isEmpty() {\n      while (!this.eof && this.bufferLength === 0) {\n        this.readBlock();\n      }\n\n      return this.bufferLength === 0;\n    },\n\n    ensureBuffer: function DecodeStream_ensureBuffer(requested) {\n      var buffer = this.buffer;\n\n      if (requested <= buffer.byteLength) {\n        return buffer;\n      }\n\n      var size = this.minBufferLength;\n\n      while (size < requested) {\n        size *= 2;\n      }\n\n      var buffer2 = new Uint8Array(size);\n      buffer2.set(buffer);\n      return this.buffer = buffer2;\n    },\n    getByte: function DecodeStream_getByte() {\n      var pos = this.pos;\n\n      while (this.bufferLength <= pos) {\n        if (this.eof) {\n          return -1;\n        }\n\n        this.readBlock();\n      }\n\n      return this.buffer[this.pos++];\n    },\n    getUint16: function DecodeStream_getUint16() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n\n      if (b0 === -1 || b1 === -1) {\n        return -1;\n      }\n\n      return (b0 << 8) + b1;\n    },\n    getInt32: function DecodeStream_getInt32() {\n      var b0 = this.getByte();\n      var b1 = this.getByte();\n      var b2 = this.getByte();\n      var b3 = this.getByte();\n      return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n    },\n    getBytes: function getBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var end,\n          pos = this.pos;\n\n      if (length) {\n        this.ensureBuffer(pos + length);\n        end = pos + length;\n\n        while (!this.eof && this.bufferLength < end) {\n          this.readBlock();\n        }\n\n        var bufEnd = this.bufferLength;\n\n        if (end > bufEnd) {\n          end = bufEnd;\n        }\n      } else {\n        while (!this.eof) {\n          this.readBlock();\n        }\n\n        end = this.bufferLength;\n      }\n\n      this.pos = end;\n      var subarray = this.buffer.subarray(pos, end);\n      return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;\n    },\n    peekByte: function DecodeStream_peekByte() {\n      var peekedByte = this.getByte();\n      this.pos--;\n      return peekedByte;\n    },\n    peekBytes: function peekBytes(length) {\n      var forceClamped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var bytes = this.getBytes(length, forceClamped);\n      this.pos -= bytes.length;\n      return bytes;\n    },\n    makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {\n      var end = start + length;\n\n      while (this.bufferLength <= end && !this.eof) {\n        this.readBlock();\n      }\n\n      return new Stream(this.buffer, start, length, dict);\n    },\n    skip: function DecodeStream_skip(n) {\n      if (!n) {\n        n = 1;\n      }\n\n      this.pos += n;\n    },\n    reset: function DecodeStream_reset() {\n      this.pos = 0;\n    },\n    getBaseStreams: function DecodeStream_getBaseStreams() {\n      if (this.str && this.str.getBaseStreams) {\n        return this.str.getBaseStreams();\n      }\n\n      return [];\n    }\n  };\n  return DecodeStream;\n}();\n\nexports.DecodeStream = DecodeStream;\n\nvar StreamsSequenceStream = function StreamsSequenceStreamClosure() {\n  function StreamsSequenceStream(streams) {\n    this.streams = streams;\n    var maybeLength = 0;\n\n    for (var i = 0, ii = streams.length; i < ii; i++) {\n      var stream = streams[i];\n\n      if (stream instanceof DecodeStream) {\n        maybeLength += stream._rawMinBufferLength;\n      } else {\n        maybeLength += stream.length;\n      }\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  StreamsSequenceStream.prototype = Object.create(DecodeStream.prototype);\n\n  StreamsSequenceStream.prototype.readBlock = function streamSequenceStreamReadBlock() {\n    var streams = this.streams;\n\n    if (streams.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    var stream = streams.shift();\n    var chunk = stream.getBytes();\n    var bufferLength = this.bufferLength;\n    var newLength = bufferLength + chunk.length;\n    var buffer = this.ensureBuffer(newLength);\n    buffer.set(chunk, bufferLength);\n    this.bufferLength = newLength;\n  };\n\n  StreamsSequenceStream.prototype.getBaseStreams = function StreamsSequenceStream_getBaseStreams() {\n    var baseStreams = [];\n\n    for (var i = 0, ii = this.streams.length; i < ii; i++) {\n      var stream = this.streams[i];\n\n      if (stream.getBaseStreams) {\n        baseStreams.push.apply(baseStreams, _toConsumableArray(stream.getBaseStreams()));\n      }\n    }\n\n    return baseStreams;\n  };\n\n  return StreamsSequenceStream;\n}();\n\nexports.StreamsSequenceStream = StreamsSequenceStream;\n\nvar FlateStream = function FlateStreamClosure() {\n  var codeLenCodeMap = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n  var lengthDecode = new Int32Array([0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a, 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f, 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073, 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102]);\n  var distDecode = new Int32Array([0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d, 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1, 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01, 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001]);\n  var fixedLitCodeTab = [new Int32Array([0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0, 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0, 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0, 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8, 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8, 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8, 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4, 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4, 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4, 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc, 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec, 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc, 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2, 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2, 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2, 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca, 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea, 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da, 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6, 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6, 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6, 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce, 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee, 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de, 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe, 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1, 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1, 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1, 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1, 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9, 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9, 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9, 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9, 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5, 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5, 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5, 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5, 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd, 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed, 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd, 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd, 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3, 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3, 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3, 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3, 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb, 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb, 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db, 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb, 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7, 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7, 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7, 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7, 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf, 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef, 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df, 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff]), 9];\n  var fixedDistCodeTab = [new Int32Array([0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c, 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000, 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d, 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000]), 5];\n\n  function FlateStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    var cmf = str.getByte();\n    var flg = str.getByte();\n\n    if (cmf === -1 || flg === -1) {\n      throw new _util.FormatError(\"Invalid header in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if ((cmf & 0x0f) !== 0x08) {\n      throw new _util.FormatError(\"Unknown compression method in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if (((cmf << 8) + flg) % 31 !== 0) {\n      throw new _util.FormatError(\"Bad FCHECK in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    if (flg & 0x20) {\n      throw new _util.FormatError(\"FDICT bit set in flate stream: \".concat(cmf, \", \").concat(flg));\n    }\n\n    this.codeSize = 0;\n    this.codeBuf = 0;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  FlateStream.prototype = Object.create(DecodeStream.prototype);\n\n  FlateStream.prototype.getBits = function FlateStream_getBits(bits) {\n    var str = this.str;\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var b;\n\n    while (codeSize < bits) {\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad encoding in flate stream');\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    b = codeBuf & (1 << bits) - 1;\n    this.codeBuf = codeBuf >> bits;\n    this.codeSize = codeSize -= bits;\n    return b;\n  };\n\n  FlateStream.prototype.getCode = function FlateStream_getCode(table) {\n    var str = this.str;\n    var codes = table[0];\n    var maxLen = table[1];\n    var codeSize = this.codeSize;\n    var codeBuf = this.codeBuf;\n    var b;\n\n    while (codeSize < maxLen) {\n      if ((b = str.getByte()) === -1) {\n        break;\n      }\n\n      codeBuf |= b << codeSize;\n      codeSize += 8;\n    }\n\n    var code = codes[codeBuf & (1 << maxLen) - 1];\n    var codeLen = code >> 16;\n    var codeVal = code & 0xffff;\n\n    if (codeLen < 1 || codeSize < codeLen) {\n      throw new _util.FormatError('Bad encoding in flate stream');\n    }\n\n    this.codeBuf = codeBuf >> codeLen;\n    this.codeSize = codeSize - codeLen;\n    return codeVal;\n  };\n\n  FlateStream.prototype.generateHuffmanTable = function flateStreamGenerateHuffmanTable(lengths) {\n    var n = lengths.length;\n    var maxLen = 0;\n    var i;\n\n    for (i = 0; i < n; ++i) {\n      if (lengths[i] > maxLen) {\n        maxLen = lengths[i];\n      }\n    }\n\n    var size = 1 << maxLen;\n    var codes = new Int32Array(size);\n\n    for (var len = 1, code = 0, skip = 2; len <= maxLen; ++len, code <<= 1, skip <<= 1) {\n      for (var val = 0; val < n; ++val) {\n        if (lengths[val] === len) {\n          var code2 = 0;\n          var t = code;\n\n          for (i = 0; i < len; ++i) {\n            code2 = code2 << 1 | t & 1;\n            t >>= 1;\n          }\n\n          for (i = code2; i < size; i += skip) {\n            codes[i] = len << 16 | val;\n          }\n\n          ++code;\n        }\n      }\n    }\n\n    return [codes, maxLen];\n  };\n\n  FlateStream.prototype.readBlock = function FlateStream_readBlock() {\n    var buffer, len;\n    var str = this.str;\n    var hdr = this.getBits(3);\n\n    if (hdr & 1) {\n      this.eof = true;\n    }\n\n    hdr >>= 1;\n\n    if (hdr === 0) {\n      var b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      var blockLen = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      blockLen |= b << 8;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      var check = b;\n\n      if ((b = str.getByte()) === -1) {\n        throw new _util.FormatError('Bad block header in flate stream');\n      }\n\n      check |= b << 8;\n\n      if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n        throw new _util.FormatError('Bad uncompressed block length in flate stream');\n      }\n\n      this.codeBuf = 0;\n      this.codeSize = 0;\n      var bufferLength = this.bufferLength;\n      buffer = this.ensureBuffer(bufferLength + blockLen);\n      var end = bufferLength + blockLen;\n      this.bufferLength = end;\n\n      if (blockLen === 0) {\n        if (str.peekByte() === -1) {\n          this.eof = true;\n        }\n      } else {\n        for (var n = bufferLength; n < end; ++n) {\n          if ((b = str.getByte()) === -1) {\n            this.eof = true;\n            break;\n          }\n\n          buffer[n] = b;\n        }\n      }\n\n      return;\n    }\n\n    var litCodeTable;\n    var distCodeTable;\n\n    if (hdr === 1) {\n      litCodeTable = fixedLitCodeTab;\n      distCodeTable = fixedDistCodeTab;\n    } else if (hdr === 2) {\n      var numLitCodes = this.getBits(5) + 257;\n      var numDistCodes = this.getBits(5) + 1;\n      var numCodeLenCodes = this.getBits(4) + 4;\n      var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n      var i;\n\n      for (i = 0; i < numCodeLenCodes; ++i) {\n        codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n      }\n\n      var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n      len = 0;\n      i = 0;\n      var codes = numLitCodes + numDistCodes;\n      var codeLengths = new Uint8Array(codes);\n      var bitsLength, bitsOffset, what;\n\n      while (i < codes) {\n        var code = this.getCode(codeLenCodeTab);\n\n        if (code === 16) {\n          bitsLength = 2;\n          bitsOffset = 3;\n          what = len;\n        } else if (code === 17) {\n          bitsLength = 3;\n          bitsOffset = 3;\n          what = len = 0;\n        } else if (code === 18) {\n          bitsLength = 7;\n          bitsOffset = 11;\n          what = len = 0;\n        } else {\n          codeLengths[i++] = len = code;\n          continue;\n        }\n\n        var repeatLength = this.getBits(bitsLength) + bitsOffset;\n\n        while (repeatLength-- > 0) {\n          codeLengths[i++] = what;\n        }\n      }\n\n      litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));\n      distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));\n    } else {\n      throw new _util.FormatError('Unknown block type in flate stream');\n    }\n\n    buffer = this.buffer;\n    var limit = buffer ? buffer.length : 0;\n    var pos = this.bufferLength;\n\n    while (true) {\n      var code1 = this.getCode(litCodeTable);\n\n      if (code1 < 256) {\n        if (pos + 1 >= limit) {\n          buffer = this.ensureBuffer(pos + 1);\n          limit = buffer.length;\n        }\n\n        buffer[pos++] = code1;\n        continue;\n      }\n\n      if (code1 === 256) {\n        this.bufferLength = pos;\n        return;\n      }\n\n      code1 -= 257;\n      code1 = lengthDecode[code1];\n      var code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      len = (code1 & 0xffff) + code2;\n      code1 = this.getCode(distCodeTable);\n      code1 = distDecode[code1];\n      code2 = code1 >> 16;\n\n      if (code2 > 0) {\n        code2 = this.getBits(code2);\n      }\n\n      var dist = (code1 & 0xffff) + code2;\n\n      if (pos + len >= limit) {\n        buffer = this.ensureBuffer(pos + len);\n        limit = buffer.length;\n      }\n\n      for (var k = 0; k < len; ++k, ++pos) {\n        buffer[pos] = buffer[pos - dist];\n      }\n    }\n  };\n\n  return FlateStream;\n}();\n\nexports.FlateStream = FlateStream;\n\nvar PredictorStream = function PredictorStreamClosure() {\n  function PredictorStream(str, maybeLength, params) {\n    if (!(0, _primitives.isDict)(params)) {\n      return str;\n    }\n\n    var predictor = this.predictor = params.get('Predictor') || 1;\n\n    if (predictor <= 1) {\n      return str;\n    }\n\n    if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n      throw new _util.FormatError(\"Unsupported predictor: \".concat(predictor));\n    }\n\n    if (predictor === 2) {\n      this.readBlock = this.readBlockTiff;\n    } else {\n      this.readBlock = this.readBlockPng;\n    }\n\n    this.str = str;\n    this.dict = str.dict;\n    var colors = this.colors = params.get('Colors') || 1;\n    var bits = this.bits = params.get('BitsPerComponent') || 8;\n    var columns = this.columns = params.get('Columns') || 1;\n    this.pixBytes = colors * bits + 7 >> 3;\n    this.rowBytes = columns * colors * bits + 7 >> 3;\n    DecodeStream.call(this, maybeLength);\n    return this;\n  }\n\n  PredictorStream.prototype = Object.create(DecodeStream.prototype);\n\n  PredictorStream.prototype.readBlockTiff = function predictorStreamReadBlockTiff() {\n    var rowBytes = this.rowBytes;\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n    var bits = this.bits;\n    var colors = this.colors;\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    var inbuf = 0,\n        outbuf = 0;\n    var inbits = 0,\n        outbits = 0;\n    var pos = bufferLength;\n    var i;\n\n    if (bits === 1 && colors === 1) {\n      for (i = 0; i < rowBytes; ++i) {\n        var c = rawBytes[i] ^ inbuf;\n        c ^= c >> 1;\n        c ^= c >> 2;\n        c ^= c >> 4;\n        inbuf = (c & 1) << 7;\n        buffer[pos++] = c;\n      }\n    } else if (bits === 8) {\n      for (i = 0; i < colors; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; ++i) {\n        buffer[pos] = buffer[pos - colors] + rawBytes[i];\n        pos++;\n      }\n    } else if (bits === 16) {\n      var bytesPerPixel = colors * 2;\n\n      for (i = 0; i < bytesPerPixel; ++i) {\n        buffer[pos++] = rawBytes[i];\n      }\n\n      for (; i < rowBytes; i += 2) {\n        var sum = ((rawBytes[i] & 0xFF) << 8) + (rawBytes[i + 1] & 0xFF) + ((buffer[pos - bytesPerPixel] & 0xFF) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xFF);\n        buffer[pos++] = sum >> 8 & 0xFF;\n        buffer[pos++] = sum & 0xFF;\n      }\n    } else {\n      var compArray = new Uint8Array(colors + 1);\n      var bitMask = (1 << bits) - 1;\n      var j = 0,\n          k = bufferLength;\n      var columns = this.columns;\n\n      for (i = 0; i < columns; ++i) {\n        for (var kk = 0; kk < colors; ++kk) {\n          if (inbits < bits) {\n            inbuf = inbuf << 8 | rawBytes[j++] & 0xFF;\n            inbits += 8;\n          }\n\n          compArray[kk] = compArray[kk] + (inbuf >> inbits - bits) & bitMask;\n          inbits -= bits;\n          outbuf = outbuf << bits | compArray[kk];\n          outbits += bits;\n\n          if (outbits >= 8) {\n            buffer[k++] = outbuf >> outbits - 8 & 0xFF;\n            outbits -= 8;\n          }\n        }\n      }\n\n      if (outbits > 0) {\n        buffer[k++] = (outbuf << 8 - outbits) + (inbuf & (1 << 8 - outbits) - 1);\n      }\n    }\n\n    this.bufferLength += rowBytes;\n  };\n\n  PredictorStream.prototype.readBlockPng = function predictorStreamReadBlockPng() {\n    var rowBytes = this.rowBytes;\n    var pixBytes = this.pixBytes;\n    var predictor = this.str.getByte();\n    var rawBytes = this.str.getBytes(rowBytes);\n    this.eof = !rawBytes.length;\n\n    if (this.eof) {\n      return;\n    }\n\n    var bufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(bufferLength + rowBytes);\n    var prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n\n    if (prevRow.length === 0) {\n      prevRow = new Uint8Array(rowBytes);\n    }\n\n    var i,\n        j = bufferLength,\n        up,\n        c;\n\n    switch (predictor) {\n      case 0:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        break;\n\n      case 1:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xFF;\n          j++;\n        }\n\n        break;\n\n      case 2:\n        for (i = 0; i < rowBytes; ++i) {\n          buffer[j++] = prevRow[i] + rawBytes[i] & 0xFF;\n        }\n\n        break;\n\n      case 3:\n        for (i = 0; i < pixBytes; ++i) {\n          buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n        }\n\n        for (; i < rowBytes; ++i) {\n          buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xFF;\n          j++;\n        }\n\n        break;\n\n      case 4:\n        for (i = 0; i < pixBytes; ++i) {\n          up = prevRow[i];\n          c = rawBytes[i];\n          buffer[j++] = up + c;\n        }\n\n        for (; i < rowBytes; ++i) {\n          up = prevRow[i];\n          var upLeft = prevRow[i - pixBytes];\n          var left = buffer[j - pixBytes];\n          var p = left + up - upLeft;\n          var pa = p - left;\n\n          if (pa < 0) {\n            pa = -pa;\n          }\n\n          var pb = p - up;\n\n          if (pb < 0) {\n            pb = -pb;\n          }\n\n          var pc = p - upLeft;\n\n          if (pc < 0) {\n            pc = -pc;\n          }\n\n          c = rawBytes[i];\n\n          if (pa <= pb && pa <= pc) {\n            buffer[j++] = left + c;\n          } else if (pb <= pc) {\n            buffer[j++] = up + c;\n          } else {\n            buffer[j++] = upLeft + c;\n          }\n        }\n\n        break;\n\n      default:\n        throw new _util.FormatError(\"Unsupported predictor: \".concat(predictor));\n    }\n\n    this.bufferLength += rowBytes;\n  };\n\n  return PredictorStream;\n}();\n\nexports.PredictorStream = PredictorStream;\n\nvar DecryptStream = function DecryptStreamClosure() {\n  function DecryptStream(str, maybeLength, decrypt) {\n    this.str = str;\n    this.dict = str.dict;\n    this.decrypt = decrypt;\n    this.nextChunk = null;\n    this.initialized = false;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  var chunkSize = 512;\n  DecryptStream.prototype = Object.create(DecodeStream.prototype);\n\n  DecryptStream.prototype.readBlock = function DecryptStream_readBlock() {\n    var chunk;\n\n    if (this.initialized) {\n      chunk = this.nextChunk;\n    } else {\n      chunk = this.str.getBytes(chunkSize);\n      this.initialized = true;\n    }\n\n    if (!chunk || chunk.length === 0) {\n      this.eof = true;\n      return;\n    }\n\n    this.nextChunk = this.str.getBytes(chunkSize);\n    var hasMoreData = this.nextChunk && this.nextChunk.length > 0;\n    var decrypt = this.decrypt;\n    chunk = decrypt(chunk, !hasMoreData);\n    var bufferLength = this.bufferLength;\n    var i,\n        n = chunk.length;\n    var buffer = this.ensureBuffer(bufferLength + n);\n\n    for (i = 0; i < n; i++) {\n      buffer[bufferLength++] = chunk[i];\n    }\n\n    this.bufferLength = bufferLength;\n  };\n\n  return DecryptStream;\n}();\n\nexports.DecryptStream = DecryptStream;\n\nvar Ascii85Stream = function Ascii85StreamClosure() {\n  function Ascii85Stream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    this.input = new Uint8Array(5);\n\n    if (maybeLength) {\n      maybeLength = 0.8 * maybeLength;\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  Ascii85Stream.prototype = Object.create(DecodeStream.prototype);\n\n  Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {\n    var TILDA_CHAR = 0x7E;\n    var Z_LOWER_CHAR = 0x7A;\n    var EOF = -1;\n    var str = this.str;\n    var c = str.getByte();\n\n    while ((0, _util.isSpace)(c)) {\n      c = str.getByte();\n    }\n\n    if (c === EOF || c === TILDA_CHAR) {\n      this.eof = true;\n      return;\n    }\n\n    var bufferLength = this.bufferLength,\n        buffer;\n    var i;\n\n    if (c === Z_LOWER_CHAR) {\n      buffer = this.ensureBuffer(bufferLength + 4);\n\n      for (i = 0; i < 4; ++i) {\n        buffer[bufferLength + i] = 0;\n      }\n\n      this.bufferLength += 4;\n    } else {\n      var input = this.input;\n      input[0] = c;\n\n      for (i = 1; i < 5; ++i) {\n        c = str.getByte();\n\n        while ((0, _util.isSpace)(c)) {\n          c = str.getByte();\n        }\n\n        input[i] = c;\n\n        if (c === EOF || c === TILDA_CHAR) {\n          break;\n        }\n      }\n\n      buffer = this.ensureBuffer(bufferLength + i - 1);\n      this.bufferLength += i - 1;\n\n      if (i < 5) {\n        for (; i < 5; ++i) {\n          input[i] = 0x21 + 84;\n        }\n\n        this.eof = true;\n      }\n\n      var t = 0;\n\n      for (i = 0; i < 5; ++i) {\n        t = t * 85 + (input[i] - 0x21);\n      }\n\n      for (i = 3; i >= 0; --i) {\n        buffer[bufferLength + i] = t & 0xFF;\n        t >>= 8;\n      }\n    }\n  };\n\n  return Ascii85Stream;\n}();\n\nexports.Ascii85Stream = Ascii85Stream;\n\nvar AsciiHexStream = function AsciiHexStreamClosure() {\n  function AsciiHexStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    this.firstDigit = -1;\n\n    if (maybeLength) {\n      maybeLength = 0.5 * maybeLength;\n    }\n\n    DecodeStream.call(this, maybeLength);\n  }\n\n  AsciiHexStream.prototype = Object.create(DecodeStream.prototype);\n\n  AsciiHexStream.prototype.readBlock = function AsciiHexStream_readBlock() {\n    var UPSTREAM_BLOCK_SIZE = 8000;\n    var bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n\n    if (!bytes.length) {\n      this.eof = true;\n      return;\n    }\n\n    var maxDecodeLength = bytes.length + 1 >> 1;\n    var buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n    var bufferLength = this.bufferLength;\n    var firstDigit = this.firstDigit;\n\n    for (var i = 0, ii = bytes.length; i < ii; i++) {\n      var ch = bytes[i],\n          digit;\n\n      if (ch >= 0x30 && ch <= 0x39) {\n        digit = ch & 0x0F;\n      } else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {\n        digit = (ch & 0x0F) + 9;\n      } else if (ch === 0x3E) {\n        this.eof = true;\n        break;\n      } else {\n        continue;\n      }\n\n      if (firstDigit < 0) {\n        firstDigit = digit;\n      } else {\n        buffer[bufferLength++] = firstDigit << 4 | digit;\n        firstDigit = -1;\n      }\n    }\n\n    if (firstDigit >= 0 && this.eof) {\n      buffer[bufferLength++] = firstDigit << 4;\n      firstDigit = -1;\n    }\n\n    this.firstDigit = firstDigit;\n    this.bufferLength = bufferLength;\n  };\n\n  return AsciiHexStream;\n}();\n\nexports.AsciiHexStream = AsciiHexStream;\n\nvar RunLengthStream = function RunLengthStreamClosure() {\n  function RunLengthStream(str, maybeLength) {\n    this.str = str;\n    this.dict = str.dict;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  RunLengthStream.prototype = Object.create(DecodeStream.prototype);\n\n  RunLengthStream.prototype.readBlock = function RunLengthStream_readBlock() {\n    var repeatHeader = this.str.getBytes(2);\n\n    if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n      this.eof = true;\n      return;\n    }\n\n    var buffer;\n    var bufferLength = this.bufferLength;\n    var n = repeatHeader[0];\n\n    if (n < 128) {\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n      buffer[bufferLength++] = repeatHeader[1];\n\n      if (n > 0) {\n        var source = this.str.getBytes(n);\n        buffer.set(source, bufferLength);\n        bufferLength += n;\n      }\n    } else {\n      n = 257 - n;\n      var b = repeatHeader[1];\n      buffer = this.ensureBuffer(bufferLength + n + 1);\n\n      for (var i = 0; i < n; i++) {\n        buffer[bufferLength++] = b;\n      }\n    }\n\n    this.bufferLength = bufferLength;\n  };\n\n  return RunLengthStream;\n}();\n\nexports.RunLengthStream = RunLengthStream;\n\nvar LZWStream = function LZWStreamClosure() {\n  function LZWStream(str, maybeLength, earlyChange) {\n    this.str = str;\n    this.dict = str.dict;\n    this.cachedData = 0;\n    this.bitsCached = 0;\n    var maxLzwDictionarySize = 4096;\n    var lzwState = {\n      earlyChange: earlyChange,\n      codeLength: 9,\n      nextCode: 258,\n      dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n      dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n      dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n      currentSequence: new Uint8Array(maxLzwDictionarySize),\n      currentSequenceLength: 0\n    };\n\n    for (var i = 0; i < 256; ++i) {\n      lzwState.dictionaryValues[i] = i;\n      lzwState.dictionaryLengths[i] = 1;\n    }\n\n    this.lzwState = lzwState;\n    DecodeStream.call(this, maybeLength);\n  }\n\n  LZWStream.prototype = Object.create(DecodeStream.prototype);\n\n  LZWStream.prototype.readBits = function LZWStream_readBits(n) {\n    var bitsCached = this.bitsCached;\n    var cachedData = this.cachedData;\n\n    while (bitsCached < n) {\n      var c = this.str.getByte();\n\n      if (c === -1) {\n        this.eof = true;\n        return null;\n      }\n\n      cachedData = cachedData << 8 | c;\n      bitsCached += 8;\n    }\n\n    this.bitsCached = bitsCached -= n;\n    this.cachedData = cachedData;\n    this.lastCode = null;\n    return cachedData >>> bitsCached & (1 << n) - 1;\n  };\n\n  LZWStream.prototype.readBlock = function LZWStream_readBlock() {\n    var blockSize = 512;\n    var estimatedDecodedSize = blockSize * 2,\n        decodedSizeDelta = blockSize;\n    var i, j, q;\n    var lzwState = this.lzwState;\n\n    if (!lzwState) {\n      return;\n    }\n\n    var earlyChange = lzwState.earlyChange;\n    var nextCode = lzwState.nextCode;\n    var dictionaryValues = lzwState.dictionaryValues;\n    var dictionaryLengths = lzwState.dictionaryLengths;\n    var dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n    var codeLength = lzwState.codeLength;\n    var prevCode = lzwState.prevCode;\n    var currentSequence = lzwState.currentSequence;\n    var currentSequenceLength = lzwState.currentSequenceLength;\n    var decodedLength = 0;\n    var currentBufferLength = this.bufferLength;\n    var buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n    for (i = 0; i < blockSize; i++) {\n      var code = this.readBits(codeLength);\n      var hasPrev = currentSequenceLength > 0;\n\n      if (code < 256) {\n        currentSequence[0] = code;\n        currentSequenceLength = 1;\n      } else if (code >= 258) {\n        if (code < nextCode) {\n          currentSequenceLength = dictionaryLengths[code];\n\n          for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n            currentSequence[j] = dictionaryValues[q];\n            q = dictionaryPrevCodes[q];\n          }\n        } else {\n          currentSequence[currentSequenceLength++] = currentSequence[0];\n        }\n      } else if (code === 256) {\n        codeLength = 9;\n        nextCode = 258;\n        currentSequenceLength = 0;\n        continue;\n      } else {\n        this.eof = true;\n        delete this.lzwState;\n        break;\n      }\n\n      if (hasPrev) {\n        dictionaryPrevCodes[nextCode] = prevCode;\n        dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n        dictionaryValues[nextCode] = currentSequence[0];\n        nextCode++;\n        codeLength = nextCode + earlyChange & nextCode + earlyChange - 1 ? codeLength : Math.min(Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1, 12) | 0;\n      }\n\n      prevCode = code;\n      decodedLength += currentSequenceLength;\n\n      if (estimatedDecodedSize < decodedLength) {\n        do {\n          estimatedDecodedSize += decodedSizeDelta;\n        } while (estimatedDecodedSize < decodedLength);\n\n        buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n      }\n\n      for (j = 0; j < currentSequenceLength; j++) {\n        buffer[currentBufferLength++] = currentSequence[j];\n      }\n    }\n\n    lzwState.nextCode = nextCode;\n    lzwState.codeLength = codeLength;\n    lzwState.prevCode = prevCode;\n    lzwState.currentSequenceLength = currentSequenceLength;\n    this.bufferLength = currentBufferLength;\n  };\n\n  return LZWStream;\n}();\n\nexports.LZWStream = LZWStream;\n\nvar NullStream = function NullStreamClosure() {\n  function NullStream() {\n    Stream.call(this, new Uint8Array(0));\n  }\n\n  NullStream.prototype = Stream.prototype;\n  return NullStream;\n}();\n\nexports.NullStream = NullStream;\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CCITTFaxStream = void 0;\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ccitt = __w_pdfjs_require__(159);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar CCITTFaxStream = function CCITTFaxStreamClosure() {\n  function CCITTFaxStream(str, maybeLength, params) {\n    this.str = str;\n    this.dict = str.dict;\n\n    if (!(0, _primitives.isDict)(params)) {\n      params = _primitives.Dict.empty;\n    }\n\n    var source = {\n      next: function next() {\n        return str.getByte();\n      }\n    };\n    this.ccittFaxDecoder = new _ccitt.CCITTFaxDecoder(source, {\n      K: params.get('K'),\n      EndOfLine: params.get('EndOfLine'),\n      EncodedByteAlign: params.get('EncodedByteAlign'),\n      Columns: params.get('Columns'),\n      Rows: params.get('Rows'),\n      EndOfBlock: params.get('EndOfBlock'),\n      BlackIs1: params.get('BlackIs1')\n    });\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  CCITTFaxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n\n  CCITTFaxStream.prototype.readBlock = function () {\n    while (!this.eof) {\n      var c = this.ccittFaxDecoder.readNextChar();\n\n      if (c === -1) {\n        this.eof = true;\n        return;\n      }\n\n      this.ensureBuffer(this.bufferLength + 1);\n      this.buffer[this.bufferLength++] = c;\n    }\n  };\n\n  return CCITTFaxStream;\n}();\n\nexports.CCITTFaxStream = CCITTFaxStream;\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CCITTFaxDecoder = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar CCITTFaxDecoder = function CCITTFaxDecoder() {\n  var ccittEOL = -2;\n  var ccittEOF = -1;\n  var twoDimPass = 0;\n  var twoDimHoriz = 1;\n  var twoDimVert0 = 2;\n  var twoDimVertR1 = 3;\n  var twoDimVertL1 = 4;\n  var twoDimVertR2 = 5;\n  var twoDimVertL2 = 6;\n  var twoDimVertR3 = 7;\n  var twoDimVertL3 = 8;\n  var twoDimTable = [[-1, -1], [-1, -1], [7, twoDimVertL3], [7, twoDimVertR3], [6, twoDimVertL2], [6, twoDimVertL2], [6, twoDimVertR2], [6, twoDimVertR2], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [4, twoDimPass], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimHoriz], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertL1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [3, twoDimVertR1], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0], [1, twoDimVert0]];\n  var whiteTable1 = [[-1, -1], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [12, 1984], [12, 2048], [12, 2112], [12, 2176], [12, 2240], [12, 2304], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [12, 2368], [12, 2432], [12, 2496], [12, 2560]];\n  var whiteTable2 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [8, 29], [8, 29], [8, 30], [8, 30], [8, 45], [8, 45], [8, 46], [8, 46], [7, 22], [7, 22], [7, 22], [7, 22], [7, 23], [7, 23], [7, 23], [7, 23], [8, 47], [8, 47], [8, 48], [8, 48], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [6, 13], [7, 20], [7, 20], [7, 20], [7, 20], [8, 33], [8, 33], [8, 34], [8, 34], [8, 35], [8, 35], [8, 36], [8, 36], [8, 37], [8, 37], [8, 38], [8, 38], [7, 19], [7, 19], [7, 19], [7, 19], [8, 31], [8, 31], [8, 32], [8, 32], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 1], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [6, 12], [8, 53], [8, 53], [8, 54], [8, 54], [7, 26], [7, 26], [7, 26], [7, 26], [8, 39], [8, 39], [8, 40], [8, 40], [8, 41], [8, 41], [8, 42], [8, 42], [8, 43], [8, 43], [8, 44], [8, 44], [7, 21], [7, 21], [7, 21], [7, 21], [7, 28], [7, 28], [7, 28], [7, 28], [8, 61], [8, 61], [8, 62], [8, 62], [8, 63], [8, 63], [8, 0], [8, 0], [8, 320], [8, 320], [8, 384], [8, 384], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 10], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [5, 11], [7, 27], [7, 27], [7, 27], [7, 27], [8, 59], [8, 59], [8, 60], [8, 60], [9, 1472], [9, 1536], [9, 1600], [9, 1728], [7, 18], [7, 18], [7, 18], [7, 18], [7, 24], [7, 24], [7, 24], [7, 24], [8, 49], [8, 49], [8, 50], [8, 50], [8, 51], [8, 51], [8, 52], [8, 52], [7, 25], [7, 25], [7, 25], [7, 25], [8, 55], [8, 55], [8, 56], [8, 56], [8, 57], [8, 57], [8, 58], [8, 58], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 192], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [6, 1664], [8, 448], [8, 448], [8, 512], [8, 512], [9, 704], [9, 768], [8, 640], [8, 640], [8, 576], [8, 576], [9, 832], [9, 896], [9, 960], [9, 1024], [9, 1088], [9, 1152], [9, 1216], [9, 1280], [9, 1344], [9, 1408], [7, 256], [7, 256], [7, 256], [7, 256], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 2], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [4, 3], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 128], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 8], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [5, 9], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 16], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [6, 17], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 4], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [4, 5], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 14], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [6, 15], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [5, 64], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 6], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7], [4, 7]];\n  var blackTable1 = [[-1, -1], [-1, -1], [12, ccittEOL], [12, ccittEOL], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [-1, -1], [11, 1792], [11, 1792], [11, 1792], [11, 1792], [12, 1984], [12, 1984], [12, 2048], [12, 2048], [12, 2112], [12, 2112], [12, 2176], [12, 2176], [12, 2240], [12, 2240], [12, 2304], [12, 2304], [11, 1856], [11, 1856], [11, 1856], [11, 1856], [11, 1920], [11, 1920], [11, 1920], [11, 1920], [12, 2368], [12, 2368], [12, 2432], [12, 2432], [12, 2496], [12, 2496], [12, 2560], [12, 2560], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [10, 18], [12, 52], [12, 52], [13, 640], [13, 704], [13, 768], [13, 832], [12, 55], [12, 55], [12, 56], [12, 56], [13, 1280], [13, 1344], [13, 1408], [13, 1472], [12, 59], [12, 59], [12, 60], [12, 60], [13, 1536], [13, 1600], [11, 24], [11, 24], [11, 24], [11, 24], [11, 25], [11, 25], [11, 25], [11, 25], [13, 1664], [13, 1728], [12, 320], [12, 320], [12, 384], [12, 384], [12, 448], [12, 448], [13, 512], [13, 576], [12, 53], [12, 53], [12, 54], [12, 54], [13, 896], [13, 960], [13, 1024], [13, 1088], [13, 1152], [13, 1216], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64], [10, 64]];\n  var blackTable2 = [[8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [8, 13], [11, 23], [11, 23], [12, 50], [12, 51], [12, 44], [12, 45], [12, 46], [12, 47], [12, 57], [12, 58], [12, 61], [12, 256], [10, 16], [10, 16], [10, 16], [10, 16], [10, 17], [10, 17], [10, 17], [10, 17], [12, 48], [12, 49], [12, 62], [12, 63], [12, 30], [12, 31], [12, 32], [12, 33], [12, 40], [12, 41], [11, 22], [11, 22], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [8, 14], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 10], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [7, 11], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [9, 15], [12, 128], [12, 192], [12, 26], [12, 27], [12, 28], [12, 29], [11, 19], [11, 19], [11, 20], [11, 20], [12, 34], [12, 35], [12, 36], [12, 37], [12, 38], [12, 39], [11, 21], [11, 21], [12, 42], [12, 43], [10, 0], [10, 0], [10, 0], [10, 0], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12], [7, 12]];\n  var blackTable3 = [[-1, -1], [-1, -1], [-1, -1], [-1, -1], [6, 9], [6, 8], [5, 7], [5, 7], [4, 6], [4, 6], [4, 6], [4, 6], [4, 5], [4, 5], [4, 5], [4, 5], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 1], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [3, 4], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 3], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2], [2, 2]];\n\n  function CCITTFaxDecoder(source) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    if (!source || typeof source.next !== 'function') {\n      throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n    }\n\n    this.source = source;\n    this.eof = false;\n    this.encoding = options['K'] || 0;\n    this.eoline = options['EndOfLine'] || false;\n    this.byteAlign = options['EncodedByteAlign'] || false;\n    this.columns = options['Columns'] || 1728;\n    this.rows = options['Rows'] || 0;\n    var eoblock = options['EndOfBlock'];\n\n    if (eoblock === null || eoblock === undefined) {\n      eoblock = true;\n    }\n\n    this.eoblock = eoblock;\n    this.black = options['BlackIs1'] || false;\n    this.codingLine = new Uint32Array(this.columns + 1);\n    this.refLine = new Uint32Array(this.columns + 2);\n    this.codingLine[0] = this.columns;\n    this.codingPos = 0;\n    this.row = 0;\n    this.nextLine2D = this.encoding < 0;\n    this.inputBits = 0;\n    this.inputBuf = 0;\n    this.outputBits = 0;\n    this.rowsDone = false;\n    var code1;\n\n    while ((code1 = this._lookBits(12)) === 0) {\n      this._eatBits(1);\n    }\n\n    if (code1 === 1) {\n      this._eatBits(12);\n    }\n\n    if (this.encoding > 0) {\n      this.nextLine2D = !this._lookBits(1);\n\n      this._eatBits(1);\n    }\n  }\n\n  CCITTFaxDecoder.prototype = {\n    readNextChar: function readNextChar() {\n      if (this.eof) {\n        return -1;\n      }\n\n      var refLine = this.refLine;\n      var codingLine = this.codingLine;\n      var columns = this.columns;\n      var refPos, blackPixels, bits, i;\n\n      if (this.outputBits === 0) {\n        if (this.rowsDone) {\n          this.eof = true;\n        }\n\n        if (this.eof) {\n          return -1;\n        }\n\n        this.err = false;\n        var code1, code2, code3;\n\n        if (this.nextLine2D) {\n          for (i = 0; codingLine[i] < columns; ++i) {\n            refLine[i] = codingLine[i];\n          }\n\n          refLine[i++] = columns;\n          refLine[i] = columns;\n          codingLine[0] = 0;\n          this.codingPos = 0;\n          refPos = 0;\n          blackPixels = 0;\n\n          while (codingLine[this.codingPos] < columns) {\n            code1 = this._getTwoDimCode();\n\n            switch (code1) {\n              case twoDimPass:\n                this._addPixels(refLine[refPos + 1], blackPixels);\n\n                if (refLine[refPos + 1] < columns) {\n                  refPos += 2;\n                }\n\n                break;\n\n              case twoDimHoriz:\n                code1 = code2 = 0;\n\n                if (blackPixels) {\n                  do {\n                    code1 += code3 = this._getBlackCode();\n                  } while (code3 >= 64);\n\n                  do {\n                    code2 += code3 = this._getWhiteCode();\n                  } while (code3 >= 64);\n                } else {\n                  do {\n                    code1 += code3 = this._getWhiteCode();\n                  } while (code3 >= 64);\n\n                  do {\n                    code2 += code3 = this._getBlackCode();\n                  } while (code3 >= 64);\n                }\n\n                this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n                if (codingLine[this.codingPos] < columns) {\n                  this._addPixels(codingLine[this.codingPos] + code2, blackPixels ^ 1);\n                }\n\n                while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                  refPos += 2;\n                }\n\n                break;\n\n              case twoDimVertR3:\n                this._addPixels(refLine[refPos] + 3, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertR2:\n                this._addPixels(refLine[refPos] + 2, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertR1:\n                this._addPixels(refLine[refPos] + 1, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVert0:\n                this._addPixels(refLine[refPos], blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  ++refPos;\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL3:\n                this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL2:\n                this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case twoDimVertL1:\n                this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n\n                blackPixels ^= 1;\n\n                if (codingLine[this.codingPos] < columns) {\n                  if (refPos > 0) {\n                    --refPos;\n                  } else {\n                    ++refPos;\n                  }\n\n                  while (refLine[refPos] <= codingLine[this.codingPos] && refLine[refPos] < columns) {\n                    refPos += 2;\n                  }\n                }\n\n                break;\n\n              case ccittEOF:\n                this._addPixels(columns, 0);\n\n                this.eof = true;\n                break;\n\n              default:\n                (0, _util.info)('bad 2d code');\n\n                this._addPixels(columns, 0);\n\n                this.err = true;\n            }\n          }\n        } else {\n          codingLine[0] = 0;\n          this.codingPos = 0;\n          blackPixels = 0;\n\n          while (codingLine[this.codingPos] < columns) {\n            code1 = 0;\n\n            if (blackPixels) {\n              do {\n                code1 += code3 = this._getBlackCode();\n              } while (code3 >= 64);\n            } else {\n              do {\n                code1 += code3 = this._getWhiteCode();\n              } while (code3 >= 64);\n            }\n\n            this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n\n            blackPixels ^= 1;\n          }\n        }\n\n        var gotEOL = false;\n\n        if (this.byteAlign) {\n          this.inputBits &= ~7;\n        }\n\n        if (!this.eoblock && this.row === this.rows - 1) {\n          this.rowsDone = true;\n        } else {\n          code1 = this._lookBits(12);\n\n          if (this.eoline) {\n            while (code1 !== ccittEOF && code1 !== 1) {\n              this._eatBits(1);\n\n              code1 = this._lookBits(12);\n            }\n          } else {\n            while (code1 === 0) {\n              this._eatBits(1);\n\n              code1 = this._lookBits(12);\n            }\n          }\n\n          if (code1 === 1) {\n            this._eatBits(12);\n\n            gotEOL = true;\n          } else if (code1 === ccittEOF) {\n            this.eof = true;\n          }\n        }\n\n        if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n          this.nextLine2D = !this._lookBits(1);\n\n          this._eatBits(1);\n        }\n\n        if (this.eoblock && gotEOL && this.byteAlign) {\n          code1 = this._lookBits(12);\n\n          if (code1 === 1) {\n            this._eatBits(12);\n\n            if (this.encoding > 0) {\n              this._lookBits(1);\n\n              this._eatBits(1);\n            }\n\n            if (this.encoding >= 0) {\n              for (i = 0; i < 4; ++i) {\n                code1 = this._lookBits(12);\n\n                if (code1 !== 1) {\n                  (0, _util.info)('bad rtc code: ' + code1);\n                }\n\n                this._eatBits(12);\n\n                if (this.encoding > 0) {\n                  this._lookBits(1);\n\n                  this._eatBits(1);\n                }\n              }\n            }\n\n            this.eof = true;\n          }\n        } else if (this.err && this.eoline) {\n          while (true) {\n            code1 = this._lookBits(13);\n\n            if (code1 === ccittEOF) {\n              this.eof = true;\n              return -1;\n            }\n\n            if (code1 >> 1 === 1) {\n              break;\n            }\n\n            this._eatBits(1);\n          }\n\n          this._eatBits(12);\n\n          if (this.encoding > 0) {\n            this._eatBits(1);\n\n            this.nextLine2D = !(code1 & 1);\n          }\n        }\n\n        if (codingLine[0] > 0) {\n          this.outputBits = codingLine[this.codingPos = 0];\n        } else {\n          this.outputBits = codingLine[this.codingPos = 1];\n        }\n\n        this.row++;\n      }\n\n      var c;\n\n      if (this.outputBits >= 8) {\n        c = this.codingPos & 1 ? 0 : 0xFF;\n        this.outputBits -= 8;\n\n        if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n          this.codingPos++;\n          this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n        }\n      } else {\n        bits = 8;\n        c = 0;\n\n        do {\n          if (this.outputBits > bits) {\n            c <<= bits;\n\n            if (!(this.codingPos & 1)) {\n              c |= 0xFF >> 8 - bits;\n            }\n\n            this.outputBits -= bits;\n            bits = 0;\n          } else {\n            c <<= this.outputBits;\n\n            if (!(this.codingPos & 1)) {\n              c |= 0xFF >> 8 - this.outputBits;\n            }\n\n            bits -= this.outputBits;\n            this.outputBits = 0;\n\n            if (codingLine[this.codingPos] < columns) {\n              this.codingPos++;\n              this.outputBits = codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n            } else if (bits > 0) {\n              c <<= bits;\n              bits = 0;\n            }\n          }\n        } while (bits);\n      }\n\n      if (this.black) {\n        c ^= 0xFF;\n      }\n\n      return c;\n    },\n    _addPixels: function _addPixels(a1, blackPixels) {\n      var codingLine = this.codingLine;\n      var codingPos = this.codingPos;\n\n      if (a1 > codingLine[codingPos]) {\n        if (a1 > this.columns) {\n          (0, _util.info)('row is wrong length');\n          this.err = true;\n          a1 = this.columns;\n        }\n\n        if (codingPos & 1 ^ blackPixels) {\n          ++codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      }\n\n      this.codingPos = codingPos;\n    },\n    _addPixelsNeg: function _addPixelsNeg(a1, blackPixels) {\n      var codingLine = this.codingLine;\n      var codingPos = this.codingPos;\n\n      if (a1 > codingLine[codingPos]) {\n        if (a1 > this.columns) {\n          (0, _util.info)('row is wrong length');\n          this.err = true;\n          a1 = this.columns;\n        }\n\n        if (codingPos & 1 ^ blackPixels) {\n          ++codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      } else if (a1 < codingLine[codingPos]) {\n        if (a1 < 0) {\n          (0, _util.info)('invalid code');\n          this.err = true;\n          a1 = 0;\n        }\n\n        while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n          --codingPos;\n        }\n\n        codingLine[codingPos] = a1;\n      }\n\n      this.codingPos = codingPos;\n    },\n    _findTableCode: function _findTableCode(start, end, table, limit) {\n      var limitValue = limit || 0;\n\n      for (var i = start; i <= end; ++i) {\n        var code = this._lookBits(i);\n\n        if (code === ccittEOF) {\n          return [true, 1, false];\n        }\n\n        if (i < end) {\n          code <<= end - i;\n        }\n\n        if (!limitValue || code >= limitValue) {\n          var p = table[code - limitValue];\n\n          if (p[0] === i) {\n            this._eatBits(i);\n\n            return [true, p[1], true];\n          }\n        }\n      }\n\n      return [false, 0, false];\n    },\n    _getTwoDimCode: function _getTwoDimCode() {\n      var code = 0;\n      var p;\n\n      if (this.eoblock) {\n        code = this._lookBits(7);\n        p = twoDimTable[code];\n\n        if (p && p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(1, 7, twoDimTable);\n\n        if (result[0] && result[2]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('Bad two dim code');\n      return ccittEOF;\n    },\n    _getWhiteCode: function _getWhiteCode() {\n      var code = 0;\n      var p;\n\n      if (this.eoblock) {\n        code = this._lookBits(12);\n\n        if (code === ccittEOF) {\n          return 1;\n        }\n\n        if (code >> 5 === 0) {\n          p = whiteTable1[code];\n        } else {\n          p = whiteTable2[code >> 3];\n        }\n\n        if (p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(1, 9, whiteTable2);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(11, 12, whiteTable1);\n\n        if (result[0]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('bad white code');\n\n      this._eatBits(1);\n\n      return 1;\n    },\n    _getBlackCode: function _getBlackCode() {\n      var code, p;\n\n      if (this.eoblock) {\n        code = this._lookBits(13);\n\n        if (code === ccittEOF) {\n          return 1;\n        }\n\n        if (code >> 7 === 0) {\n          p = blackTable1[code];\n        } else if (code >> 9 === 0 && code >> 7 !== 0) {\n          p = blackTable2[(code >> 1) - 64];\n        } else {\n          p = blackTable3[code >> 7];\n        }\n\n        if (p[0] > 0) {\n          this._eatBits(p[0]);\n\n          return p[1];\n        }\n      } else {\n        var result = this._findTableCode(2, 6, blackTable3);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(7, 12, blackTable2, 64);\n\n        if (result[0]) {\n          return result[1];\n        }\n\n        result = this._findTableCode(10, 13, blackTable1);\n\n        if (result[0]) {\n          return result[1];\n        }\n      }\n\n      (0, _util.info)('bad black code');\n\n      this._eatBits(1);\n\n      return 1;\n    },\n    _lookBits: function _lookBits(n) {\n      var c;\n\n      while (this.inputBits < n) {\n        if ((c = this.source.next()) === -1) {\n          if (this.inputBits === 0) {\n            return ccittEOF;\n          }\n\n          return this.inputBuf << n - this.inputBits & 0xFFFF >> 16 - n;\n        }\n\n        this.inputBuf = this.inputBuf << 8 | c;\n        this.inputBits += 8;\n      }\n\n      return this.inputBuf >> this.inputBits - n & 0xFFFF >> 16 - n;\n    },\n    _eatBits: function _eatBits(n) {\n      if ((this.inputBits -= n) < 0) {\n        this.inputBits = 0;\n      }\n    }\n  };\n  return CCITTFaxDecoder;\n}();\n\nexports.CCITTFaxDecoder = CCITTFaxDecoder;\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Jbig2Stream = void 0;\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jbig = __w_pdfjs_require__(161);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar Jbig2Stream = function Jbig2StreamClosure() {\n  function Jbig2Stream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  Jbig2Stream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(Jbig2Stream.prototype, 'bytes', {\n    get: function get() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  Jbig2Stream.prototype.ensureBuffer = function (requested) {};\n\n  Jbig2Stream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jbig2Image = new _jbig.Jbig2Image();\n    var chunks = [];\n\n    if ((0, _primitives.isDict)(this.params)) {\n      var globalsStream = this.params.get('JBIG2Globals');\n\n      if ((0, _primitives.isStream)(globalsStream)) {\n        var globals = globalsStream.getBytes();\n        chunks.push({\n          data: globals,\n          start: 0,\n          end: globals.length\n        });\n      }\n    }\n\n    chunks.push({\n      data: this.bytes,\n      start: 0,\n      end: this.bytes.length\n    });\n    var data = jbig2Image.parseChunks(chunks);\n    var dataLength = data.length;\n\n    for (var i = 0; i < dataLength; i++) {\n      data[i] ^= 0xFF;\n    }\n\n    this.buffer = data;\n    this.bufferLength = dataLength;\n    this.eof = true;\n  };\n\n  return Jbig2Stream;\n}();\n\nexports.Jbig2Stream = Jbig2Stream;\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Jbig2Image = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(162);\n\nvar _ccitt = __w_pdfjs_require__(159);\n\nvar Jbig2Error = function Jbig2ErrorClosure() {\n  function Jbig2Error(msg) {\n    this.message = 'JBIG2 error: ' + msg;\n  }\n\n  Jbig2Error.prototype = new Error();\n  Jbig2Error.prototype.name = 'Jbig2Error';\n  Jbig2Error.constructor = Jbig2Error;\n  return Jbig2Error;\n}();\n\nvar Jbig2Image = function Jbig2ImageClosure() {\n  function ContextCache() {}\n\n  ContextCache.prototype = {\n    getContexts: function getContexts(id) {\n      if (id in this) {\n        return this[id];\n      }\n\n      return this[id] = new Int8Array(1 << 16);\n    }\n  };\n\n  function DecodingContext(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n  }\n\n  DecodingContext.prototype = {\n    get decoder() {\n      var decoder = new _arithmetic_decoder.ArithmeticDecoder(this.data, this.start, this.end);\n      return (0, _util.shadow)(this, 'decoder', decoder);\n    },\n\n    get contextCache() {\n      var cache = new ContextCache();\n      return (0, _util.shadow)(this, 'contextCache', cache);\n    }\n\n  };\n\n  function decodeInteger(contextCache, procedure, decoder) {\n    var contexts = contextCache.getContexts(procedure);\n    var prev = 1;\n\n    function readBits(length) {\n      var v = 0;\n\n      for (var i = 0; i < length; i++) {\n        var bit = decoder.readBit(contexts, prev);\n        prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256;\n        v = v << 1 | bit;\n      }\n\n      return v >>> 0;\n    }\n\n    var sign = readBits(1);\n    var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2);\n    return sign === 0 ? value : value > 0 ? -value : null;\n  }\n\n  function decodeIAID(contextCache, decoder, codeLength) {\n    var contexts = contextCache.getContexts('IAID');\n    var prev = 1;\n\n    for (var i = 0; i < codeLength; i++) {\n      var bit = decoder.readBit(contexts, prev);\n      prev = prev << 1 | bit;\n    }\n\n    if (codeLength < 31) {\n      return prev & (1 << codeLength) - 1;\n    }\n\n    return prev & 0x7FFFFFFF;\n  }\n\n  var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'PatternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension'];\n  var CodingTemplates = [[{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: 2,\n    y: -1\n  }, {\n    x: -4,\n    y: 0\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: 2,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: 2,\n    y: -1\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -1,\n    y: -2\n  }, {\n    x: 0,\n    y: -2\n  }, {\n    x: 1,\n    y: -2\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }], [{\n    x: -3,\n    y: -1\n  }, {\n    x: -2,\n    y: -1\n  }, {\n    x: -1,\n    y: -1\n  }, {\n    x: 0,\n    y: -1\n  }, {\n    x: 1,\n    y: -1\n  }, {\n    x: -4,\n    y: 0\n  }, {\n    x: -3,\n    y: 0\n  }, {\n    x: -2,\n    y: 0\n  }, {\n    x: -1,\n    y: 0\n  }]];\n  var RefinementTemplates = [{\n    coding: [{\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }],\n    reference: [{\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }, {\n      x: 0,\n      y: 0\n    }, {\n      x: 1,\n      y: 0\n    }, {\n      x: -1,\n      y: 1\n    }, {\n      x: 0,\n      y: 1\n    }, {\n      x: 1,\n      y: 1\n    }]\n  }, {\n    coding: [{\n      x: -1,\n      y: -1\n    }, {\n      x: 0,\n      y: -1\n    }, {\n      x: 1,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }],\n    reference: [{\n      x: 0,\n      y: -1\n    }, {\n      x: -1,\n      y: 0\n    }, {\n      x: 0,\n      y: 0\n    }, {\n      x: 1,\n      y: 0\n    }, {\n      x: 0,\n      y: 1\n    }, {\n      x: 1,\n      y: 1\n    }]\n  }];\n  var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195];\n  var RefinementReusedContexts = [0x0020, 0x0008];\n\n  function decodeBitmapTemplate0(width, height, decodingContext) {\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GB');\n    var contextLabel,\n        i,\n        j,\n        pixel,\n        row,\n        row1,\n        row2,\n        bitmap = [];\n    var OLD_PIXEL_MASK = 0x7BF7;\n\n    for (i = 0; i < height; i++) {\n      row = bitmap[i] = new Uint8Array(width);\n      row1 = i < 1 ? row : bitmap[i - 1];\n      row2 = i < 2 ? row : bitmap[i - 2];\n      contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4;\n\n      for (j = 0; j < width; j++) {\n        row[j] = pixel = decoder.readBit(contexts, contextLabel);\n        contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) {\n    if (mmr) {\n      var input = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n      return decodeMMRBitmap(input, width, height, false);\n    }\n\n    if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) {\n      return decodeBitmapTemplate0(width, height, decodingContext);\n    }\n\n    var useskip = !!skip;\n    var template = CodingTemplates[templateIndex].concat(at);\n    template.sort(function (a, b) {\n      return a.y - b.y || a.x - b.x;\n    });\n    var templateLength = template.length;\n    var templateX = new Int8Array(templateLength);\n    var templateY = new Int8Array(templateLength);\n    var changingTemplateEntries = [];\n    var reuseMask = 0,\n        minX = 0,\n        maxX = 0,\n        minY = 0;\n    var c, k;\n\n    for (k = 0; k < templateLength; k++) {\n      templateX[k] = template[k].x;\n      templateY[k] = template[k].y;\n      minX = Math.min(minX, template[k].x);\n      maxX = Math.max(maxX, template[k].x);\n      minY = Math.min(minY, template[k].y);\n\n      if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) {\n        reuseMask |= 1 << templateLength - 1 - k;\n      } else {\n        changingTemplateEntries.push(k);\n      }\n    }\n\n    var changingEntriesLength = changingTemplateEntries.length;\n    var changingTemplateX = new Int8Array(changingEntriesLength);\n    var changingTemplateY = new Int8Array(changingEntriesLength);\n    var changingTemplateBit = new Uint16Array(changingEntriesLength);\n\n    for (c = 0; c < changingEntriesLength; c++) {\n      k = changingTemplateEntries[c];\n      changingTemplateX[c] = template[k].x;\n      changingTemplateY[c] = template[k].y;\n      changingTemplateBit[c] = 1 << templateLength - 1 - k;\n    }\n\n    var sbb_left = -minX;\n    var sbb_top = -minY;\n    var sbb_right = width - maxX;\n    var pseudoPixelContext = ReusedContexts[templateIndex];\n    var row = new Uint8Array(width);\n    var bitmap = [];\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GB');\n    var ltp = 0,\n        j,\n        i0,\n        j0,\n        contextLabel = 0,\n        bit,\n        shift;\n\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n\n        if (ltp) {\n          bitmap.push(row);\n          continue;\n        }\n      }\n\n      row = new Uint8Array(row);\n      bitmap.push(row);\n\n      for (j = 0; j < width; j++) {\n        if (useskip && skip[i][j]) {\n          row[j] = 0;\n          continue;\n        }\n\n        if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n          contextLabel = contextLabel << 1 & reuseMask;\n\n          for (k = 0; k < changingEntriesLength; k++) {\n            i0 = i + changingTemplateY[k];\n            j0 = j + changingTemplateX[k];\n            bit = bitmap[i0][j0];\n\n            if (bit) {\n              bit = changingTemplateBit[k];\n              contextLabel |= bit;\n            }\n          }\n        } else {\n          contextLabel = 0;\n          shift = templateLength - 1;\n\n          for (k = 0; k < templateLength; k++, shift--) {\n            j0 = j + templateX[k];\n\n            if (j0 >= 0 && j0 < width) {\n              i0 = i + templateY[k];\n\n              if (i0 >= 0) {\n                bit = bitmap[i0][j0];\n\n                if (bit) {\n                  contextLabel |= bit << shift;\n                }\n              }\n            }\n          }\n        }\n\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) {\n    var codingTemplate = RefinementTemplates[templateIndex].coding;\n\n    if (templateIndex === 0) {\n      codingTemplate = codingTemplate.concat([at[0]]);\n    }\n\n    var codingTemplateLength = codingTemplate.length;\n    var codingTemplateX = new Int32Array(codingTemplateLength);\n    var codingTemplateY = new Int32Array(codingTemplateLength);\n    var k;\n\n    for (k = 0; k < codingTemplateLength; k++) {\n      codingTemplateX[k] = codingTemplate[k].x;\n      codingTemplateY[k] = codingTemplate[k].y;\n    }\n\n    var referenceTemplate = RefinementTemplates[templateIndex].reference;\n\n    if (templateIndex === 0) {\n      referenceTemplate = referenceTemplate.concat([at[1]]);\n    }\n\n    var referenceTemplateLength = referenceTemplate.length;\n    var referenceTemplateX = new Int32Array(referenceTemplateLength);\n    var referenceTemplateY = new Int32Array(referenceTemplateLength);\n\n    for (k = 0; k < referenceTemplateLength; k++) {\n      referenceTemplateX[k] = referenceTemplate[k].x;\n      referenceTemplateY[k] = referenceTemplate[k].y;\n    }\n\n    var referenceWidth = referenceBitmap[0].length;\n    var referenceHeight = referenceBitmap.length;\n    var pseudoPixelContext = RefinementReusedContexts[templateIndex];\n    var bitmap = [];\n    var decoder = decodingContext.decoder;\n    var contexts = decodingContext.contextCache.getContexts('GR');\n    var ltp = 0;\n\n    for (var i = 0; i < height; i++) {\n      if (prediction) {\n        var sltp = decoder.readBit(contexts, pseudoPixelContext);\n        ltp ^= sltp;\n\n        if (ltp) {\n          throw new Jbig2Error('prediction is not supported');\n        }\n      }\n\n      var row = new Uint8Array(width);\n      bitmap.push(row);\n\n      for (var j = 0; j < width; j++) {\n        var i0, j0;\n        var contextLabel = 0;\n\n        for (k = 0; k < codingTemplateLength; k++) {\n          i0 = i + codingTemplateY[k];\n          j0 = j + codingTemplateX[k];\n\n          if (i0 < 0 || j0 < 0 || j0 >= width) {\n            contextLabel <<= 1;\n          } else {\n            contextLabel = contextLabel << 1 | bitmap[i0][j0];\n          }\n        }\n\n        for (k = 0; k < referenceTemplateLength; k++) {\n          i0 = i + referenceTemplateY[k] - offsetY;\n          j0 = j + referenceTemplateX[k] - offsetX;\n\n          if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n            contextLabel <<= 1;\n          } else {\n            contextLabel = contextLabel << 1 | referenceBitmap[i0][j0];\n          }\n        }\n\n        var pixel = decoder.readBit(contexts, contextLabel);\n        row[j] = pixel;\n      }\n    }\n\n    return bitmap;\n  }\n\n  function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext, huffmanInput) {\n    if (huffman && refinement) {\n      throw new Jbig2Error('symbol refinement with Huffman is not supported');\n    }\n\n    var newSymbols = [];\n    var currentHeight = 0;\n    var symbolCodeLength = (0, _util.log2)(symbols.length + numberOfNewSymbols);\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n    var tableB1, symbolWidths;\n\n    if (huffman) {\n      tableB1 = getStandardTable(1);\n      symbolWidths = [];\n      symbolCodeLength = Math.max(symbolCodeLength, 1);\n    }\n\n    while (newSymbols.length < numberOfNewSymbols) {\n      var deltaHeight = huffman ? huffmanTables.tableDeltaHeight.decode(huffmanInput) : decodeInteger(contextCache, 'IADH', decoder);\n      currentHeight += deltaHeight;\n      var currentWidth = 0,\n          totalWidth = 0;\n      var firstSymbol = huffman ? symbolWidths.length : 0;\n\n      while (true) {\n        var deltaWidth = huffman ? huffmanTables.tableDeltaWidth.decode(huffmanInput) : decodeInteger(contextCache, 'IADW', decoder);\n\n        if (deltaWidth === null) {\n          break;\n        }\n\n        currentWidth += deltaWidth;\n        totalWidth += currentWidth;\n        var bitmap;\n\n        if (refinement) {\n          var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder);\n\n          if (numberOfInstances > 1) {\n            bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, 0, huffmanInput);\n          } else {\n            var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n            var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n            var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n            var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length];\n            bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext);\n          }\n\n          newSymbols.push(bitmap);\n        } else if (huffman) {\n          symbolWidths.push(currentWidth);\n        } else {\n          bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext);\n          newSymbols.push(bitmap);\n        }\n      }\n\n      if (huffman && !refinement) {\n        var bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n        huffmanInput.byteAlign();\n        var collectiveBitmap = void 0;\n\n        if (bitmapSize === 0) {\n          collectiveBitmap = readUncompressedBitmap(huffmanInput, totalWidth, currentHeight);\n        } else {\n          var originalEnd = huffmanInput.end;\n          var bitmapEnd = huffmanInput.position + bitmapSize;\n          huffmanInput.end = bitmapEnd;\n          collectiveBitmap = decodeMMRBitmap(huffmanInput, totalWidth, currentHeight, false);\n          huffmanInput.end = originalEnd;\n          huffmanInput.position = bitmapEnd;\n        }\n\n        var numberOfSymbolsDecoded = symbolWidths.length;\n\n        if (firstSymbol === numberOfSymbolsDecoded - 1) {\n          newSymbols.push(collectiveBitmap);\n        } else {\n          var _i = void 0,\n              y = void 0,\n              xMin = 0,\n              xMax = void 0,\n              bitmapWidth = void 0,\n              symbolBitmap = void 0;\n\n          for (_i = firstSymbol; _i < numberOfSymbolsDecoded; _i++) {\n            bitmapWidth = symbolWidths[_i];\n            xMax = xMin + bitmapWidth;\n            symbolBitmap = [];\n\n            for (y = 0; y < currentHeight; y++) {\n              symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n            }\n\n            newSymbols.push(symbolBitmap);\n            xMin = xMax;\n          }\n        }\n      }\n    }\n\n    var exportedSymbols = [];\n    var flags = [],\n        currentFlag = false;\n    var totalSymbolsLength = symbols.length + numberOfNewSymbols;\n\n    while (flags.length < totalSymbolsLength) {\n      var runLength = huffman ? tableB1.decode(huffmanInput) : decodeInteger(contextCache, 'IAEX', decoder);\n\n      while (runLength--) {\n        flags.push(currentFlag);\n      }\n\n      currentFlag = !currentFlag;\n    }\n\n    for (var i = 0, ii = symbols.length; i < ii; i++) {\n      if (flags[i]) {\n        exportedSymbols.push(symbols[i]);\n      }\n    }\n\n    for (var j = 0; j < numberOfNewSymbols; i++, j++) {\n      if (flags[i]) {\n        exportedSymbols.push(newSymbols[j]);\n      }\n    }\n\n    return exportedSymbols;\n  }\n\n  function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext, logStripSize, huffmanInput) {\n    if (huffman && refinement) {\n      throw new Jbig2Error('refinement with Huffman is not supported');\n    }\n\n    var bitmap = [];\n    var i, row;\n\n    for (i = 0; i < height; i++) {\n      row = new Uint8Array(width);\n\n      if (defaultPixelValue) {\n        for (var j = 0; j < width; j++) {\n          row[j] = defaultPixelValue;\n        }\n      }\n\n      bitmap.push(row);\n    }\n\n    var decoder = decodingContext.decoder;\n    var contextCache = decodingContext.contextCache;\n    var stripT = huffman ? -huffmanTables.tableDeltaT.decode(huffmanInput) : -decodeInteger(contextCache, 'IADT', decoder);\n    var firstS = 0;\n    i = 0;\n\n    while (i < numberOfSymbolInstances) {\n      var deltaT = huffman ? huffmanTables.tableDeltaT.decode(huffmanInput) : decodeInteger(contextCache, 'IADT', decoder);\n      stripT += deltaT;\n      var deltaFirstS = huffman ? huffmanTables.tableFirstS.decode(huffmanInput) : decodeInteger(contextCache, 'IAFS', decoder);\n      firstS += deltaFirstS;\n      var currentS = firstS;\n\n      do {\n        var currentT = 0;\n\n        if (stripSize > 1) {\n          currentT = huffman ? huffmanInput.readBits(logStripSize) : decodeInteger(contextCache, 'IAIT', decoder);\n        }\n\n        var t = stripSize * stripT + currentT;\n        var symbolId = huffman ? huffmanTables.symbolIDTable.decode(huffmanInput) : decodeIAID(contextCache, decoder, symbolCodeLength);\n        var applyRefinement = refinement && (huffman ? huffmanInput.readBit() : decodeInteger(contextCache, 'IARI', decoder));\n        var symbolBitmap = inputSymbols[symbolId];\n        var symbolWidth = symbolBitmap[0].length;\n        var symbolHeight = symbolBitmap.length;\n\n        if (applyRefinement) {\n          var rdw = decodeInteger(contextCache, 'IARDW', decoder);\n          var rdh = decodeInteger(contextCache, 'IARDH', decoder);\n          var rdx = decodeInteger(contextCache, 'IARDX', decoder);\n          var rdy = decodeInteger(contextCache, 'IARDY', decoder);\n          symbolWidth += rdw;\n          symbolHeight += rdh;\n          symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext);\n        }\n\n        var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n        var offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n        var s2, t2, symbolRow;\n\n        if (transposed) {\n          for (s2 = 0; s2 < symbolHeight; s2++) {\n            row = bitmap[offsetS + s2];\n\n            if (!row) {\n              continue;\n            }\n\n            symbolRow = symbolBitmap[s2];\n            var maxWidth = Math.min(width - offsetT, symbolWidth);\n\n            switch (combinationOperator) {\n              case 0:\n                for (t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] |= symbolRow[t2];\n                }\n\n                break;\n\n              case 2:\n                for (t2 = 0; t2 < maxWidth; t2++) {\n                  row[offsetT + t2] ^= symbolRow[t2];\n                }\n\n                break;\n\n              default:\n                throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n            }\n          }\n\n          currentS += symbolHeight - 1;\n        } else {\n          for (t2 = 0; t2 < symbolHeight; t2++) {\n            row = bitmap[offsetT + t2];\n\n            if (!row) {\n              continue;\n            }\n\n            symbolRow = symbolBitmap[t2];\n\n            switch (combinationOperator) {\n              case 0:\n                for (s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] |= symbolRow[s2];\n                }\n\n                break;\n\n              case 2:\n                for (s2 = 0; s2 < symbolWidth; s2++) {\n                  row[offsetS + s2] ^= symbolRow[s2];\n                }\n\n                break;\n\n              default:\n                throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n            }\n          }\n\n          currentS += symbolWidth - 1;\n        }\n\n        i++;\n        var deltaS = huffman ? huffmanTables.tableDeltaS.decode(huffmanInput) : decodeInteger(contextCache, 'IADS', decoder);\n\n        if (deltaS === null) {\n          break;\n        }\n\n        currentS += deltaS + dsOffset;\n      } while (true);\n    }\n\n    return bitmap;\n  }\n\n  function decodePatternDictionary(mmr, patternWidth, patternHeight, maxPatternIndex, template, decodingContext) {\n    var at = [];\n\n    if (!mmr) {\n      at.push({\n        x: -patternWidth,\n        y: 0\n      });\n\n      if (template === 0) {\n        at.push({\n          x: -3,\n          y: -1\n        });\n        at.push({\n          x: 2,\n          y: -2\n        });\n        at.push({\n          x: -2,\n          y: -2\n        });\n      }\n    }\n\n    var collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n    var collectiveBitmap = decodeBitmap(mmr, collectiveWidth, patternHeight, template, false, null, at, decodingContext);\n    var patterns = [],\n        i = 0,\n        patternBitmap,\n        xMin,\n        xMax,\n        y;\n\n    while (i <= maxPatternIndex) {\n      patternBitmap = [];\n      xMin = patternWidth * i;\n      xMax = xMin + patternWidth;\n\n      for (y = 0; y < patternHeight; y++) {\n        patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n      }\n\n      patterns.push(patternBitmap);\n      i++;\n    }\n\n    return patterns;\n  }\n\n  function decodeHalftoneRegion(mmr, patterns, template, regionWidth, regionHeight, defaultPixelValue, enableSkip, combinationOperator, gridWidth, gridHeight, gridOffsetX, gridOffsetY, gridVectorX, gridVectorY, decodingContext) {\n    var skip = null;\n\n    if (enableSkip) {\n      throw new Jbig2Error('skip is not supported');\n    }\n\n    if (combinationOperator !== 0) {\n      throw new Jbig2Error('operator ' + combinationOperator + ' is not supported in halftone region');\n    }\n\n    var regionBitmap = [];\n    var i, j, row;\n\n    for (i = 0; i < regionHeight; i++) {\n      row = new Uint8Array(regionWidth);\n\n      if (defaultPixelValue) {\n        for (j = 0; j < regionWidth; j++) {\n          row[j] = defaultPixelValue;\n        }\n      }\n\n      regionBitmap.push(row);\n    }\n\n    var numberOfPatterns = patterns.length;\n    var pattern0 = patterns[0];\n    var patternWidth = pattern0[0].length,\n        patternHeight = pattern0.length;\n    var bitsPerValue = (0, _util.log2)(numberOfPatterns);\n    var at = [];\n\n    if (!mmr) {\n      at.push({\n        x: template <= 1 ? 3 : 2,\n        y: -1\n      });\n\n      if (template === 0) {\n        at.push({\n          x: -3,\n          y: -1\n        });\n        at.push({\n          x: 2,\n          y: -2\n        });\n        at.push({\n          x: -2,\n          y: -2\n        });\n      }\n    }\n\n    var grayScaleBitPlanes = [],\n        mmrInput,\n        bitmap;\n\n    if (mmr) {\n      mmrInput = new Reader(decodingContext.data, decodingContext.start, decodingContext.end);\n    }\n\n    for (i = bitsPerValue - 1; i >= 0; i--) {\n      if (mmr) {\n        bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n      } else {\n        bitmap = decodeBitmap(false, gridWidth, gridHeight, template, false, skip, at, decodingContext);\n      }\n\n      grayScaleBitPlanes[i] = bitmap;\n    }\n\n    var mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n\n    for (mg = 0; mg < gridHeight; mg++) {\n      for (ng = 0; ng < gridWidth; ng++) {\n        bit = 0;\n        patternIndex = 0;\n\n        for (j = bitsPerValue - 1; j >= 0; j--) {\n          bit = grayScaleBitPlanes[j][mg][ng] ^ bit;\n          patternIndex |= bit << j;\n        }\n\n        patternBitmap = patterns[patternIndex];\n        x = gridOffsetX + mg * gridVectorY + ng * gridVectorX >> 8;\n        y = gridOffsetY + mg * gridVectorX - ng * gridVectorY >> 8;\n\n        if (x >= 0 && x + patternWidth <= regionWidth && y >= 0 && y + patternHeight <= regionHeight) {\n          for (i = 0; i < patternHeight; i++) {\n            regionRow = regionBitmap[y + i];\n            patternRow = patternBitmap[i];\n\n            for (j = 0; j < patternWidth; j++) {\n              regionRow[x + j] |= patternRow[j];\n            }\n          }\n        } else {\n          var regionX = void 0,\n              regionY = void 0;\n\n          for (i = 0; i < patternHeight; i++) {\n            regionY = y + i;\n\n            if (regionY < 0 || regionY >= regionHeight) {\n              continue;\n            }\n\n            regionRow = regionBitmap[regionY];\n            patternRow = patternBitmap[i];\n\n            for (j = 0; j < patternWidth; j++) {\n              regionX = x + j;\n\n              if (regionX >= 0 && regionX < regionWidth) {\n                regionRow[regionX] |= patternRow[j];\n              }\n            }\n          }\n        }\n      }\n    }\n\n    return regionBitmap;\n  }\n\n  function readSegmentHeader(data, start) {\n    var segmentHeader = {};\n    segmentHeader.number = (0, _util.readUint32)(data, start);\n    var flags = data[start + 4];\n    var segmentType = flags & 0x3F;\n\n    if (!SegmentTypes[segmentType]) {\n      throw new Jbig2Error('invalid segment type: ' + segmentType);\n    }\n\n    segmentHeader.type = segmentType;\n    segmentHeader.typeName = SegmentTypes[segmentType];\n    segmentHeader.deferredNonRetain = !!(flags & 0x80);\n    var pageAssociationFieldSize = !!(flags & 0x40);\n    var referredFlags = data[start + 5];\n    var referredToCount = referredFlags >> 5 & 7;\n    var retainBits = [referredFlags & 31];\n    var position = start + 6;\n\n    if (referredFlags === 7) {\n      referredToCount = (0, _util.readUint32)(data, position - 1) & 0x1FFFFFFF;\n      position += 3;\n      var bytes = referredToCount + 7 >> 3;\n      retainBits[0] = data[position++];\n\n      while (--bytes > 0) {\n        retainBits.push(data[position++]);\n      }\n    } else if (referredFlags === 5 || referredFlags === 6) {\n      throw new Jbig2Error('invalid referred-to flags');\n    }\n\n    segmentHeader.retainBits = retainBits;\n    var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4;\n    var referredTo = [];\n    var i, ii;\n\n    for (i = 0; i < referredToCount; i++) {\n      var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? (0, _util.readUint16)(data, position) : (0, _util.readUint32)(data, position);\n      referredTo.push(number);\n      position += referredToSegmentNumberSize;\n    }\n\n    segmentHeader.referredTo = referredTo;\n\n    if (!pageAssociationFieldSize) {\n      segmentHeader.pageAssociation = data[position++];\n    } else {\n      segmentHeader.pageAssociation = (0, _util.readUint32)(data, position);\n      position += 4;\n    }\n\n    segmentHeader.length = (0, _util.readUint32)(data, position);\n    position += 4;\n\n    if (segmentHeader.length === 0xFFFFFFFF) {\n      if (segmentType === 38) {\n        var genericRegionInfo = readRegionSegmentInformation(data, position);\n        var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength];\n        var genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n        var searchPatternLength = 6;\n        var searchPattern = new Uint8Array(searchPatternLength);\n\n        if (!genericRegionMmr) {\n          searchPattern[0] = 0xFF;\n          searchPattern[1] = 0xAC;\n        }\n\n        searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF;\n        searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF;\n        searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF;\n        searchPattern[5] = genericRegionInfo.height & 0xFF;\n\n        for (i = position, ii = data.length; i < ii; i++) {\n          var j = 0;\n\n          while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n            j++;\n          }\n\n          if (j === searchPatternLength) {\n            segmentHeader.length = i + searchPatternLength;\n            break;\n          }\n        }\n\n        if (segmentHeader.length === 0xFFFFFFFF) {\n          throw new Jbig2Error('segment end was not found');\n        }\n      } else {\n        throw new Jbig2Error('invalid unknown segment length');\n      }\n    }\n\n    segmentHeader.headerEnd = position;\n    return segmentHeader;\n  }\n\n  function readSegments(header, data, start, end) {\n    var segments = [];\n    var position = start;\n\n    while (position < end) {\n      var segmentHeader = readSegmentHeader(data, position);\n      position = segmentHeader.headerEnd;\n      var segment = {\n        header: segmentHeader,\n        data: data\n      };\n\n      if (!header.randomAccess) {\n        segment.start = position;\n        position += segmentHeader.length;\n        segment.end = position;\n      }\n\n      segments.push(segment);\n\n      if (segmentHeader.type === 51) {\n        break;\n      }\n    }\n\n    if (header.randomAccess) {\n      for (var i = 0, ii = segments.length; i < ii; i++) {\n        segments[i].start = position;\n        position += segments[i].header.length;\n        segments[i].end = position;\n      }\n    }\n\n    return segments;\n  }\n\n  function readRegionSegmentInformation(data, start) {\n    return {\n      width: (0, _util.readUint32)(data, start),\n      height: (0, _util.readUint32)(data, start + 4),\n      x: (0, _util.readUint32)(data, start + 8),\n      y: (0, _util.readUint32)(data, start + 12),\n      combinationOperator: data[start + 16] & 7\n    };\n  }\n\n  var RegionSegmentInformationFieldLength = 17;\n\n  function processSegment(segment, visitor) {\n    var header = segment.header;\n    var data = segment.data,\n        position = segment.start,\n        end = segment.end;\n    var args, at, i, atLength;\n\n    switch (header.type) {\n      case 0:\n        var dictionary = {};\n        var dictionaryFlags = (0, _util.readUint16)(data, position);\n        dictionary.huffman = !!(dictionaryFlags & 1);\n        dictionary.refinement = !!(dictionaryFlags & 2);\n        dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3;\n        dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3;\n        dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1;\n        dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1;\n        dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n        dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n        dictionary.template = dictionaryFlags >> 10 & 3;\n        dictionary.refinementTemplate = dictionaryFlags >> 12 & 1;\n        position += 2;\n\n        if (!dictionary.huffman) {\n          atLength = dictionary.template === 0 ? 4 : 1;\n          at = [];\n\n          for (i = 0; i < atLength; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          dictionary.at = at;\n        }\n\n        if (dictionary.refinement && !dictionary.refinementTemplate) {\n          at = [];\n\n          for (i = 0; i < 2; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          dictionary.refinementAt = at;\n        }\n\n        dictionary.numberOfExportedSymbols = (0, _util.readUint32)(data, position);\n        position += 4;\n        dictionary.numberOfNewSymbols = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [dictionary, header.number, header.referredTo, data, position, end];\n        break;\n\n      case 6:\n      case 7:\n        var textRegion = {};\n        textRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var textRegionSegmentFlags = (0, _util.readUint16)(data, position);\n        position += 2;\n        textRegion.huffman = !!(textRegionSegmentFlags & 1);\n        textRegion.refinement = !!(textRegionSegmentFlags & 2);\n        textRegion.logStripSize = textRegionSegmentFlags >> 2 & 3;\n        textRegion.stripSize = 1 << textRegion.logStripSize;\n        textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3;\n        textRegion.transposed = !!(textRegionSegmentFlags & 64);\n        textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3;\n        textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1;\n        textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27;\n        textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1;\n\n        if (textRegion.huffman) {\n          var textRegionHuffmanFlags = (0, _util.readUint16)(data, position);\n          position += 2;\n          textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n          textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3;\n          textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3;\n          textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3;\n          textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3;\n          textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3;\n          textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3;\n          textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 0x4000);\n        }\n\n        if (textRegion.refinement && !textRegion.refinementTemplate) {\n          at = [];\n\n          for (i = 0; i < 2; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          textRegion.refinementAt = at;\n        }\n\n        textRegion.numberOfSymbolInstances = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [textRegion, header.referredTo, data, position, end];\n        break;\n\n      case 16:\n        var patternDictionary = {};\n        var patternDictionaryFlags = data[position++];\n        patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n        patternDictionary.template = patternDictionaryFlags >> 1 & 3;\n        patternDictionary.patternWidth = data[position++];\n        patternDictionary.patternHeight = data[position++];\n        patternDictionary.maxPatternIndex = (0, _util.readUint32)(data, position);\n        position += 4;\n        args = [patternDictionary, header.number, data, position, end];\n        break;\n\n      case 22:\n      case 23:\n        var halftoneRegion = {};\n        halftoneRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var halftoneRegionFlags = data[position++];\n        halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n        halftoneRegion.template = halftoneRegionFlags >> 1 & 3;\n        halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n        halftoneRegion.combinationOperator = halftoneRegionFlags >> 4 & 7;\n        halftoneRegion.defaultPixelValue = halftoneRegionFlags >> 7 & 1;\n        halftoneRegion.gridWidth = (0, _util.readUint32)(data, position);\n        position += 4;\n        halftoneRegion.gridHeight = (0, _util.readUint32)(data, position);\n        position += 4;\n        halftoneRegion.gridOffsetX = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n        position += 4;\n        halftoneRegion.gridOffsetY = (0, _util.readUint32)(data, position) & 0xFFFFFFFF;\n        position += 4;\n        halftoneRegion.gridVectorX = (0, _util.readUint16)(data, position);\n        position += 2;\n        halftoneRegion.gridVectorY = (0, _util.readUint16)(data, position);\n        position += 2;\n        args = [halftoneRegion, header.referredTo, data, position, end];\n        break;\n\n      case 38:\n      case 39:\n        var genericRegion = {};\n        genericRegion.info = readRegionSegmentInformation(data, position);\n        position += RegionSegmentInformationFieldLength;\n        var genericRegionSegmentFlags = data[position++];\n        genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n        genericRegion.template = genericRegionSegmentFlags >> 1 & 3;\n        genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n\n        if (!genericRegion.mmr) {\n          atLength = genericRegion.template === 0 ? 4 : 1;\n          at = [];\n\n          for (i = 0; i < atLength; i++) {\n            at.push({\n              x: (0, _util.readInt8)(data, position),\n              y: (0, _util.readInt8)(data, position + 1)\n            });\n            position += 2;\n          }\n\n          genericRegion.at = at;\n        }\n\n        args = [genericRegion, data, position, end];\n        break;\n\n      case 48:\n        var pageInfo = {\n          width: (0, _util.readUint32)(data, position),\n          height: (0, _util.readUint32)(data, position + 4),\n          resolutionX: (0, _util.readUint32)(data, position + 8),\n          resolutionY: (0, _util.readUint32)(data, position + 12)\n        };\n\n        if (pageInfo.height === 0xFFFFFFFF) {\n          delete pageInfo.height;\n        }\n\n        var pageSegmentFlags = data[position + 16];\n        (0, _util.readUint16)(data, position + 17);\n        pageInfo.lossless = !!(pageSegmentFlags & 1);\n        pageInfo.refinement = !!(pageSegmentFlags & 2);\n        pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1;\n        pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3;\n        pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n        pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n        args = [pageInfo];\n        break;\n\n      case 49:\n        break;\n\n      case 50:\n        break;\n\n      case 51:\n        break;\n\n      case 53:\n        args = [header.number, data, position, end];\n        break;\n\n      case 62:\n        break;\n\n      default:\n        throw new Jbig2Error(\"segment type \".concat(header.typeName, \"(\").concat(header.type, \")\") + ' is not implemented');\n    }\n\n    var callbackName = 'on' + header.typeName;\n\n    if (callbackName in visitor) {\n      visitor[callbackName].apply(visitor, args);\n    }\n  }\n\n  function processSegments(segments, visitor) {\n    for (var i = 0, ii = segments.length; i < ii; i++) {\n      processSegment(segments[i], visitor);\n    }\n  }\n\n  function parseJbig2Chunks(chunks) {\n    var visitor = new SimpleSegmentVisitor();\n\n    for (var i = 0, ii = chunks.length; i < ii; i++) {\n      var chunk = chunks[i];\n      var segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n      processSegments(segments, visitor);\n    }\n\n    return visitor.buffer;\n  }\n\n  function parseJbig2(data) {\n    var position = 0,\n        end = data.length;\n\n    if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) {\n      throw new Jbig2Error('parseJbig2 - invalid header.');\n    }\n\n    var header = Object.create(null);\n    position += 8;\n    var flags = data[position++];\n    header.randomAccess = !(flags & 1);\n\n    if (!(flags & 2)) {\n      header.numberOfPages = (0, _util.readUint32)(data, position);\n      position += 4;\n    }\n\n    var segments = readSegments(header, data, position, end);\n    var visitor = new SimpleSegmentVisitor();\n    processSegments(segments, visitor);\n    var _visitor$currentPageI = visitor.currentPageInfo,\n        width = _visitor$currentPageI.width,\n        height = _visitor$currentPageI.height;\n    var bitPacked = visitor.buffer;\n    var imgData = new Uint8ClampedArray(width * height);\n    var q = 0,\n        k = 0;\n\n    for (var i = 0; i < height; i++) {\n      var mask = 0,\n          buffer = void 0;\n\n      for (var j = 0; j < width; j++) {\n        if (!mask) {\n          mask = 128;\n          buffer = bitPacked[k++];\n        }\n\n        imgData[q++] = buffer & mask ? 0 : 255;\n        mask >>= 1;\n      }\n    }\n\n    return {\n      imgData: imgData,\n      width: width,\n      height: height\n    };\n  }\n\n  function SimpleSegmentVisitor() {}\n\n  SimpleSegmentVisitor.prototype = {\n    onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) {\n      this.currentPageInfo = info;\n      var rowSize = info.width + 7 >> 3;\n      var buffer = new Uint8ClampedArray(rowSize * info.height);\n\n      if (info.defaultPixelValue) {\n        for (var i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = 0xFF;\n        }\n      }\n\n      this.buffer = buffer;\n    },\n    drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) {\n      var pageInfo = this.currentPageInfo;\n      var width = regionInfo.width,\n          height = regionInfo.height;\n      var rowSize = pageInfo.width + 7 >> 3;\n      var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator;\n      var buffer = this.buffer;\n      var mask0 = 128 >> (regionInfo.x & 7);\n      var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n      var i, j, mask, offset;\n\n      switch (combinationOperator) {\n        case 0:\n          for (i = 0; i < height; i++) {\n            mask = mask0;\n            offset = offset0;\n\n            for (j = 0; j < width; j++) {\n              if (bitmap[i][j]) {\n                buffer[offset] |= mask;\n              }\n\n              mask >>= 1;\n\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n\n            offset0 += rowSize;\n          }\n\n          break;\n\n        case 2:\n          for (i = 0; i < height; i++) {\n            mask = mask0;\n            offset = offset0;\n\n            for (j = 0; j < width; j++) {\n              if (bitmap[i][j]) {\n                buffer[offset] ^= mask;\n              }\n\n              mask >>= 1;\n\n              if (!mask) {\n                mask = 128;\n                offset++;\n              }\n            }\n\n            offset0 += rowSize;\n          }\n\n          break;\n\n        default:\n          throw new Jbig2Error(\"operator \".concat(combinationOperator, \" is not supported\"));\n      }\n    },\n    onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) {\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() {\n      this.onImmediateGenericRegion.apply(this, arguments);\n    },\n    onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) {\n      var huffmanTables, huffmanInput;\n\n      if (dictionary.huffman) {\n        huffmanTables = getSymbolDictionaryHuffmanTables(dictionary, referredSegments, this.customTables);\n        huffmanInput = new Reader(data, start, end);\n      }\n\n      var symbols = this.symbols;\n\n      if (!symbols) {\n        this.symbols = symbols = {};\n      }\n\n      var inputSymbols = [];\n\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        var referredSymbols = symbols[referredSegments[i]];\n\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext, huffmanInput);\n    },\n    onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) {\n      var regionInfo = region.info;\n      var huffmanTables, huffmanInput;\n      var symbols = this.symbols;\n      var inputSymbols = [];\n\n      for (var i = 0, ii = referredSegments.length; i < ii; i++) {\n        var referredSymbols = symbols[referredSegments[i]];\n\n        if (referredSymbols) {\n          inputSymbols = inputSymbols.concat(referredSymbols);\n        }\n      }\n\n      var symbolCodeLength = (0, _util.log2)(inputSymbols.length);\n\n      if (region.huffman) {\n        huffmanInput = new Reader(data, start, end);\n        huffmanTables = getTextRegionHuffmanTables(region, referredSegments, this.customTables, inputSymbols.length, huffmanInput);\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext, region.logStripSize, huffmanInput);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() {\n      this.onImmediateTextRegion.apply(this, arguments);\n    },\n    onPatternDictionary: function onPatternDictionary(dictionary, currentSegment, data, start, end) {\n      var patterns = this.patterns;\n\n      if (!patterns) {\n        this.patterns = patterns = {};\n      }\n\n      var decodingContext = new DecodingContext(data, start, end);\n      patterns[currentSegment] = decodePatternDictionary(dictionary.mmr, dictionary.patternWidth, dictionary.patternHeight, dictionary.maxPatternIndex, dictionary.template, decodingContext);\n    },\n    onImmediateHalftoneRegion: function onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n      var patterns = this.patterns[referredSegments[0]];\n      var regionInfo = region.info;\n      var decodingContext = new DecodingContext(data, start, end);\n      var bitmap = decodeHalftoneRegion(region.mmr, patterns, region.template, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.enableSkip, region.combinationOperator, region.gridWidth, region.gridHeight, region.gridOffsetX, region.gridOffsetY, region.gridVectorX, region.gridVectorY, decodingContext);\n      this.drawBitmap(regionInfo, bitmap);\n    },\n    onImmediateLosslessHalftoneRegion: function onImmediateLosslessHalftoneRegion() {\n      this.onImmediateHalftoneRegion.apply(this, arguments);\n    },\n    onTables: function onTables(currentSegment, data, start, end) {\n      var customTables = this.customTables;\n\n      if (!customTables) {\n        this.customTables = customTables = {};\n      }\n\n      customTables[currentSegment] = decodeTablesSegment(data, start, end);\n    }\n  };\n\n  function HuffmanLine(lineData) {\n    if (lineData.length === 2) {\n      this.isOOB = true;\n      this.rangeLow = 0;\n      this.prefixLength = lineData[0];\n      this.rangeLength = 0;\n      this.prefixCode = lineData[1];\n      this.isLowerRange = false;\n    } else {\n      this.isOOB = false;\n      this.rangeLow = lineData[0];\n      this.prefixLength = lineData[1];\n      this.rangeLength = lineData[2];\n      this.prefixCode = lineData[3];\n      this.isLowerRange = lineData[4] === 'lower';\n    }\n  }\n\n  function HuffmanTreeNode(line) {\n    this.children = [];\n\n    if (line) {\n      this.isLeaf = true;\n      this.rangeLength = line.rangeLength;\n      this.rangeLow = line.rangeLow;\n      this.isLowerRange = line.isLowerRange;\n      this.isOOB = line.isOOB;\n    } else {\n      this.isLeaf = false;\n    }\n  }\n\n  HuffmanTreeNode.prototype = {\n    buildTree: function buildTree(line, shift) {\n      var bit = line.prefixCode >> shift & 1;\n\n      if (shift <= 0) {\n        this.children[bit] = new HuffmanTreeNode(line);\n      } else {\n        var node = this.children[bit];\n\n        if (!node) {\n          this.children[bit] = node = new HuffmanTreeNode(null);\n        }\n\n        node.buildTree(line, shift - 1);\n      }\n    },\n    decodeNode: function decodeNode(reader) {\n      if (this.isLeaf) {\n        if (this.isOOB) {\n          return null;\n        }\n\n        var htOffset = reader.readBits(this.rangeLength);\n        return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n      }\n\n      var node = this.children[reader.readBit()];\n\n      if (!node) {\n        throw new Jbig2Error('invalid Huffman data');\n      }\n\n      return node.decodeNode(reader);\n    }\n  };\n\n  function HuffmanTable(lines, prefixCodesDone) {\n    if (!prefixCodesDone) {\n      this.assignPrefixCodes(lines);\n    }\n\n    this.rootNode = new HuffmanTreeNode(null);\n    var i,\n        ii = lines.length,\n        line;\n\n    for (i = 0; i < ii; i++) {\n      line = lines[i];\n\n      if (line.prefixLength > 0) {\n        this.rootNode.buildTree(line, line.prefixLength - 1);\n      }\n    }\n  }\n\n  HuffmanTable.prototype = {\n    decode: function decode(reader) {\n      return this.rootNode.decodeNode(reader);\n    },\n    assignPrefixCodes: function assignPrefixCodes(lines) {\n      var linesLength = lines.length,\n          prefixLengthMax = 0,\n          i;\n\n      for (i = 0; i < linesLength; i++) {\n        prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n      }\n\n      var histogram = new Uint32Array(prefixLengthMax + 1);\n\n      for (i = 0; i < linesLength; i++) {\n        histogram[lines[i].prefixLength]++;\n      }\n\n      var currentLength = 1,\n          firstCode = 0,\n          currentCode,\n          currentTemp,\n          line;\n      histogram[0] = 0;\n\n      while (currentLength <= prefixLengthMax) {\n        firstCode = firstCode + histogram[currentLength - 1] << 1;\n        currentCode = firstCode;\n        currentTemp = 0;\n\n        while (currentTemp < linesLength) {\n          line = lines[currentTemp];\n\n          if (line.prefixLength === currentLength) {\n            line.prefixCode = currentCode;\n            currentCode++;\n          }\n\n          currentTemp++;\n        }\n\n        currentLength++;\n      }\n    }\n  };\n\n  function decodeTablesSegment(data, start, end) {\n    var flags = data[start];\n    var lowestValue = (0, _util.readUint32)(data, start + 1) & 0xFFFFFFFF;\n    var highestValue = (0, _util.readUint32)(data, start + 5) & 0xFFFFFFFF;\n    var reader = new Reader(data, start + 9, end);\n    var prefixSizeBits = (flags >> 1 & 7) + 1;\n    var rangeSizeBits = (flags >> 4 & 7) + 1;\n    var lines = [];\n    var prefixLength,\n        rangeLength,\n        currentRangeLow = lowestValue;\n\n    do {\n      prefixLength = reader.readBits(prefixSizeBits);\n      rangeLength = reader.readBits(rangeSizeBits);\n      lines.push(new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0]));\n      currentRangeLow += 1 << rangeLength;\n    } while (currentRangeLow < highestValue);\n\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, 'lower']));\n    prefixLength = reader.readBits(prefixSizeBits);\n    lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n    if (flags & 1) {\n      prefixLength = reader.readBits(prefixSizeBits);\n      lines.push(new HuffmanLine([prefixLength, 0]));\n    }\n\n    return new HuffmanTable(lines, false);\n  }\n\n  var standardTablesCache = {};\n\n  function getStandardTable(number) {\n    var table = standardTablesCache[number];\n\n    if (table) {\n      return table;\n    }\n\n    var lines;\n\n    switch (number) {\n      case 1:\n        lines = [[0, 1, 4, 0x0], [16, 2, 8, 0x2], [272, 3, 16, 0x6], [65808, 3, 32, 0x7]];\n        break;\n\n      case 2:\n        lines = [[0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [75, 6, 32, 0x3E], [6, 0x3F]];\n        break;\n\n      case 3:\n        lines = [[-256, 8, 8, 0xFE], [0, 1, 0, 0x0], [1, 2, 0, 0x2], [2, 3, 0, 0x6], [3, 4, 3, 0xE], [11, 5, 6, 0x1E], [-257, 8, 32, 0xFF, 'lower'], [75, 7, 32, 0x7E], [6, 0x3E]];\n        break;\n\n      case 4:\n        lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [76, 5, 32, 0x1F]];\n        break;\n\n      case 5:\n        lines = [[-255, 7, 8, 0x7E], [1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 0, 0x6], [4, 4, 3, 0xE], [12, 5, 6, 0x1E], [-256, 7, 32, 0x7F, 'lower'], [76, 6, 32, 0x3E]];\n        break;\n\n      case 6:\n        lines = [[-2048, 5, 10, 0x1C], [-1024, 4, 9, 0x8], [-512, 4, 8, 0x9], [-256, 4, 7, 0xA], [-128, 5, 6, 0x1D], [-64, 5, 5, 0x1E], [-32, 4, 5, 0xB], [0, 2, 7, 0x0], [128, 3, 7, 0x2], [256, 3, 8, 0x3], [512, 4, 9, 0xC], [1024, 4, 10, 0xD], [-2049, 6, 32, 0x3E, 'lower'], [2048, 6, 32, 0x3F]];\n        break;\n\n      case 7:\n        lines = [[-1024, 4, 9, 0x8], [-512, 3, 8, 0x0], [-256, 4, 7, 0x9], [-128, 5, 6, 0x1A], [-64, 5, 5, 0x1B], [-32, 4, 5, 0xA], [0, 4, 5, 0xB], [32, 5, 5, 0x1C], [64, 5, 6, 0x1D], [128, 4, 7, 0xC], [256, 3, 8, 0x1], [512, 3, 9, 0x2], [1024, 3, 10, 0x3], [-1025, 5, 32, 0x1E, 'lower'], [2048, 5, 32, 0x1F]];\n        break;\n\n      case 8:\n        lines = [[-15, 8, 3, 0xFC], [-7, 9, 1, 0x1FC], [-5, 8, 1, 0xFD], [-3, 9, 0, 0x1FD], [-2, 7, 0, 0x7C], [-1, 4, 0, 0xA], [0, 2, 1, 0x0], [2, 5, 0, 0x1A], [3, 6, 0, 0x3A], [4, 3, 4, 0x4], [20, 6, 1, 0x3B], [22, 4, 4, 0xB], [38, 4, 5, 0xC], [70, 5, 6, 0x1B], [134, 5, 7, 0x1C], [262, 6, 7, 0x3C], [390, 7, 8, 0x7D], [646, 6, 10, 0x3D], [-16, 9, 32, 0x1FE, 'lower'], [1670, 9, 32, 0x1FF], [2, 0x1]];\n        break;\n\n      case 9:\n        lines = [[-31, 8, 4, 0xFC], [-15, 9, 2, 0x1FC], [-11, 8, 2, 0xFD], [-7, 9, 1, 0x1FD], [-5, 7, 1, 0x7C], [-3, 4, 1, 0xA], [-1, 3, 1, 0x2], [1, 3, 1, 0x3], [3, 5, 1, 0x1A], [5, 6, 1, 0x3A], [7, 3, 5, 0x4], [39, 6, 2, 0x3B], [43, 4, 5, 0xB], [75, 4, 6, 0xC], [139, 5, 7, 0x1B], [267, 5, 8, 0x1C], [523, 6, 8, 0x3C], [779, 7, 9, 0x7D], [1291, 6, 11, 0x3D], [-32, 9, 32, 0x1FE, 'lower'], [3339, 9, 32, 0x1FF], [2, 0x0]];\n        break;\n\n      case 10:\n        lines = [[-21, 7, 4, 0x7A], [-5, 8, 0, 0xFC], [-4, 7, 0, 0x7B], [-3, 5, 0, 0x18], [-2, 2, 2, 0x0], [2, 5, 0, 0x19], [3, 6, 0, 0x36], [4, 7, 0, 0x7C], [5, 8, 0, 0xFD], [6, 2, 6, 0x1], [70, 5, 5, 0x1A], [102, 6, 5, 0x37], [134, 6, 6, 0x38], [198, 6, 7, 0x39], [326, 6, 8, 0x3A], [582, 6, 9, 0x3B], [1094, 6, 10, 0x3C], [2118, 7, 11, 0x7D], [-22, 8, 32, 0xFE, 'lower'], [4166, 8, 32, 0xFF], [2, 0x2]];\n        break;\n\n      case 11:\n        lines = [[1, 1, 0, 0x0], [2, 2, 1, 0x2], [4, 4, 0, 0xC], [5, 4, 1, 0xD], [7, 5, 1, 0x1C], [9, 5, 2, 0x1D], [13, 6, 2, 0x3C], [17, 7, 2, 0x7A], [21, 7, 3, 0x7B], [29, 7, 4, 0x7C], [45, 7, 5, 0x7D], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]];\n        break;\n\n      case 12:\n        lines = [[1, 1, 0, 0x0], [2, 2, 0, 0x2], [3, 3, 1, 0x6], [5, 5, 0, 0x1C], [6, 5, 1, 0x1D], [8, 6, 1, 0x3C], [10, 7, 0, 0x7A], [11, 7, 1, 0x7B], [13, 7, 2, 0x7C], [17, 7, 3, 0x7D], [25, 7, 4, 0x7E], [41, 8, 5, 0xFE], [73, 8, 32, 0xFF]];\n        break;\n\n      case 13:\n        lines = [[1, 1, 0, 0x0], [2, 3, 0, 0x4], [3, 4, 0, 0xC], [4, 5, 0, 0x1C], [5, 4, 1, 0xD], [7, 3, 3, 0x5], [15, 6, 1, 0x3A], [17, 6, 2, 0x3B], [21, 6, 3, 0x3C], [29, 6, 4, 0x3D], [45, 6, 5, 0x3E], [77, 7, 6, 0x7E], [141, 7, 32, 0x7F]];\n        break;\n\n      case 14:\n        lines = [[-2, 3, 0, 0x4], [-1, 3, 0, 0x5], [0, 1, 0, 0x0], [1, 3, 0, 0x6], [2, 3, 0, 0x7]];\n        break;\n\n      case 15:\n        lines = [[-24, 7, 4, 0x7C], [-8, 6, 2, 0x3C], [-4, 5, 1, 0x1C], [-2, 4, 0, 0xC], [-1, 3, 0, 0x4], [0, 1, 0, 0x0], [1, 3, 0, 0x5], [2, 4, 0, 0xD], [3, 5, 1, 0x1D], [5, 6, 2, 0x3D], [9, 7, 4, 0x7D], [-25, 7, 32, 0x7E, 'lower'], [25, 7, 32, 0x7F]];\n        break;\n\n      default:\n        throw new Jbig2Error(\"standard table B.\".concat(number, \" does not exist\"));\n    }\n\n    var length = lines.length,\n        i;\n\n    for (i = 0; i < length; i++) {\n      lines[i] = new HuffmanLine(lines[i]);\n    }\n\n    table = new HuffmanTable(lines, true);\n    standardTablesCache[number] = table;\n    return table;\n  }\n\n  function Reader(data, start, end) {\n    this.data = data;\n    this.start = start;\n    this.end = end;\n    this.position = start;\n    this.shift = -1;\n    this.currentByte = 0;\n  }\n\n  Reader.prototype = {\n    readBit: function readBit() {\n      if (this.shift < 0) {\n        if (this.position >= this.end) {\n          throw new Jbig2Error('end of data while reading bit');\n        }\n\n        this.currentByte = this.data[this.position++];\n        this.shift = 7;\n      }\n\n      var bit = this.currentByte >> this.shift & 1;\n      this.shift--;\n      return bit;\n    },\n    readBits: function readBits(numBits) {\n      var result = 0,\n          i;\n\n      for (i = numBits - 1; i >= 0; i--) {\n        result |= this.readBit() << i;\n      }\n\n      return result;\n    },\n    byteAlign: function byteAlign() {\n      this.shift = -1;\n    },\n    next: function next() {\n      if (this.position >= this.end) {\n        return -1;\n      }\n\n      return this.data[this.position++];\n    }\n  };\n\n  function getCustomHuffmanTable(index, referredTo, customTables) {\n    var currentIndex = 0,\n        i,\n        ii = referredTo.length,\n        table;\n\n    for (i = 0; i < ii; i++) {\n      table = customTables[referredTo[i]];\n\n      if (table) {\n        if (index === currentIndex) {\n          return table;\n        }\n\n        currentIndex++;\n      }\n    }\n\n    throw new Jbig2Error('can\\'t find custom Huffman table');\n  }\n\n  function getTextRegionHuffmanTables(textRegion, referredTo, customTables, numberOfSymbols, reader) {\n    var codes = [],\n        i,\n        codeLength;\n\n    for (i = 0; i <= 34; i++) {\n      codeLength = reader.readBits(4);\n      codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n    }\n\n    var runCodesTable = new HuffmanTable(codes, false);\n    codes.length = 0;\n\n    for (i = 0; i < numberOfSymbols;) {\n      codeLength = runCodesTable.decode(reader);\n\n      if (codeLength >= 32) {\n        var repeatedLength = void 0,\n            numberOfRepeats = void 0,\n            j = void 0;\n\n        switch (codeLength) {\n          case 32:\n            if (i === 0) {\n              throw new Jbig2Error('no previous value in symbol ID table');\n            }\n\n            numberOfRepeats = reader.readBits(2) + 3;\n            repeatedLength = codes[i - 1].prefixLength;\n            break;\n\n          case 33:\n            numberOfRepeats = reader.readBits(3) + 3;\n            repeatedLength = 0;\n            break;\n\n          case 34:\n            numberOfRepeats = reader.readBits(7) + 11;\n            repeatedLength = 0;\n            break;\n\n          default:\n            throw new Jbig2Error('invalid code length in symbol ID table');\n        }\n\n        for (j = 0; j < numberOfRepeats; j++) {\n          codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n          i++;\n        }\n      } else {\n        codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n        i++;\n      }\n    }\n\n    reader.byteAlign();\n    var symbolIDTable = new HuffmanTable(codes, false);\n    var customIndex = 0,\n        tableFirstS,\n        tableDeltaS,\n        tableDeltaT;\n\n    switch (textRegion.huffmanFS) {\n      case 0:\n      case 1:\n        tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n        break;\n\n      case 3:\n        tableFirstS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman FS selector');\n    }\n\n    switch (textRegion.huffmanDS) {\n      case 0:\n      case 1:\n      case 2:\n        tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n        break;\n\n      case 3:\n        tableDeltaS = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DS selector');\n    }\n\n    switch (textRegion.huffmanDT) {\n      case 0:\n      case 1:\n      case 2:\n        tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n        break;\n\n      case 3:\n        tableDeltaT = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DT selector');\n    }\n\n    if (textRegion.refinement) {\n      throw new Jbig2Error('refinement with Huffman is not supported');\n    }\n\n    return {\n      symbolIDTable: symbolIDTable,\n      tableFirstS: tableFirstS,\n      tableDeltaS: tableDeltaS,\n      tableDeltaT: tableDeltaT\n    };\n  }\n\n  function getSymbolDictionaryHuffmanTables(dictionary, referredTo, customTables) {\n    var customIndex = 0,\n        tableDeltaHeight,\n        tableDeltaWidth;\n\n    switch (dictionary.huffmanDHSelector) {\n      case 0:\n      case 1:\n        tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n        break;\n\n      case 3:\n        tableDeltaHeight = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DH selector');\n    }\n\n    switch (dictionary.huffmanDWSelector) {\n      case 0:\n      case 1:\n        tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n        break;\n\n      case 3:\n        tableDeltaWidth = getCustomHuffmanTable(customIndex, referredTo, customTables);\n        customIndex++;\n        break;\n\n      default:\n        throw new Jbig2Error('invalid Huffman DW selector');\n    }\n\n    var tableBitmapSize, tableAggregateInstances;\n\n    if (dictionary.bitmapSizeSelector) {\n      tableBitmapSize = getCustomHuffmanTable(customIndex, referredTo, customTables);\n      customIndex++;\n    } else {\n      tableBitmapSize = getStandardTable(1);\n    }\n\n    if (dictionary.aggregationInstancesSelector) {\n      tableAggregateInstances = getCustomHuffmanTable(customIndex, referredTo, customTables);\n    } else {\n      tableAggregateInstances = getStandardTable(1);\n    }\n\n    return {\n      tableDeltaHeight: tableDeltaHeight,\n      tableDeltaWidth: tableDeltaWidth,\n      tableBitmapSize: tableBitmapSize,\n      tableAggregateInstances: tableAggregateInstances\n    };\n  }\n\n  function readUncompressedBitmap(reader, width, height) {\n    var bitmap = [],\n        x,\n        y,\n        row;\n\n    for (y = 0; y < height; y++) {\n      row = new Uint8Array(width);\n      bitmap.push(row);\n\n      for (x = 0; x < width; x++) {\n        row[x] = reader.readBit();\n      }\n\n      reader.byteAlign();\n    }\n\n    return bitmap;\n  }\n\n  function decodeMMRBitmap(input, width, height, endOfBlock) {\n    var params = {\n      K: -1,\n      Columns: width,\n      Rows: height,\n      BlackIs1: true,\n      EndOfBlock: endOfBlock\n    };\n    var decoder = new _ccitt.CCITTFaxDecoder(input, params);\n    var bitmap = [],\n        x,\n        y,\n        row,\n        currentByte,\n        shift,\n        eof = false;\n\n    for (y = 0; y < height; y++) {\n      row = new Uint8Array(width);\n      bitmap.push(row);\n      shift = -1;\n\n      for (x = 0; x < width; x++) {\n        if (shift < 0) {\n          currentByte = decoder.readNextChar();\n\n          if (currentByte === -1) {\n            currentByte = 0;\n            eof = true;\n          }\n\n          shift = 7;\n        }\n\n        row[x] = currentByte >> shift & 1;\n        shift--;\n      }\n    }\n\n    if (endOfBlock && !eof) {\n      var lookForEOFLimit = 5;\n\n      for (var i = 0; i < lookForEOFLimit; i++) {\n        if (decoder.readNextChar() === -1) {\n          break;\n        }\n      }\n    }\n\n    return bitmap;\n  }\n\n  function Jbig2Image() {}\n\n  Jbig2Image.prototype = {\n    parseChunks: function parseChunks(chunks) {\n      return parseJbig2Chunks(chunks);\n    },\n    parse: function parse(data) {\n      var _parseJbig = parseJbig2(data),\n          imgData = _parseJbig.imgData,\n          width = _parseJbig.width,\n          height = _parseJbig.height;\n\n      this.width = width;\n      this.height = height;\n      return imgData;\n    }\n  };\n  return Jbig2Image;\n}();\n\nexports.Jbig2Image = Jbig2Image;\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ArithmeticDecoder = void 0;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar QeTable = [{\n  qe: 0x5601,\n  nmps: 1,\n  nlps: 1,\n  switchFlag: 1\n}, {\n  qe: 0x3401,\n  nmps: 2,\n  nlps: 6,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 3,\n  nlps: 9,\n  switchFlag: 0\n}, {\n  qe: 0x0AC1,\n  nmps: 4,\n  nlps: 12,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 5,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 38,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 7,\n  nlps: 6,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 8,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 9,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 10,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 11,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 12,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x1C01,\n  nmps: 13,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 29,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 15,\n  nlps: 14,\n  switchFlag: 1\n}, {\n  qe: 0x5401,\n  nmps: 16,\n  nlps: 14,\n  switchFlag: 0\n}, {\n  qe: 0x5101,\n  nmps: 17,\n  nlps: 15,\n  switchFlag: 0\n}, {\n  qe: 0x4801,\n  nmps: 18,\n  nlps: 16,\n  switchFlag: 0\n}, {\n  qe: 0x3801,\n  nmps: 19,\n  nlps: 17,\n  switchFlag: 0\n}, {\n  qe: 0x3401,\n  nmps: 20,\n  nlps: 18,\n  switchFlag: 0\n}, {\n  qe: 0x3001,\n  nmps: 21,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2801,\n  nmps: 22,\n  nlps: 19,\n  switchFlag: 0\n}, {\n  qe: 0x2401,\n  nmps: 23,\n  nlps: 20,\n  switchFlag: 0\n}, {\n  qe: 0x2201,\n  nmps: 24,\n  nlps: 21,\n  switchFlag: 0\n}, {\n  qe: 0x1C01,\n  nmps: 25,\n  nlps: 22,\n  switchFlag: 0\n}, {\n  qe: 0x1801,\n  nmps: 26,\n  nlps: 23,\n  switchFlag: 0\n}, {\n  qe: 0x1601,\n  nmps: 27,\n  nlps: 24,\n  switchFlag: 0\n}, {\n  qe: 0x1401,\n  nmps: 28,\n  nlps: 25,\n  switchFlag: 0\n}, {\n  qe: 0x1201,\n  nmps: 29,\n  nlps: 26,\n  switchFlag: 0\n}, {\n  qe: 0x1101,\n  nmps: 30,\n  nlps: 27,\n  switchFlag: 0\n}, {\n  qe: 0x0AC1,\n  nmps: 31,\n  nlps: 28,\n  switchFlag: 0\n}, {\n  qe: 0x09C1,\n  nmps: 32,\n  nlps: 29,\n  switchFlag: 0\n}, {\n  qe: 0x08A1,\n  nmps: 33,\n  nlps: 30,\n  switchFlag: 0\n}, {\n  qe: 0x0521,\n  nmps: 34,\n  nlps: 31,\n  switchFlag: 0\n}, {\n  qe: 0x0441,\n  nmps: 35,\n  nlps: 32,\n  switchFlag: 0\n}, {\n  qe: 0x02A1,\n  nmps: 36,\n  nlps: 33,\n  switchFlag: 0\n}, {\n  qe: 0x0221,\n  nmps: 37,\n  nlps: 34,\n  switchFlag: 0\n}, {\n  qe: 0x0141,\n  nmps: 38,\n  nlps: 35,\n  switchFlag: 0\n}, {\n  qe: 0x0111,\n  nmps: 39,\n  nlps: 36,\n  switchFlag: 0\n}, {\n  qe: 0x0085,\n  nmps: 40,\n  nlps: 37,\n  switchFlag: 0\n}, {\n  qe: 0x0049,\n  nmps: 41,\n  nlps: 38,\n  switchFlag: 0\n}, {\n  qe: 0x0025,\n  nmps: 42,\n  nlps: 39,\n  switchFlag: 0\n}, {\n  qe: 0x0015,\n  nmps: 43,\n  nlps: 40,\n  switchFlag: 0\n}, {\n  qe: 0x0009,\n  nmps: 44,\n  nlps: 41,\n  switchFlag: 0\n}, {\n  qe: 0x0005,\n  nmps: 45,\n  nlps: 42,\n  switchFlag: 0\n}, {\n  qe: 0x0001,\n  nmps: 45,\n  nlps: 43,\n  switchFlag: 0\n}, {\n  qe: 0x5601,\n  nmps: 46,\n  nlps: 46,\n  switchFlag: 0\n}];\n\nvar ArithmeticDecoder =\n/*#__PURE__*/\nfunction () {\n  function ArithmeticDecoder(data, start, end) {\n    _classCallCheck(this, ArithmeticDecoder);\n\n    this.data = data;\n    this.bp = start;\n    this.dataEnd = end;\n    this.chigh = data[start];\n    this.clow = 0;\n    this.byteIn();\n    this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F;\n    this.clow = this.clow << 7 & 0xFFFF;\n    this.ct -= 7;\n    this.a = 0x8000;\n  }\n\n  _createClass(ArithmeticDecoder, [{\n    key: \"byteIn\",\n    value: function byteIn() {\n      var data = this.data;\n      var bp = this.bp;\n\n      if (data[bp] === 0xFF) {\n        if (data[bp + 1] > 0x8F) {\n          this.clow += 0xFF00;\n          this.ct = 8;\n        } else {\n          bp++;\n          this.clow += data[bp] << 9;\n          this.ct = 7;\n          this.bp = bp;\n        }\n      } else {\n        bp++;\n        this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00;\n        this.ct = 8;\n        this.bp = bp;\n      }\n\n      if (this.clow > 0xFFFF) {\n        this.chigh += this.clow >> 16;\n        this.clow &= 0xFFFF;\n      }\n    }\n  }, {\n    key: \"readBit\",\n    value: function readBit(contexts, pos) {\n      var cx_index = contexts[pos] >> 1,\n          cx_mps = contexts[pos] & 1;\n      var qeTableIcx = QeTable[cx_index];\n      var qeIcx = qeTableIcx.qe;\n      var d;\n      var a = this.a - qeIcx;\n\n      if (this.chigh < qeIcx) {\n        if (a < qeIcx) {\n          a = qeIcx;\n          d = cx_mps;\n          cx_index = qeTableIcx.nmps;\n        } else {\n          a = qeIcx;\n          d = 1 ^ cx_mps;\n\n          if (qeTableIcx.switchFlag === 1) {\n            cx_mps = d;\n          }\n\n          cx_index = qeTableIcx.nlps;\n        }\n      } else {\n        this.chigh -= qeIcx;\n\n        if ((a & 0x8000) !== 0) {\n          this.a = a;\n          return cx_mps;\n        }\n\n        if (a < qeIcx) {\n          d = 1 ^ cx_mps;\n\n          if (qeTableIcx.switchFlag === 1) {\n            cx_mps = d;\n          }\n\n          cx_index = qeTableIcx.nlps;\n        } else {\n          d = cx_mps;\n          cx_index = qeTableIcx.nmps;\n        }\n      }\n\n      do {\n        if (this.ct === 0) {\n          this.byteIn();\n        }\n\n        a <<= 1;\n        this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1;\n        this.clow = this.clow << 1 & 0xFFFF;\n        this.ct--;\n      } while ((a & 0x8000) === 0);\n\n      this.a = a;\n      contexts[pos] = cx_index << 1 | cx_mps;\n      return d;\n    }\n  }]);\n\n  return ArithmeticDecoder;\n}();\n\nexports.ArithmeticDecoder = ArithmeticDecoder;\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpegStream = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _jpg = __w_pdfjs_require__(164);\n\nvar JpegStream = function JpegStreamClosure() {\n  function JpegStream(stream, maybeLength, dict, params) {\n    var ch;\n\n    while ((ch = stream.getByte()) !== -1) {\n      if (ch === 0xFF) {\n        stream.skip(-1);\n        break;\n      }\n    }\n\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  JpegStream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(JpegStream.prototype, 'bytes', {\n    get: function JpegStream_bytes() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  JpegStream.prototype.ensureBuffer = function (requested) {};\n\n  JpegStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jpegOptions = {\n      decodeTransform: undefined,\n      colorTransform: undefined\n    };\n    var decodeArr = this.dict.getArray('Decode', 'D');\n\n    if (this.forceRGB && Array.isArray(decodeArr)) {\n      var bitsPerComponent = this.dict.get('BitsPerComponent') || 8;\n      var decodeArrLength = decodeArr.length;\n      var transform = new Int32Array(decodeArrLength);\n      var transformNeeded = false;\n      var maxValue = (1 << bitsPerComponent) - 1;\n\n      for (var i = 0; i < decodeArrLength; i += 2) {\n        transform[i] = (decodeArr[i + 1] - decodeArr[i]) * 256 | 0;\n        transform[i + 1] = decodeArr[i] * maxValue | 0;\n\n        if (transform[i] !== 256 || transform[i + 1] !== 0) {\n          transformNeeded = true;\n        }\n      }\n\n      if (transformNeeded) {\n        jpegOptions.decodeTransform = transform;\n      }\n    }\n\n    if ((0, _primitives.isDict)(this.params)) {\n      var colorTransform = this.params.get('ColorTransform');\n\n      if (Number.isInteger(colorTransform)) {\n        jpegOptions.colorTransform = colorTransform;\n      }\n    }\n\n    var jpegImage = new _jpg.JpegImage(jpegOptions);\n    jpegImage.parse(this.bytes);\n    var data = jpegImage.getData({\n      width: this.drawWidth,\n      height: this.drawHeight,\n      forceRGB: this.forceRGB,\n      isSourcePDF: true\n    });\n    this.buffer = data;\n    this.bufferLength = data.length;\n    this.eof = true;\n  };\n\n  JpegStream.prototype.getIR = function () {\n    var forceDataSchema = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    return (0, _util.createObjectURL)(this.bytes, 'image/jpeg', forceDataSchema);\n  };\n\n  return JpegStream;\n}();\n\nexports.JpegStream = JpegStream;\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpegImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar JpegError = function JpegErrorClosure() {\n  function JpegError(msg) {\n    this.message = 'JPEG error: ' + msg;\n  }\n\n  JpegError.prototype = new Error();\n  JpegError.prototype.name = 'JpegError';\n  JpegError.constructor = JpegError;\n  return JpegError;\n}();\n\nvar DNLMarkerError = function DNLMarkerErrorClosure() {\n  function DNLMarkerError(message, scanLines) {\n    this.message = message;\n    this.scanLines = scanLines;\n  }\n\n  DNLMarkerError.prototype = new Error();\n  DNLMarkerError.prototype.name = 'DNLMarkerError';\n  DNLMarkerError.constructor = DNLMarkerError;\n  return DNLMarkerError;\n}();\n\nvar EOIMarkerError = function EOIMarkerErrorClosure() {\n  function EOIMarkerError(message) {\n    this.message = message;\n  }\n\n  EOIMarkerError.prototype = new Error();\n  EOIMarkerError.prototype.name = 'EOIMarkerError';\n  EOIMarkerError.constructor = EOIMarkerError;\n  return EOIMarkerError;\n}();\n\nvar JpegImage = function JpegImageClosure() {\n  var dctZigZag = new Uint8Array([0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63]);\n  var dctCos1 = 4017;\n  var dctSin1 = 799;\n  var dctCos3 = 3406;\n  var dctSin3 = 2276;\n  var dctCos6 = 1567;\n  var dctSin6 = 3784;\n  var dctSqrt2 = 5793;\n  var dctSqrt1d2 = 2896;\n\n  function JpegImage() {\n    var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n        _ref$decodeTransform = _ref.decodeTransform,\n        decodeTransform = _ref$decodeTransform === void 0 ? null : _ref$decodeTransform,\n        _ref$colorTransform = _ref.colorTransform,\n        colorTransform = _ref$colorTransform === void 0 ? -1 : _ref$colorTransform;\n\n    this._decodeTransform = decodeTransform;\n    this._colorTransform = colorTransform;\n  }\n\n  function buildHuffmanTable(codeLengths, values) {\n    var k = 0,\n        code = [],\n        i,\n        j,\n        length = 16;\n\n    while (length > 0 && !codeLengths[length - 1]) {\n      length--;\n    }\n\n    code.push({\n      children: [],\n      index: 0\n    });\n    var p = code[0],\n        q;\n\n    for (i = 0; i < length; i++) {\n      for (j = 0; j < codeLengths[i]; j++) {\n        p = code.pop();\n        p.children[p.index] = values[k];\n\n        while (p.index > 0) {\n          p = code.pop();\n        }\n\n        p.index++;\n        code.push(p);\n\n        while (code.length <= i) {\n          code.push(q = {\n            children: [],\n            index: 0\n          });\n          p.children[p.index] = q.children;\n          p = q;\n        }\n\n        k++;\n      }\n\n      if (i + 1 < length) {\n        code.push(q = {\n          children: [],\n          index: 0\n        });\n        p.children[p.index] = q.children;\n        p = q;\n      }\n    }\n\n    return code[0].children;\n  }\n\n  function getBlockBufferOffset(component, row, col) {\n    return 64 * ((component.blocksPerLine + 1) * row + col);\n  }\n\n  function decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successivePrev, successive) {\n    var parseDNLMarker = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : false;\n    var mcusPerLine = frame.mcusPerLine;\n    var progressive = frame.progressive;\n    var startOffset = offset,\n        bitsData = 0,\n        bitsCount = 0;\n\n    function readBit() {\n      if (bitsCount > 0) {\n        bitsCount--;\n        return bitsData >> bitsCount & 1;\n      }\n\n      bitsData = data[offset++];\n\n      if (bitsData === 0xFF) {\n        var nextByte = data[offset++];\n\n        if (nextByte) {\n          if (nextByte === 0xDC && parseDNLMarker) {\n            offset += 2;\n            var scanLines = data[offset++] << 8 | data[offset++];\n\n            if (scanLines > 0 && scanLines !== frame.scanLines) {\n              throw new DNLMarkerError('Found DNL marker (0xFFDC) while parsing scan data', scanLines);\n            }\n          } else if (nextByte === 0xD9) {\n            throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data');\n          }\n\n          throw new JpegError(\"unexpected marker \".concat((bitsData << 8 | nextByte).toString(16)));\n        }\n      }\n\n      bitsCount = 7;\n      return bitsData >>> 7;\n    }\n\n    function decodeHuffman(tree) {\n      var node = tree;\n\n      while (true) {\n        node = node[readBit()];\n\n        if (typeof node === 'number') {\n          return node;\n        }\n\n        if (_typeof(node) !== 'object') {\n          throw new JpegError('invalid huffman sequence');\n        }\n      }\n    }\n\n    function receive(length) {\n      var n = 0;\n\n      while (length > 0) {\n        n = n << 1 | readBit();\n        length--;\n      }\n\n      return n;\n    }\n\n    function receiveAndExtend(length) {\n      if (length === 1) {\n        return readBit() === 1 ? 1 : -1;\n      }\n\n      var n = receive(length);\n\n      if (n >= 1 << length - 1) {\n        return n;\n      }\n\n      return n + (-1 << length) + 1;\n    }\n\n    function decodeBaseline(component, offset) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t);\n      component.blockData[offset] = component.pred += diff;\n      var k = 1;\n\n      while (k < 64) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15,\n            r = rs >> 4;\n\n        if (s === 0) {\n          if (r < 15) {\n            break;\n          }\n\n          k += 16;\n          continue;\n        }\n\n        k += r;\n        var z = dctZigZag[k];\n        component.blockData[offset + z] = receiveAndExtend(s);\n        k++;\n      }\n    }\n\n    function decodeDCFirst(component, offset) {\n      var t = decodeHuffman(component.huffmanTableDC);\n      var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n      component.blockData[offset] = component.pred += diff;\n    }\n\n    function decodeDCSuccessive(component, offset) {\n      component.blockData[offset] |= readBit() << successive;\n    }\n\n    var eobrun = 0;\n\n    function decodeACFirst(component, offset) {\n      if (eobrun > 0) {\n        eobrun--;\n        return;\n      }\n\n      var k = spectralStart,\n          e = spectralEnd;\n\n      while (k <= e) {\n        var rs = decodeHuffman(component.huffmanTableAC);\n        var s = rs & 15,\n            r = rs >> 4;\n\n        if (s === 0) {\n          if (r < 15) {\n            eobrun = receive(r) + (1 << r) - 1;\n            break;\n          }\n\n          k += 16;\n          continue;\n        }\n\n        k += r;\n        var z = dctZigZag[k];\n        component.blockData[offset + z] = receiveAndExtend(s) * (1 << successive);\n        k++;\n      }\n    }\n\n    var successiveACState = 0,\n        successiveACNextValue;\n\n    function decodeACSuccessive(component, offset) {\n      var k = spectralStart;\n      var e = spectralEnd;\n      var r = 0;\n      var s;\n      var rs;\n\n      while (k <= e) {\n        var offsetZ = offset + dctZigZag[k];\n        var sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n\n        switch (successiveACState) {\n          case 0:\n            rs = decodeHuffman(component.huffmanTableAC);\n            s = rs & 15;\n            r = rs >> 4;\n\n            if (s === 0) {\n              if (r < 15) {\n                eobrun = receive(r) + (1 << r);\n                successiveACState = 4;\n              } else {\n                r = 16;\n                successiveACState = 1;\n              }\n            } else {\n              if (s !== 1) {\n                throw new JpegError('invalid ACn encoding');\n              }\n\n              successiveACNextValue = receiveAndExtend(s);\n              successiveACState = r ? 2 : 3;\n            }\n\n            continue;\n\n          case 1:\n          case 2:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            } else {\n              r--;\n\n              if (r === 0) {\n                successiveACState = successiveACState === 2 ? 3 : 0;\n              }\n            }\n\n            break;\n\n          case 3:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            } else {\n              component.blockData[offsetZ] = successiveACNextValue << successive;\n              successiveACState = 0;\n            }\n\n            break;\n\n          case 4:\n            if (component.blockData[offsetZ]) {\n              component.blockData[offsetZ] += sign * (readBit() << successive);\n            }\n\n            break;\n        }\n\n        k++;\n      }\n\n      if (successiveACState === 4) {\n        eobrun--;\n\n        if (eobrun === 0) {\n          successiveACState = 0;\n        }\n      }\n    }\n\n    function decodeMcu(component, decode, mcu, row, col) {\n      var mcuRow = mcu / mcusPerLine | 0;\n      var mcuCol = mcu % mcusPerLine;\n      var blockRow = mcuRow * component.v + row;\n      var blockCol = mcuCol * component.h + col;\n      var offset = getBlockBufferOffset(component, blockRow, blockCol);\n      decode(component, offset);\n    }\n\n    function decodeBlock(component, decode, mcu) {\n      var blockRow = mcu / component.blocksPerLine | 0;\n      var blockCol = mcu % component.blocksPerLine;\n      var offset = getBlockBufferOffset(component, blockRow, blockCol);\n      decode(component, offset);\n    }\n\n    var componentsLength = components.length;\n    var component, i, j, k, n;\n    var decodeFn;\n\n    if (progressive) {\n      if (spectralStart === 0) {\n        decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n      } else {\n        decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n      }\n    } else {\n      decodeFn = decodeBaseline;\n    }\n\n    var mcu = 0,\n        fileMarker;\n    var mcuExpected;\n\n    if (componentsLength === 1) {\n      mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n    } else {\n      mcuExpected = mcusPerLine * frame.mcusPerColumn;\n    }\n\n    var h, v;\n\n    while (mcu < mcuExpected) {\n      var mcuToRead = resetInterval ? Math.min(mcuExpected - mcu, resetInterval) : mcuExpected;\n\n      for (i = 0; i < componentsLength; i++) {\n        components[i].pred = 0;\n      }\n\n      eobrun = 0;\n\n      if (componentsLength === 1) {\n        component = components[0];\n\n        for (n = 0; n < mcuToRead; n++) {\n          decodeBlock(component, decodeFn, mcu);\n          mcu++;\n        }\n      } else {\n        for (n = 0; n < mcuToRead; n++) {\n          for (i = 0; i < componentsLength; i++) {\n            component = components[i];\n            h = component.h;\n            v = component.v;\n\n            for (j = 0; j < v; j++) {\n              for (k = 0; k < h; k++) {\n                decodeMcu(component, decodeFn, mcu, j, k);\n              }\n            }\n          }\n\n          mcu++;\n        }\n      }\n\n      bitsCount = 0;\n      fileMarker = findNextFileMarker(data, offset);\n\n      if (fileMarker && fileMarker.invalid) {\n        (0, _util.warn)('decodeScan - unexpected MCU data, current marker is: ' + fileMarker.invalid);\n        offset = fileMarker.offset;\n      }\n\n      var marker = fileMarker && fileMarker.marker;\n\n      if (!marker || marker <= 0xFF00) {\n        throw new JpegError('marker was not found');\n      }\n\n      if (marker >= 0xFFD0 && marker <= 0xFFD7) {\n        offset += 2;\n      } else {\n        break;\n      }\n    }\n\n    fileMarker = findNextFileMarker(data, offset);\n\n    if (fileMarker && fileMarker.invalid) {\n      (0, _util.warn)('decodeScan - unexpected Scan data, current marker is: ' + fileMarker.invalid);\n      offset = fileMarker.offset;\n    }\n\n    return offset - startOffset;\n  }\n\n  function quantizeAndInverse(component, blockBufferOffset, p) {\n    var qt = component.quantizationTable,\n        blockData = component.blockData;\n    var v0, v1, v2, v3, v4, v5, v6, v7;\n    var p0, p1, p2, p3, p4, p5, p6, p7;\n    var t;\n\n    if (!qt) {\n      throw new JpegError('missing required Quantization Table.');\n    }\n\n    for (var row = 0; row < 64; row += 8) {\n      p0 = blockData[blockBufferOffset + row];\n      p1 = blockData[blockBufferOffset + row + 1];\n      p2 = blockData[blockBufferOffset + row + 2];\n      p3 = blockData[blockBufferOffset + row + 3];\n      p4 = blockData[blockBufferOffset + row + 4];\n      p5 = blockData[blockBufferOffset + row + 5];\n      p6 = blockData[blockBufferOffset + row + 6];\n      p7 = blockData[blockBufferOffset + row + 7];\n      p0 *= qt[row];\n\n      if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n        t = dctSqrt2 * p0 + 512 >> 10;\n        p[row] = t;\n        p[row + 1] = t;\n        p[row + 2] = t;\n        p[row + 3] = t;\n        p[row + 4] = t;\n        p[row + 5] = t;\n        p[row + 6] = t;\n        p[row + 7] = t;\n        continue;\n      }\n\n      p1 *= qt[row + 1];\n      p2 *= qt[row + 2];\n      p3 *= qt[row + 3];\n      p4 *= qt[row + 4];\n      p5 *= qt[row + 5];\n      p6 *= qt[row + 6];\n      p7 *= qt[row + 7];\n      v0 = dctSqrt2 * p0 + 128 >> 8;\n      v1 = dctSqrt2 * p4 + 128 >> 8;\n      v2 = p2;\n      v3 = p6;\n      v4 = dctSqrt1d2 * (p1 - p7) + 128 >> 8;\n      v7 = dctSqrt1d2 * (p1 + p7) + 128 >> 8;\n      v5 = p3 << 4;\n      v6 = p5 << 4;\n      v0 = v0 + v1 + 1 >> 1;\n      v1 = v0 - v1;\n      t = v2 * dctSin6 + v3 * dctCos6 + 128 >> 8;\n      v2 = v2 * dctCos6 - v3 * dctSin6 + 128 >> 8;\n      v3 = t;\n      v4 = v4 + v6 + 1 >> 1;\n      v6 = v4 - v6;\n      v7 = v7 + v5 + 1 >> 1;\n      v5 = v7 - v5;\n      v0 = v0 + v3 + 1 >> 1;\n      v3 = v0 - v3;\n      v1 = v1 + v2 + 1 >> 1;\n      v2 = v1 - v2;\n      t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n      v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n      v7 = t;\n      t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n      v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n      v6 = t;\n      p[row] = v0 + v7;\n      p[row + 7] = v0 - v7;\n      p[row + 1] = v1 + v6;\n      p[row + 6] = v1 - v6;\n      p[row + 2] = v2 + v5;\n      p[row + 5] = v2 - v5;\n      p[row + 3] = v3 + v4;\n      p[row + 4] = v3 - v4;\n    }\n\n    for (var col = 0; col < 8; ++col) {\n      p0 = p[col];\n      p1 = p[col + 8];\n      p2 = p[col + 16];\n      p3 = p[col + 24];\n      p4 = p[col + 32];\n      p5 = p[col + 40];\n      p6 = p[col + 48];\n      p7 = p[col + 56];\n\n      if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n        t = dctSqrt2 * p0 + 8192 >> 14;\n        t = t < -2040 ? 0 : t >= 2024 ? 255 : t + 2056 >> 4;\n        blockData[blockBufferOffset + col] = t;\n        blockData[blockBufferOffset + col + 8] = t;\n        blockData[blockBufferOffset + col + 16] = t;\n        blockData[blockBufferOffset + col + 24] = t;\n        blockData[blockBufferOffset + col + 32] = t;\n        blockData[blockBufferOffset + col + 40] = t;\n        blockData[blockBufferOffset + col + 48] = t;\n        blockData[blockBufferOffset + col + 56] = t;\n        continue;\n      }\n\n      v0 = dctSqrt2 * p0 + 2048 >> 12;\n      v1 = dctSqrt2 * p4 + 2048 >> 12;\n      v2 = p2;\n      v3 = p6;\n      v4 = dctSqrt1d2 * (p1 - p7) + 2048 >> 12;\n      v7 = dctSqrt1d2 * (p1 + p7) + 2048 >> 12;\n      v5 = p3;\n      v6 = p5;\n      v0 = (v0 + v1 + 1 >> 1) + 4112;\n      v1 = v0 - v1;\n      t = v2 * dctSin6 + v3 * dctCos6 + 2048 >> 12;\n      v2 = v2 * dctCos6 - v3 * dctSin6 + 2048 >> 12;\n      v3 = t;\n      v4 = v4 + v6 + 1 >> 1;\n      v6 = v4 - v6;\n      v7 = v7 + v5 + 1 >> 1;\n      v5 = v7 - v5;\n      v0 = v0 + v3 + 1 >> 1;\n      v3 = v0 - v3;\n      v1 = v1 + v2 + 1 >> 1;\n      v2 = v1 - v2;\n      t = v4 * dctSin3 + v7 * dctCos3 + 2048 >> 12;\n      v4 = v4 * dctCos3 - v7 * dctSin3 + 2048 >> 12;\n      v7 = t;\n      t = v5 * dctSin1 + v6 * dctCos1 + 2048 >> 12;\n      v5 = v5 * dctCos1 - v6 * dctSin1 + 2048 >> 12;\n      v6 = t;\n      p0 = v0 + v7;\n      p7 = v0 - v7;\n      p1 = v1 + v6;\n      p6 = v1 - v6;\n      p2 = v2 + v5;\n      p5 = v2 - v5;\n      p3 = v3 + v4;\n      p4 = v3 - v4;\n      p0 = p0 < 16 ? 0 : p0 >= 4080 ? 255 : p0 >> 4;\n      p1 = p1 < 16 ? 0 : p1 >= 4080 ? 255 : p1 >> 4;\n      p2 = p2 < 16 ? 0 : p2 >= 4080 ? 255 : p2 >> 4;\n      p3 = p3 < 16 ? 0 : p3 >= 4080 ? 255 : p3 >> 4;\n      p4 = p4 < 16 ? 0 : p4 >= 4080 ? 255 : p4 >> 4;\n      p5 = p5 < 16 ? 0 : p5 >= 4080 ? 255 : p5 >> 4;\n      p6 = p6 < 16 ? 0 : p6 >= 4080 ? 255 : p6 >> 4;\n      p7 = p7 < 16 ? 0 : p7 >= 4080 ? 255 : p7 >> 4;\n      blockData[blockBufferOffset + col] = p0;\n      blockData[blockBufferOffset + col + 8] = p1;\n      blockData[blockBufferOffset + col + 16] = p2;\n      blockData[blockBufferOffset + col + 24] = p3;\n      blockData[blockBufferOffset + col + 32] = p4;\n      blockData[blockBufferOffset + col + 40] = p5;\n      blockData[blockBufferOffset + col + 48] = p6;\n      blockData[blockBufferOffset + col + 56] = p7;\n    }\n  }\n\n  function buildComponentData(frame, component) {\n    var blocksPerLine = component.blocksPerLine;\n    var blocksPerColumn = component.blocksPerColumn;\n    var computationBuffer = new Int16Array(64);\n\n    for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n      for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n        var offset = getBlockBufferOffset(component, blockRow, blockCol);\n        quantizeAndInverse(component, offset, computationBuffer);\n      }\n    }\n\n    return component.blockData;\n  }\n\n  function findNextFileMarker(data, currentPos) {\n    var startPos = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentPos;\n\n    function peekUint16(pos) {\n      return data[pos] << 8 | data[pos + 1];\n    }\n\n    var maxPos = data.length - 1;\n    var newPos = startPos < currentPos ? startPos : currentPos;\n\n    if (currentPos >= maxPos) {\n      return null;\n    }\n\n    var currentMarker = peekUint16(currentPos);\n\n    if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) {\n      return {\n        invalid: null,\n        marker: currentMarker,\n        offset: currentPos\n      };\n    }\n\n    var newMarker = peekUint16(newPos);\n\n    while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) {\n      if (++newPos >= maxPos) {\n        return null;\n      }\n\n      newMarker = peekUint16(newPos);\n    }\n\n    return {\n      invalid: currentMarker.toString(16),\n      marker: newMarker,\n      offset: newPos\n    };\n  }\n\n  JpegImage.prototype = {\n    parse: function parse(data) {\n      var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n          _ref2$dnlScanLines = _ref2.dnlScanLines,\n          dnlScanLines = _ref2$dnlScanLines === void 0 ? null : _ref2$dnlScanLines;\n\n      function readUint16() {\n        var value = data[offset] << 8 | data[offset + 1];\n        offset += 2;\n        return value;\n      }\n\n      function readDataBlock() {\n        var length = readUint16();\n        var endOffset = offset + length - 2;\n        var fileMarker = findNextFileMarker(data, endOffset, offset);\n\n        if (fileMarker && fileMarker.invalid) {\n          (0, _util.warn)('readDataBlock - incorrect length, current marker is: ' + fileMarker.invalid);\n          endOffset = fileMarker.offset;\n        }\n\n        var array = data.subarray(offset, endOffset);\n        offset += array.length;\n        return array;\n      }\n\n      function prepareComponents(frame) {\n        var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n        var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n\n        for (var i = 0; i < frame.components.length; i++) {\n          component = frame.components[i];\n          var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / frame.maxH);\n          var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / frame.maxV);\n          var blocksPerLineForMcu = mcusPerLine * component.h;\n          var blocksPerColumnForMcu = mcusPerColumn * component.v;\n          var blocksBufferSize = 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n          component.blockData = new Int16Array(blocksBufferSize);\n          component.blocksPerLine = blocksPerLine;\n          component.blocksPerColumn = blocksPerColumn;\n        }\n\n        frame.mcusPerLine = mcusPerLine;\n        frame.mcusPerColumn = mcusPerColumn;\n      }\n\n      var offset = 0;\n      var jfif = null;\n      var adobe = null;\n      var frame, resetInterval;\n      var numSOSMarkers = 0;\n      var quantizationTables = [];\n      var huffmanTablesAC = [],\n          huffmanTablesDC = [];\n      var fileMarker = readUint16();\n\n      if (fileMarker !== 0xFFD8) {\n        throw new JpegError('SOI not found');\n      }\n\n      fileMarker = readUint16();\n\n      markerLoop: while (fileMarker !== 0xFFD9) {\n        var i, j, l;\n\n        switch (fileMarker) {\n          case 0xFFE0:\n          case 0xFFE1:\n          case 0xFFE2:\n          case 0xFFE3:\n          case 0xFFE4:\n          case 0xFFE5:\n          case 0xFFE6:\n          case 0xFFE7:\n          case 0xFFE8:\n          case 0xFFE9:\n          case 0xFFEA:\n          case 0xFFEB:\n          case 0xFFEC:\n          case 0xFFED:\n          case 0xFFEE:\n          case 0xFFEF:\n          case 0xFFFE:\n            var appData = readDataBlock();\n\n            if (fileMarker === 0xFFE0) {\n              if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && appData[3] === 0x46 && appData[4] === 0) {\n                jfif = {\n                  version: {\n                    major: appData[5],\n                    minor: appData[6]\n                  },\n                  densityUnits: appData[7],\n                  xDensity: appData[8] << 8 | appData[9],\n                  yDensity: appData[10] << 8 | appData[11],\n                  thumbWidth: appData[12],\n                  thumbHeight: appData[13],\n                  thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13])\n                };\n              }\n            }\n\n            if (fileMarker === 0xFFEE) {\n              if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && appData[3] === 0x62 && appData[4] === 0x65) {\n                adobe = {\n                  version: appData[5] << 8 | appData[6],\n                  flags0: appData[7] << 8 | appData[8],\n                  flags1: appData[9] << 8 | appData[10],\n                  transformCode: appData[11]\n                };\n              }\n            }\n\n            break;\n\n          case 0xFFDB:\n            var quantizationTablesLength = readUint16();\n            var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n            var z;\n\n            while (offset < quantizationTablesEnd) {\n              var quantizationTableSpec = data[offset++];\n              var tableData = new Uint16Array(64);\n\n              if (quantizationTableSpec >> 4 === 0) {\n                for (j = 0; j < 64; j++) {\n                  z = dctZigZag[j];\n                  tableData[z] = data[offset++];\n                }\n              } else if (quantizationTableSpec >> 4 === 1) {\n                for (j = 0; j < 64; j++) {\n                  z = dctZigZag[j];\n                  tableData[z] = readUint16();\n                }\n              } else {\n                throw new JpegError('DQT - invalid table spec');\n              }\n\n              quantizationTables[quantizationTableSpec & 15] = tableData;\n            }\n\n            break;\n\n          case 0xFFC0:\n          case 0xFFC1:\n          case 0xFFC2:\n            if (frame) {\n              throw new JpegError('Only single frame JPEGs supported');\n            }\n\n            readUint16();\n            frame = {};\n            frame.extended = fileMarker === 0xFFC1;\n            frame.progressive = fileMarker === 0xFFC2;\n            frame.precision = data[offset++];\n            var sofScanLines = readUint16();\n            frame.scanLines = dnlScanLines || sofScanLines;\n            frame.samplesPerLine = readUint16();\n            frame.components = [];\n            frame.componentIds = {};\n            var componentsCount = data[offset++],\n                componentId;\n            var maxH = 0,\n                maxV = 0;\n\n            for (i = 0; i < componentsCount; i++) {\n              componentId = data[offset];\n              var h = data[offset + 1] >> 4;\n              var v = data[offset + 1] & 15;\n\n              if (maxH < h) {\n                maxH = h;\n              }\n\n              if (maxV < v) {\n                maxV = v;\n              }\n\n              var qId = data[offset + 2];\n              l = frame.components.push({\n                h: h,\n                v: v,\n                quantizationId: qId,\n                quantizationTable: null\n              });\n              frame.componentIds[componentId] = l - 1;\n              offset += 3;\n            }\n\n            frame.maxH = maxH;\n            frame.maxV = maxV;\n            prepareComponents(frame);\n            break;\n\n          case 0xFFC4:\n            var huffmanLength = readUint16();\n\n            for (i = 2; i < huffmanLength;) {\n              var huffmanTableSpec = data[offset++];\n              var codeLengths = new Uint8Array(16);\n              var codeLengthSum = 0;\n\n              for (j = 0; j < 16; j++, offset++) {\n                codeLengthSum += codeLengths[j] = data[offset];\n              }\n\n              var huffmanValues = new Uint8Array(codeLengthSum);\n\n              for (j = 0; j < codeLengthSum; j++, offset++) {\n                huffmanValues[j] = data[offset];\n              }\n\n              i += 17 + codeLengthSum;\n              (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = buildHuffmanTable(codeLengths, huffmanValues);\n            }\n\n            break;\n\n          case 0xFFDD:\n            readUint16();\n            resetInterval = readUint16();\n            break;\n\n          case 0xFFDA:\n            var parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n            readUint16();\n            var selectorsCount = data[offset++];\n            var components = [],\n                component;\n\n            for (i = 0; i < selectorsCount; i++) {\n              var componentIndex = frame.componentIds[data[offset++]];\n              component = frame.components[componentIndex];\n              var tableSpec = data[offset++];\n              component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n              component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n              components.push(component);\n            }\n\n            var spectralStart = data[offset++];\n            var spectralEnd = data[offset++];\n            var successiveApproximation = data[offset++];\n\n            try {\n              var processed = decodeScan(data, offset, frame, components, resetInterval, spectralStart, spectralEnd, successiveApproximation >> 4, successiveApproximation & 15, parseDNLMarker);\n              offset += processed;\n            } catch (ex) {\n              if (ex instanceof DNLMarkerError) {\n                (0, _util.warn)(\"\".concat(ex.message, \" -- attempting to re-parse the JPEG image.\"));\n                return this.parse(data, {\n                  dnlScanLines: ex.scanLines\n                });\n              } else if (ex instanceof EOIMarkerError) {\n                (0, _util.warn)(\"\".concat(ex.message, \" -- ignoring the rest of the image data.\"));\n                break markerLoop;\n              }\n\n              throw ex;\n            }\n\n            break;\n\n          case 0xFFDC:\n            offset += 4;\n            break;\n\n          case 0xFFFF:\n            if (data[offset] !== 0xFF) {\n              offset--;\n            }\n\n            break;\n\n          default:\n            if (data[offset - 3] === 0xFF && data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) {\n              offset -= 3;\n              break;\n            }\n\n            var nextFileMarker = findNextFileMarker(data, offset - 2);\n\n            if (nextFileMarker && nextFileMarker.invalid) {\n              (0, _util.warn)('JpegImage.parse - unexpected data, current marker is: ' + nextFileMarker.invalid);\n              offset = nextFileMarker.offset;\n              break;\n            }\n\n            throw new JpegError('unknown marker ' + fileMarker.toString(16));\n        }\n\n        fileMarker = readUint16();\n      }\n\n      this.width = frame.samplesPerLine;\n      this.height = frame.scanLines;\n      this.jfif = jfif;\n      this.adobe = adobe;\n      this.components = [];\n\n      for (i = 0; i < frame.components.length; i++) {\n        component = frame.components[i];\n        var quantizationTable = quantizationTables[component.quantizationId];\n\n        if (quantizationTable) {\n          component.quantizationTable = quantizationTable;\n        }\n\n        this.components.push({\n          output: buildComponentData(frame, component),\n          scaleX: component.h / frame.maxH,\n          scaleY: component.v / frame.maxV,\n          blocksPerLine: component.blocksPerLine,\n          blocksPerColumn: component.blocksPerColumn\n        });\n      }\n\n      this.numComponents = this.components.length;\n    },\n    _getLinearizedBlockData: function _getLinearizedBlockData(width, height) {\n      var isSourcePDF = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var scaleX = this.width / width,\n          scaleY = this.height / height;\n      var component, componentScaleX, componentScaleY, blocksPerScanline;\n      var x, y, i, j, k;\n      var index;\n      var offset = 0;\n      var output;\n      var numComponents = this.components.length;\n      var dataLength = width * height * numComponents;\n      var data = new Uint8ClampedArray(dataLength);\n      var xScaleBlockOffset = new Uint32Array(width);\n      var mask3LSB = 0xfffffff8;\n\n      for (i = 0; i < numComponents; i++) {\n        component = this.components[i];\n        componentScaleX = component.scaleX * scaleX;\n        componentScaleY = component.scaleY * scaleY;\n        offset = i;\n        output = component.output;\n        blocksPerScanline = component.blocksPerLine + 1 << 3;\n\n        for (x = 0; x < width; x++) {\n          j = 0 | x * componentScaleX;\n          xScaleBlockOffset[x] = (j & mask3LSB) << 3 | j & 7;\n        }\n\n        for (y = 0; y < height; y++) {\n          j = 0 | y * componentScaleY;\n          index = blocksPerScanline * (j & mask3LSB) | (j & 7) << 3;\n\n          for (x = 0; x < width; x++) {\n            data[offset] = output[index + xScaleBlockOffset[x]];\n            offset += numComponents;\n          }\n        }\n      }\n\n      var transform = this._decodeTransform;\n\n      if (!isSourcePDF && numComponents === 4 && !transform) {\n        transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n      }\n\n      if (transform) {\n        for (i = 0; i < dataLength;) {\n          for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n            data[i] = (data[i] * transform[k] >> 8) + transform[k + 1];\n          }\n        }\n      }\n\n      return data;\n    },\n\n    get _isColorConversionNeeded() {\n      if (this.adobe) {\n        return !!this.adobe.transformCode;\n      }\n\n      if (this.numComponents === 3) {\n        if (this._colorTransform === 0) {\n          return false;\n        }\n\n        return true;\n      }\n\n      if (this._colorTransform === 1) {\n        return true;\n      }\n\n      return false;\n    },\n\n    _convertYccToRgb: function convertYccToRgb(data) {\n      var Y, Cb, Cr;\n\n      for (var i = 0, length = data.length; i < length; i += 3) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        data[i] = Y - 179.456 + 1.402 * Cr;\n        data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n        data[i + 2] = Y - 226.816 + 1.772 * Cb;\n      }\n\n      return data;\n    },\n    _convertYcckToRgb: function convertYcckToRgb(data) {\n      var Y, Cb, Cr, k;\n      var offset = 0;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        k = data[i + 3];\n        data[offset++] = -122.67195406894 + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - 5.4080610064599e-5 * Y + 0.00048449797120281 * k - 0.154362151871126) + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - 0.00477271405408747 * k + 1.53380253221734) + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + 0.48357088451265) + k * (-0.000336197177618394 * k + 0.484791561490776);\n        data[offset++] = 107.268039397724 + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + 0.000659397001245577 * Y + 0.000426105652938837 * k - 0.176491792462875) + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + 0.000770482631801132 * k - 0.151051492775562) + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + 0.25802910206845) + k * (-0.000318913117588328 * k - 0.213742400323665);\n        data[offset++] = -20.810012546947 + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + 0.0020741088115012 * Y - 0.00288260236853442 * k + 0.814272968359295) + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + 0.000560833691242812 * k - 0.195152027534049) + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + 0.116935020465145) + k * (-0.000343531996510555 * k + 0.24165260232407);\n      }\n\n      return data.subarray(0, offset);\n    },\n    _convertYcckToCmyk: function convertYcckToCmyk(data) {\n      var Y, Cb, Cr;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        Y = data[i];\n        Cb = data[i + 1];\n        Cr = data[i + 2];\n        data[i] = 434.456 - Y - 1.402 * Cr;\n        data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n        data[i + 2] = 481.816 - Y - 1.772 * Cb;\n      }\n\n      return data;\n    },\n    _convertCmykToRgb: function convertCmykToRgb(data) {\n      var c, m, y, k;\n      var offset = 0;\n      var scale = 1 / 255;\n\n      for (var i = 0, length = data.length; i < length; i += 4) {\n        c = data[i] * scale;\n        m = data[i + 1] * scale;\n        y = data[i + 2] * scale;\n        k = data[i + 3] * scale;\n        data[offset++] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k - 285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y - 17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) - k * (21.86122147463605 * k + 189.48180835922747);\n        data[offset++] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k - 79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) - k * (20.737325471181034 * k + 187.80453709719578);\n        data[offset++] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k - 14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k - 193.58209356861505) - k * (22.33816807309886 * k + 180.12613974708367);\n      }\n\n      return data.subarray(0, offset);\n    },\n    getData: function getData(_ref3) {\n      var width = _ref3.width,\n          height = _ref3.height,\n          _ref3$forceRGB = _ref3.forceRGB,\n          forceRGB = _ref3$forceRGB === void 0 ? false : _ref3$forceRGB,\n          _ref3$isSourcePDF = _ref3.isSourcePDF,\n          isSourcePDF = _ref3$isSourcePDF === void 0 ? false : _ref3$isSourcePDF;\n\n      if (this.numComponents > 4) {\n        throw new JpegError('Unsupported color mode');\n      }\n\n      var data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n      if (this.numComponents === 1 && forceRGB) {\n        var dataLength = data.length;\n        var rgbData = new Uint8ClampedArray(dataLength * 3);\n        var offset = 0;\n\n        for (var i = 0; i < dataLength; i++) {\n          var grayColor = data[i];\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n          rgbData[offset++] = grayColor;\n        }\n\n        return rgbData;\n      } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n        return this._convertYccToRgb(data);\n      } else if (this.numComponents === 4) {\n        if (this._isColorConversionNeeded) {\n          if (forceRGB) {\n            return this._convertYcckToRgb(data);\n          }\n\n          return this._convertYcckToCmyk(data);\n        } else if (forceRGB) {\n          return this._convertCmykToRgb(data);\n        }\n      }\n\n      return data;\n    }\n  };\n  return JpegImage;\n}();\n\nexports.JpegImage = JpegImage;\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpxStream = void 0;\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jpx = __w_pdfjs_require__(166);\n\nvar _util = __w_pdfjs_require__(6);\n\nvar JpxStream = function JpxStreamClosure() {\n  function JpxStream(stream, maybeLength, dict, params) {\n    this.stream = stream;\n    this.maybeLength = maybeLength;\n    this.dict = dict;\n    this.params = params;\n\n    _stream.DecodeStream.call(this, maybeLength);\n  }\n\n  JpxStream.prototype = Object.create(_stream.DecodeStream.prototype);\n  Object.defineProperty(JpxStream.prototype, 'bytes', {\n    get: function JpxStream_bytes() {\n      return (0, _util.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));\n    },\n    configurable: true\n  });\n\n  JpxStream.prototype.ensureBuffer = function (requested) {};\n\n  JpxStream.prototype.readBlock = function () {\n    if (this.eof) {\n      return;\n    }\n\n    var jpxImage = new _jpx.JpxImage();\n    jpxImage.parse(this.bytes);\n    var width = jpxImage.width;\n    var height = jpxImage.height;\n    var componentsCount = jpxImage.componentsCount;\n    var tileCount = jpxImage.tiles.length;\n\n    if (tileCount === 1) {\n      this.buffer = jpxImage.tiles[0].items;\n    } else {\n      var data = new Uint8ClampedArray(width * height * componentsCount);\n\n      for (var k = 0; k < tileCount; k++) {\n        var tileComponents = jpxImage.tiles[k];\n        var tileWidth = tileComponents.width;\n        var tileHeight = tileComponents.height;\n        var tileLeft = tileComponents.left;\n        var tileTop = tileComponents.top;\n        var src = tileComponents.items;\n        var srcPosition = 0;\n        var dataPosition = (width * tileTop + tileLeft) * componentsCount;\n        var imgRowSize = width * componentsCount;\n        var tileRowSize = tileWidth * componentsCount;\n\n        for (var j = 0; j < tileHeight; j++) {\n          var rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n          data.set(rowBytes, dataPosition);\n          srcPosition += tileRowSize;\n          dataPosition += imgRowSize;\n        }\n      }\n\n      this.buffer = data;\n    }\n\n    this.bufferLength = this.buffer.length;\n    this.eof = true;\n  };\n\n  return JpxStream;\n}();\n\nexports.JpxStream = JpxStream;\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.JpxImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _arithmetic_decoder = __w_pdfjs_require__(162);\n\nvar JpxError = function JpxErrorClosure() {\n  function JpxError(msg) {\n    this.message = 'JPX error: ' + msg;\n  }\n\n  JpxError.prototype = new Error();\n  JpxError.prototype.name = 'JpxError';\n  JpxError.constructor = JpxError;\n  return JpxError;\n}();\n\nvar JpxImage = function JpxImageClosure() {\n  var SubbandsGainLog2 = {\n    'LL': 0,\n    'LH': 1,\n    'HL': 1,\n    'HH': 2\n  };\n\n  function JpxImage() {\n    this.failOnCorruptedImage = false;\n  }\n\n  JpxImage.prototype = {\n    parse: function JpxImage_parse(data) {\n      var head = (0, _util.readUint16)(data, 0);\n\n      if (head === 0xFF4F) {\n        this.parseCodestream(data, 0, data.length);\n        return;\n      }\n\n      var position = 0,\n          length = data.length;\n\n      while (position < length) {\n        var headerSize = 8;\n        var lbox = (0, _util.readUint32)(data, position);\n        var tbox = (0, _util.readUint32)(data, position + 4);\n        position += headerSize;\n\n        if (lbox === 1) {\n          lbox = (0, _util.readUint32)(data, position) * 4294967296 + (0, _util.readUint32)(data, position + 4);\n          position += 8;\n          headerSize += 8;\n        }\n\n        if (lbox === 0) {\n          lbox = length - position + headerSize;\n        }\n\n        if (lbox < headerSize) {\n          throw new JpxError('Invalid box field size');\n        }\n\n        var dataLength = lbox - headerSize;\n        var jumpDataLength = true;\n\n        switch (tbox) {\n          case 0x6A703268:\n            jumpDataLength = false;\n            break;\n\n          case 0x636F6C72:\n            var method = data[position];\n\n            if (method === 1) {\n              var colorspace = (0, _util.readUint32)(data, position + 3);\n\n              switch (colorspace) {\n                case 16:\n                case 17:\n                case 18:\n                  break;\n\n                default:\n                  (0, _util.warn)('Unknown colorspace ' + colorspace);\n                  break;\n              }\n            } else if (method === 2) {\n              (0, _util.info)('ICC profile not supported');\n            }\n\n            break;\n\n          case 0x6A703263:\n            this.parseCodestream(data, position, position + dataLength);\n            break;\n\n          case 0x6A502020:\n            if ((0, _util.readUint32)(data, position) !== 0x0d0a870a) {\n              (0, _util.warn)('Invalid JP2 signature');\n            }\n\n            break;\n\n          case 0x6A501A1A:\n          case 0x66747970:\n          case 0x72726571:\n          case 0x72657320:\n          case 0x69686472:\n            break;\n\n          default:\n            var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF);\n            (0, _util.warn)('Unsupported header type ' + tbox + ' (' + headerType + ')');\n            break;\n        }\n\n        if (jumpDataLength) {\n          position += dataLength;\n        }\n      }\n    },\n    parseImageProperties: function JpxImage_parseImageProperties(stream) {\n      var newByte = stream.getByte();\n\n      while (newByte >= 0) {\n        var oldByte = newByte;\n        newByte = stream.getByte();\n        var code = oldByte << 8 | newByte;\n\n        if (code === 0xFF51) {\n          stream.skip(4);\n          var Xsiz = stream.getInt32() >>> 0;\n          var Ysiz = stream.getInt32() >>> 0;\n          var XOsiz = stream.getInt32() >>> 0;\n          var YOsiz = stream.getInt32() >>> 0;\n          stream.skip(16);\n          var Csiz = stream.getUint16();\n          this.width = Xsiz - XOsiz;\n          this.height = Ysiz - YOsiz;\n          this.componentsCount = Csiz;\n          this.bitsPerComponent = 8;\n          return;\n        }\n      }\n\n      throw new JpxError('No size marker found in JPX stream');\n    },\n    parseCodestream: function JpxImage_parseCodestream(data, start, end) {\n      var context = {};\n      var doNotRecover = false;\n\n      try {\n        var position = start;\n\n        while (position + 1 < end) {\n          var code = (0, _util.readUint16)(data, position);\n          position += 2;\n          var length = 0,\n              j,\n              sqcd,\n              spqcds,\n              spqcdSize,\n              scalarExpounded,\n              tile;\n\n          switch (code) {\n            case 0xFF4F:\n              context.mainHeader = true;\n              break;\n\n            case 0xFFD9:\n              break;\n\n            case 0xFF51:\n              length = (0, _util.readUint16)(data, position);\n              var siz = {};\n              siz.Xsiz = (0, _util.readUint32)(data, position + 4);\n              siz.Ysiz = (0, _util.readUint32)(data, position + 8);\n              siz.XOsiz = (0, _util.readUint32)(data, position + 12);\n              siz.YOsiz = (0, _util.readUint32)(data, position + 16);\n              siz.XTsiz = (0, _util.readUint32)(data, position + 20);\n              siz.YTsiz = (0, _util.readUint32)(data, position + 24);\n              siz.XTOsiz = (0, _util.readUint32)(data, position + 28);\n              siz.YTOsiz = (0, _util.readUint32)(data, position + 32);\n              var componentsCount = (0, _util.readUint16)(data, position + 36);\n              siz.Csiz = componentsCount;\n              var components = [];\n              j = position + 38;\n\n              for (var i = 0; i < componentsCount; i++) {\n                var component = {\n                  precision: (data[j] & 0x7F) + 1,\n                  isSigned: !!(data[j] & 0x80),\n                  XRsiz: data[j + 1],\n                  YRsiz: data[j + 2]\n                };\n                j += 3;\n                calculateComponentDimensions(component, siz);\n                components.push(component);\n              }\n\n              context.SIZ = siz;\n              context.components = components;\n              calculateTileGrids(context, components);\n              context.QCC = [];\n              context.COC = [];\n              break;\n\n            case 0xFF5C:\n              length = (0, _util.readUint16)(data, position);\n              var qcd = {};\n              j = position + 2;\n              sqcd = data[j++];\n\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n\n                default:\n                  throw new Error('Invalid SQcd value ' + sqcd);\n              }\n\n              qcd.noQuantization = spqcdSize === 8;\n              qcd.scalarExpounded = scalarExpounded;\n              qcd.guardBits = sqcd >> 5;\n              spqcds = [];\n\n              while (j < length + position) {\n                var spqcd = {};\n\n                if (spqcdSize === 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                  j += 2;\n                }\n\n                spqcds.push(spqcd);\n              }\n\n              qcd.SPqcds = spqcds;\n\n              if (context.mainHeader) {\n                context.QCD = qcd;\n              } else {\n                context.currentTile.QCD = qcd;\n                context.currentTile.QCC = [];\n              }\n\n              break;\n\n            case 0xFF5D:\n              length = (0, _util.readUint16)(data, position);\n              var qcc = {};\n              j = position + 2;\n              var cqcc;\n\n              if (context.SIZ.Csiz < 257) {\n                cqcc = data[j++];\n              } else {\n                cqcc = (0, _util.readUint16)(data, j);\n                j += 2;\n              }\n\n              sqcd = data[j++];\n\n              switch (sqcd & 0x1F) {\n                case 0:\n                  spqcdSize = 8;\n                  scalarExpounded = true;\n                  break;\n\n                case 1:\n                  spqcdSize = 16;\n                  scalarExpounded = false;\n                  break;\n\n                case 2:\n                  spqcdSize = 16;\n                  scalarExpounded = true;\n                  break;\n\n                default:\n                  throw new Error('Invalid SQcd value ' + sqcd);\n              }\n\n              qcc.noQuantization = spqcdSize === 8;\n              qcc.scalarExpounded = scalarExpounded;\n              qcc.guardBits = sqcd >> 5;\n              spqcds = [];\n\n              while (j < length + position) {\n                spqcd = {};\n\n                if (spqcdSize === 8) {\n                  spqcd.epsilon = data[j++] >> 3;\n                  spqcd.mu = 0;\n                } else {\n                  spqcd.epsilon = data[j] >> 3;\n                  spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1];\n                  j += 2;\n                }\n\n                spqcds.push(spqcd);\n              }\n\n              qcc.SPqcds = spqcds;\n\n              if (context.mainHeader) {\n                context.QCC[cqcc] = qcc;\n              } else {\n                context.currentTile.QCC[cqcc] = qcc;\n              }\n\n              break;\n\n            case 0xFF52:\n              length = (0, _util.readUint16)(data, position);\n              var cod = {};\n              j = position + 2;\n              var scod = data[j++];\n              cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n              cod.sopMarkerUsed = !!(scod & 2);\n              cod.ephMarkerUsed = !!(scod & 4);\n              cod.progressionOrder = data[j++];\n              cod.layersCount = (0, _util.readUint16)(data, j);\n              j += 2;\n              cod.multipleComponentTransform = data[j++];\n              cod.decompositionLevelsCount = data[j++];\n              cod.xcb = (data[j++] & 0xF) + 2;\n              cod.ycb = (data[j++] & 0xF) + 2;\n              var blockStyle = data[j++];\n              cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n              cod.resetContextProbabilities = !!(blockStyle & 2);\n              cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n              cod.verticallyStripe = !!(blockStyle & 8);\n              cod.predictableTermination = !!(blockStyle & 16);\n              cod.segmentationSymbolUsed = !!(blockStyle & 32);\n              cod.reversibleTransformation = data[j++];\n\n              if (cod.entropyCoderWithCustomPrecincts) {\n                var precinctsSizes = [];\n\n                while (j < length + position) {\n                  var precinctsSize = data[j++];\n                  precinctsSizes.push({\n                    PPx: precinctsSize & 0xF,\n                    PPy: precinctsSize >> 4\n                  });\n                }\n\n                cod.precinctsSizes = precinctsSizes;\n              }\n\n              var unsupported = [];\n\n              if (cod.selectiveArithmeticCodingBypass) {\n                unsupported.push('selectiveArithmeticCodingBypass');\n              }\n\n              if (cod.resetContextProbabilities) {\n                unsupported.push('resetContextProbabilities');\n              }\n\n              if (cod.terminationOnEachCodingPass) {\n                unsupported.push('terminationOnEachCodingPass');\n              }\n\n              if (cod.verticallyStripe) {\n                unsupported.push('verticallyStripe');\n              }\n\n              if (cod.predictableTermination) {\n                unsupported.push('predictableTermination');\n              }\n\n              if (unsupported.length > 0) {\n                doNotRecover = true;\n                throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')');\n              }\n\n              if (context.mainHeader) {\n                context.COD = cod;\n              } else {\n                context.currentTile.COD = cod;\n                context.currentTile.COC = [];\n              }\n\n              break;\n\n            case 0xFF90:\n              length = (0, _util.readUint16)(data, position);\n              tile = {};\n              tile.index = (0, _util.readUint16)(data, position + 2);\n              tile.length = (0, _util.readUint32)(data, position + 4);\n              tile.dataEnd = tile.length + position - 2;\n              tile.partIndex = data[position + 8];\n              tile.partsCount = data[position + 9];\n              context.mainHeader = false;\n\n              if (tile.partIndex === 0) {\n                tile.COD = context.COD;\n                tile.COC = context.COC.slice(0);\n                tile.QCD = context.QCD;\n                tile.QCC = context.QCC.slice(0);\n              }\n\n              context.currentTile = tile;\n              break;\n\n            case 0xFF93:\n              tile = context.currentTile;\n\n              if (tile.partIndex === 0) {\n                initializeTile(context, tile.index);\n                buildPackets(context);\n              }\n\n              length = tile.dataEnd - position;\n              parseTilePackets(context, data, position, length);\n              break;\n\n            case 0xFF55:\n            case 0xFF57:\n            case 0xFF58:\n            case 0xFF64:\n              length = (0, _util.readUint16)(data, position);\n              break;\n\n            case 0xFF53:\n              throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented');\n\n            default:\n              throw new Error('Unknown codestream code: ' + code.toString(16));\n          }\n\n          position += length;\n        }\n      } catch (e) {\n        if (doNotRecover || this.failOnCorruptedImage) {\n          throw new JpxError(e.message);\n        } else {\n          (0, _util.warn)('JPX: Trying to recover from: ' + e.message);\n        }\n      }\n\n      this.tiles = transformComponents(context);\n      this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n      this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n      this.componentsCount = context.SIZ.Csiz;\n    }\n  };\n\n  function calculateComponentDimensions(component, siz) {\n    component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n    component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n    component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n    component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n    component.width = component.x1 - component.x0;\n    component.height = component.y1 - component.y0;\n  }\n\n  function calculateTileGrids(context, components) {\n    var siz = context.SIZ;\n    var tile,\n        tiles = [];\n    var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n    var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n\n    for (var q = 0; q < numYtiles; q++) {\n      for (var p = 0; p < numXtiles; p++) {\n        tile = {};\n        tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n        tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n        tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n        tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n        tile.width = tile.tx1 - tile.tx0;\n        tile.height = tile.ty1 - tile.ty0;\n        tile.components = [];\n        tiles.push(tile);\n      }\n    }\n\n    context.tiles = tiles;\n    var componentsCount = siz.Csiz;\n\n    for (var i = 0, ii = componentsCount; i < ii; i++) {\n      var component = components[i];\n\n      for (var j = 0, jj = tiles.length; j < jj; j++) {\n        var tileComponent = {};\n        tile = tiles[j];\n        tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n        tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n        tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n        tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n        tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n        tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n        tile.components[i] = tileComponent;\n      }\n    }\n  }\n\n  function getBlocksDimensions(context, component, r) {\n    var codOrCoc = component.codingStyleParameters;\n    var result = {};\n\n    if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n      result.PPx = 15;\n      result.PPy = 15;\n    } else {\n      result.PPx = codOrCoc.precinctsSizes[r].PPx;\n      result.PPy = codOrCoc.precinctsSizes[r].PPy;\n    }\n\n    result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx);\n    result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy);\n    return result;\n  }\n\n  function buildPrecincts(context, resolution, dimensions) {\n    var precinctWidth = 1 << dimensions.PPx;\n    var precinctHeight = 1 << dimensions.PPy;\n    var isZeroRes = resolution.resLevel === 0;\n    var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1);\n    var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1);\n    var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0;\n    var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0;\n    var numprecincts = numprecinctswide * numprecinctshigh;\n    resolution.precinctParameters = {\n      precinctWidth: precinctWidth,\n      precinctHeight: precinctHeight,\n      numprecinctswide: numprecinctswide,\n      numprecinctshigh: numprecinctshigh,\n      numprecincts: numprecincts,\n      precinctWidthInSubband: precinctWidthInSubband,\n      precinctHeightInSubband: precinctHeightInSubband\n    };\n  }\n\n  function buildCodeblocks(context, subband, dimensions) {\n    var xcb_ = dimensions.xcb_;\n    var ycb_ = dimensions.ycb_;\n    var codeblockWidth = 1 << xcb_;\n    var codeblockHeight = 1 << ycb_;\n    var cbx0 = subband.tbx0 >> xcb_;\n    var cby0 = subband.tby0 >> ycb_;\n    var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_;\n    var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_;\n    var precinctParameters = subband.resolution.precinctParameters;\n    var codeblocks = [];\n    var precincts = [];\n    var i, j, codeblock, precinctNumber;\n\n    for (j = cby0; j < cby1; j++) {\n      for (i = cbx0; i < cbx1; i++) {\n        codeblock = {\n          cbx: i,\n          cby: j,\n          tbx0: codeblockWidth * i,\n          tby0: codeblockHeight * j,\n          tbx1: codeblockWidth * (i + 1),\n          tby1: codeblockHeight * (j + 1)\n        };\n        codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n        codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n        codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n        codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n        var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband);\n        var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband);\n        precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n        codeblock.precinctNumber = precinctNumber;\n        codeblock.subbandType = subband.type;\n        codeblock.Lblock = 3;\n\n        if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) {\n          continue;\n        }\n\n        codeblocks.push(codeblock);\n        var precinct = precincts[precinctNumber];\n\n        if (precinct !== undefined) {\n          if (i < precinct.cbxMin) {\n            precinct.cbxMin = i;\n          } else if (i > precinct.cbxMax) {\n            precinct.cbxMax = i;\n          }\n\n          if (j < precinct.cbyMin) {\n            precinct.cbxMin = j;\n          } else if (j > precinct.cbyMax) {\n            precinct.cbyMax = j;\n          }\n        } else {\n          precincts[precinctNumber] = precinct = {\n            cbxMin: i,\n            cbyMin: j,\n            cbxMax: i,\n            cbyMax: j\n          };\n        }\n\n        codeblock.precinct = precinct;\n      }\n    }\n\n    subband.codeblockParameters = {\n      codeblockWidth: xcb_,\n      codeblockHeight: ycb_,\n      numcodeblockwide: cbx1 - cbx0 + 1,\n      numcodeblockhigh: cby1 - cby0 + 1\n    };\n    subband.codeblocks = codeblocks;\n    subband.precincts = precincts;\n  }\n\n  function createPacket(resolution, precinctNumber, layerNumber) {\n    var precinctCodeblocks = [];\n    var subbands = resolution.subbands;\n\n    for (var i = 0, ii = subbands.length; i < ii; i++) {\n      var subband = subbands[i];\n      var codeblocks = subband.codeblocks;\n\n      for (var j = 0, jj = codeblocks.length; j < jj; j++) {\n        var codeblock = codeblocks[j];\n\n        if (codeblock.precinctNumber !== precinctNumber) {\n          continue;\n        }\n\n        precinctCodeblocks.push(codeblock);\n      }\n    }\n\n    return {\n      layerNumber: layerNumber,\n      codeblocks: precinctCodeblocks\n    };\n  }\n\n  function LayerResolutionComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var l = 0,\n        r = 0,\n        i = 0,\n        k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; l < layersCount; l++) {\n        for (; r <= maxDecompositionLevelsCount; r++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n\n            k = 0;\n          }\n\n          i = 0;\n        }\n\n        r = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ResolutionLayerComponentPositionIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var maxDecompositionLevelsCount = 0;\n\n    for (var q = 0; q < componentsCount; q++) {\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var r = 0,\n        l = 0,\n        i = 0,\n        k = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; l < layersCount; l++) {\n          for (; i < componentsCount; i++) {\n            var component = tile.components[i];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            for (; k < numprecincts;) {\n              var packet = createPacket(resolution, k, l);\n              k++;\n              return packet;\n            }\n\n            k = 0;\n          }\n\n          i = 0;\n        }\n\n        l = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ResolutionPositionComponentLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var l, r, c, p;\n    var maxDecompositionLevelsCount = 0;\n\n    for (c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount);\n    }\n\n    var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1);\n\n    for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n      var maxNumPrecincts = 0;\n\n      for (c = 0; c < componentsCount; ++c) {\n        var resolutions = tile.components[c].resolutions;\n\n        if (r < resolutions.length) {\n          maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts);\n        }\n      }\n\n      maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n    }\n\n    l = 0;\n    r = 0;\n    c = 0;\n    p = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; r <= maxDecompositionLevelsCount; r++) {\n        for (; p < maxNumPrecinctsInLevel[r]; p++) {\n          for (; c < componentsCount; c++) {\n            var component = tile.components[c];\n\n            if (r > component.codingStyleParameters.decompositionLevelsCount) {\n              continue;\n            }\n\n            var resolution = component.resolutions[r];\n            var numprecincts = resolution.precinctParameters.numprecincts;\n\n            if (p >= numprecincts) {\n              continue;\n            }\n\n            for (; l < layersCount;) {\n              var packet = createPacket(resolution, p, l);\n              l++;\n              return packet;\n            }\n\n            l = 0;\n          }\n\n          c = 0;\n        }\n\n        p = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function PositionComponentResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var precinctsIterationSizes = precinctsSizes;\n    var l = 0,\n        r = 0,\n        c = 0,\n        px = 0,\n        py = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n        for (; px < precinctsIterationSizes.maxNumWide; px++) {\n          for (; c < componentsCount; c++) {\n            var component = tile.components[c];\n            var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale = precinctsSizes.components[c].resolutions[r];\n              var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n              if (k === null) {\n                continue;\n              }\n\n              for (; l < layersCount;) {\n                var packet = createPacket(resolution, k, l);\n                l++;\n                return packet;\n              }\n\n              l = 0;\n            }\n\n            r = 0;\n          }\n\n          c = 0;\n        }\n\n        px = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function ComponentPositionResolutionLayerIterator(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var layersCount = tile.codingStyleDefaultParameters.layersCount;\n    var componentsCount = siz.Csiz;\n    var precinctsSizes = getPrecinctSizesInImageScale(tile);\n    var l = 0,\n        r = 0,\n        c = 0,\n        px = 0,\n        py = 0;\n\n    this.nextPacket = function JpxImage_nextPacket() {\n      for (; c < componentsCount; ++c) {\n        var component = tile.components[c];\n        var precinctsIterationSizes = precinctsSizes.components[c];\n        var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n\n        for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n          for (; px < precinctsIterationSizes.maxNumWide; px++) {\n            for (; r <= decompositionLevelsCount; r++) {\n              var resolution = component.resolutions[r];\n              var sizeInImageScale = precinctsIterationSizes.resolutions[r];\n              var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution);\n\n              if (k === null) {\n                continue;\n              }\n\n              for (; l < layersCount;) {\n                var packet = createPacket(resolution, k, l);\n                l++;\n                return packet;\n              }\n\n              l = 0;\n            }\n\n            r = 0;\n          }\n\n          px = 0;\n        }\n\n        py = 0;\n      }\n\n      throw new JpxError('Out of packets');\n    };\n  }\n\n  function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) {\n    var posX = pxIndex * precinctIterationSizes.minWidth;\n    var posY = pyIndex * precinctIterationSizes.minHeight;\n\n    if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) {\n      return null;\n    }\n\n    var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide;\n    return posX / sizeInImageScale.height + startPrecinctRowIndex;\n  }\n\n  function getPrecinctSizesInImageScale(tile) {\n    var componentsCount = tile.components.length;\n    var minWidth = Number.MAX_VALUE;\n    var minHeight = Number.MAX_VALUE;\n    var maxNumWide = 0;\n    var maxNumHigh = 0;\n    var sizePerComponent = new Array(componentsCount);\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n      var sizePerResolution = new Array(decompositionLevelsCount + 1);\n      var minWidthCurrentComponent = Number.MAX_VALUE;\n      var minHeightCurrentComponent = Number.MAX_VALUE;\n      var maxNumWideCurrentComponent = 0;\n      var maxNumHighCurrentComponent = 0;\n      var scale = 1;\n\n      for (var r = decompositionLevelsCount; r >= 0; --r) {\n        var resolution = component.resolutions[r];\n        var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth;\n        var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight;\n        minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution);\n        minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution);\n        maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide);\n        maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh);\n        sizePerResolution[r] = {\n          width: widthCurrentResolution,\n          height: heightCurrentResolution\n        };\n        scale <<= 1;\n      }\n\n      minWidth = Math.min(minWidth, minWidthCurrentComponent);\n      minHeight = Math.min(minHeight, minHeightCurrentComponent);\n      maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n      maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n      sizePerComponent[c] = {\n        resolutions: sizePerResolution,\n        minWidth: minWidthCurrentComponent,\n        minHeight: minHeightCurrentComponent,\n        maxNumWide: maxNumWideCurrentComponent,\n        maxNumHigh: maxNumHighCurrentComponent\n      };\n    }\n\n    return {\n      components: sizePerComponent,\n      minWidth: minWidth,\n      minHeight: minHeight,\n      maxNumWide: maxNumWide,\n      maxNumHigh: maxNumHigh\n    };\n  }\n\n  function buildPackets(context) {\n    var siz = context.SIZ;\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var componentsCount = siz.Csiz;\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount;\n      var resolutions = [];\n      var subbands = [];\n\n      for (var r = 0; r <= decompositionLevelsCount; r++) {\n        var blocksDimensions = getBlocksDimensions(context, component, r);\n        var resolution = {};\n        var scale = 1 << decompositionLevelsCount - r;\n        resolution.trx0 = Math.ceil(component.tcx0 / scale);\n        resolution.try0 = Math.ceil(component.tcy0 / scale);\n        resolution.trx1 = Math.ceil(component.tcx1 / scale);\n        resolution.try1 = Math.ceil(component.tcy1 / scale);\n        resolution.resLevel = r;\n        buildPrecincts(context, resolution, blocksDimensions);\n        resolutions.push(resolution);\n        var subband;\n\n        if (r === 0) {\n          subband = {};\n          subband.type = 'LL';\n          subband.tbx0 = Math.ceil(component.tcx0 / scale);\n          subband.tby0 = Math.ceil(component.tcy0 / scale);\n          subband.tbx1 = Math.ceil(component.tcx1 / scale);\n          subband.tby1 = Math.ceil(component.tcy1 / scale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolution.subbands = [subband];\n        } else {\n          var bscale = 1 << decompositionLevelsCount - r + 1;\n          var resolutionSubbands = [];\n          subband = {};\n          subband.type = 'HL';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          subband = {};\n          subband.type = 'LH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          subband = {};\n          subband.type = 'HH';\n          subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n          subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n          subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n          subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n          subband.resolution = resolution;\n          buildCodeblocks(context, subband, blocksDimensions);\n          subbands.push(subband);\n          resolutionSubbands.push(subband);\n          resolution.subbands = resolutionSubbands;\n        }\n      }\n\n      component.resolutions = resolutions;\n      component.subbands = subbands;\n    }\n\n    var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n\n    switch (progressionOrder) {\n      case 0:\n        tile.packetsIterator = new LayerResolutionComponentPositionIterator(context);\n        break;\n\n      case 1:\n        tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context);\n        break;\n\n      case 2:\n        tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context);\n        break;\n\n      case 3:\n        tile.packetsIterator = new PositionComponentResolutionLayerIterator(context);\n        break;\n\n      case 4:\n        tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context);\n        break;\n\n      default:\n        throw new JpxError(\"Unsupported progression order \".concat(progressionOrder));\n    }\n  }\n\n  function parseTilePackets(context, data, offset, dataLength) {\n    var position = 0;\n    var buffer,\n        bufferSize = 0,\n        skipNextBit = false;\n\n    function readBits(count) {\n      while (bufferSize < count) {\n        var b = data[offset + position];\n        position++;\n\n        if (skipNextBit) {\n          buffer = buffer << 7 | b;\n          bufferSize += 7;\n          skipNextBit = false;\n        } else {\n          buffer = buffer << 8 | b;\n          bufferSize += 8;\n        }\n\n        if (b === 0xFF) {\n          skipNextBit = true;\n        }\n      }\n\n      bufferSize -= count;\n      return buffer >>> bufferSize & (1 << count) - 1;\n    }\n\n    function skipMarkerIfEqual(value) {\n      if (data[offset + position - 1] === 0xFF && data[offset + position] === value) {\n        skipBytes(1);\n        return true;\n      } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) {\n        skipBytes(2);\n        return true;\n      }\n\n      return false;\n    }\n\n    function skipBytes(count) {\n      position += count;\n    }\n\n    function alignToByte() {\n      bufferSize = 0;\n\n      if (skipNextBit) {\n        position++;\n        skipNextBit = false;\n      }\n    }\n\n    function readCodingpasses() {\n      if (readBits(1) === 0) {\n        return 1;\n      }\n\n      if (readBits(1) === 0) {\n        return 2;\n      }\n\n      var value = readBits(2);\n\n      if (value < 3) {\n        return value + 3;\n      }\n\n      value = readBits(5);\n\n      if (value < 31) {\n        return value + 6;\n      }\n\n      value = readBits(7);\n      return value + 37;\n    }\n\n    var tileIndex = context.currentTile.index;\n    var tile = context.tiles[tileIndex];\n    var sopMarkerUsed = context.COD.sopMarkerUsed;\n    var ephMarkerUsed = context.COD.ephMarkerUsed;\n    var packetsIterator = tile.packetsIterator;\n\n    while (position < dataLength) {\n      alignToByte();\n\n      if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n        skipBytes(4);\n      }\n\n      var packet = packetsIterator.nextPacket();\n\n      if (!readBits(1)) {\n        continue;\n      }\n\n      var layerNumber = packet.layerNumber;\n      var queue = [],\n          codeblock;\n\n      for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n        codeblock = packet.codeblocks[i];\n        var precinct = codeblock.precinct;\n        var codeblockColumn = codeblock.cbx - precinct.cbxMin;\n        var codeblockRow = codeblock.cby - precinct.cbyMin;\n        var codeblockIncluded = false;\n        var firstTimeInclusion = false;\n        var valueReady;\n\n        if (codeblock['included'] !== undefined) {\n          codeblockIncluded = !!readBits(1);\n        } else {\n          precinct = codeblock.precinct;\n          var inclusionTree, zeroBitPlanesTree;\n\n          if (precinct['inclusionTree'] !== undefined) {\n            inclusionTree = precinct.inclusionTree;\n          } else {\n            var width = precinct.cbxMax - precinct.cbxMin + 1;\n            var height = precinct.cbyMax - precinct.cbyMin + 1;\n            inclusionTree = new InclusionTree(width, height, layerNumber);\n            zeroBitPlanesTree = new TagTree(width, height);\n            precinct.inclusionTree = inclusionTree;\n            precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n          }\n\n          if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n            while (true) {\n              if (readBits(1)) {\n                valueReady = !inclusionTree.nextLevel();\n\n                if (valueReady) {\n                  codeblock.included = true;\n                  codeblockIncluded = firstTimeInclusion = true;\n                  break;\n                }\n              } else {\n                inclusionTree.incrementValue(layerNumber);\n                break;\n              }\n            }\n          }\n        }\n\n        if (!codeblockIncluded) {\n          continue;\n        }\n\n        if (firstTimeInclusion) {\n          zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n          zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n\n          while (true) {\n            if (readBits(1)) {\n              valueReady = !zeroBitPlanesTree.nextLevel();\n\n              if (valueReady) {\n                break;\n              }\n            } else {\n              zeroBitPlanesTree.incrementValue();\n            }\n          }\n\n          codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n        }\n\n        var codingpasses = readCodingpasses();\n\n        while (readBits(1)) {\n          codeblock.Lblock++;\n        }\n\n        var codingpassesLog2 = (0, _util.log2)(codingpasses);\n        var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock;\n        var codedDataLength = readBits(bits);\n        queue.push({\n          codeblock: codeblock,\n          codingpasses: codingpasses,\n          dataLength: codedDataLength\n        });\n      }\n\n      alignToByte();\n\n      if (ephMarkerUsed) {\n        skipMarkerIfEqual(0x92);\n      }\n\n      while (queue.length > 0) {\n        var packetItem = queue.shift();\n        codeblock = packetItem.codeblock;\n\n        if (codeblock['data'] === undefined) {\n          codeblock.data = [];\n        }\n\n        codeblock.data.push({\n          data: data,\n          start: offset + position,\n          end: offset + position + packetItem.dataLength,\n          codingpasses: packetItem.codingpasses\n        });\n        position += packetItem.dataLength;\n      }\n    }\n\n    return position;\n  }\n\n  function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) {\n    var x0 = subband.tbx0;\n    var y0 = subband.tby0;\n    var width = subband.tbx1 - subband.tbx0;\n    var codeblocks = subband.codeblocks;\n    var right = subband.type.charAt(0) === 'H' ? 1 : 0;\n    var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0;\n\n    for (var i = 0, ii = codeblocks.length; i < ii; ++i) {\n      var codeblock = codeblocks[i];\n      var blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n      var blockHeight = codeblock.tby1_ - codeblock.tby0_;\n\n      if (blockWidth === 0 || blockHeight === 0) {\n        continue;\n      }\n\n      if (codeblock['data'] === undefined) {\n        continue;\n      }\n\n      var bitModel, currentCodingpassType;\n      bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb);\n      currentCodingpassType = 2;\n      var data = codeblock.data,\n          totalLength = 0,\n          codingpasses = 0;\n      var j, jj, dataItem;\n\n      for (j = 0, jj = data.length; j < jj; j++) {\n        dataItem = data[j];\n        totalLength += dataItem.end - dataItem.start;\n        codingpasses += dataItem.codingpasses;\n      }\n\n      var encodedData = new Uint8Array(totalLength);\n      var position = 0;\n\n      for (j = 0, jj = data.length; j < jj; j++) {\n        dataItem = data[j];\n        var chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n        encodedData.set(chunk, position);\n        position += chunk.length;\n      }\n\n      var decoder = new _arithmetic_decoder.ArithmeticDecoder(encodedData, 0, totalLength);\n      bitModel.setDecoder(decoder);\n\n      for (j = 0; j < codingpasses; j++) {\n        switch (currentCodingpassType) {\n          case 0:\n            bitModel.runSignificancePropagationPass();\n            break;\n\n          case 1:\n            bitModel.runMagnitudeRefinementPass();\n            break;\n\n          case 2:\n            bitModel.runCleanupPass();\n\n            if (segmentationSymbolUsed) {\n              bitModel.checkSegmentationSymbol();\n            }\n\n            break;\n        }\n\n        currentCodingpassType = (currentCodingpassType + 1) % 3;\n      }\n\n      var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n      var sign = bitModel.coefficentsSign;\n      var magnitude = bitModel.coefficentsMagnitude;\n      var bitsDecoded = bitModel.bitsDecoded;\n      var magnitudeCorrection = reversible ? 0 : 0.5;\n      var k, n, nb;\n      position = 0;\n      var interleave = subband.type !== 'LL';\n\n      for (j = 0; j < blockHeight; j++) {\n        var row = offset / width | 0;\n        var levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n\n        for (k = 0; k < blockWidth; k++) {\n          n = magnitude[position];\n\n          if (n !== 0) {\n            n = (n + magnitudeCorrection) * delta;\n\n            if (sign[position] !== 0) {\n              n = -n;\n            }\n\n            nb = bitsDecoded[position];\n            var pos = interleave ? levelOffset + (offset << 1) : offset;\n\n            if (reversible && nb >= mb) {\n              coefficients[pos] = n;\n            } else {\n              coefficients[pos] = n * (1 << mb - nb);\n            }\n          }\n\n          offset++;\n          position++;\n        }\n\n        offset += width - blockWidth;\n      }\n    }\n  }\n\n  function transformTile(context, tile, c) {\n    var component = tile.components[c];\n    var codingStyleParameters = component.codingStyleParameters;\n    var quantizationParameters = component.quantizationParameters;\n    var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount;\n    var spqcds = quantizationParameters.SPqcds;\n    var scalarExpounded = quantizationParameters.scalarExpounded;\n    var guardBits = quantizationParameters.guardBits;\n    var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n    var precision = context.components[c].precision;\n    var reversible = codingStyleParameters.reversibleTransformation;\n    var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform();\n    var subbandCoefficients = [];\n    var b = 0;\n\n    for (var i = 0; i <= decompositionLevelsCount; i++) {\n      var resolution = component.resolutions[i];\n      var width = resolution.trx1 - resolution.trx0;\n      var height = resolution.try1 - resolution.try0;\n      var coefficients = new Float32Array(width * height);\n\n      for (var j = 0, jj = resolution.subbands.length; j < jj; j++) {\n        var mu, epsilon;\n\n        if (!scalarExpounded) {\n          mu = spqcds[0].mu;\n          epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n        } else {\n          mu = spqcds[b].mu;\n          epsilon = spqcds[b].epsilon;\n          b++;\n        }\n\n        var subband = resolution.subbands[j];\n        var gainLog2 = SubbandsGainLog2[subband.type];\n        var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048);\n        var mb = guardBits + epsilon - 1;\n        copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed);\n      }\n\n      subbandCoefficients.push({\n        width: width,\n        height: height,\n        items: coefficients\n      });\n    }\n\n    var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0);\n    return {\n      left: component.tcx0,\n      top: component.tcy0,\n      width: result.width,\n      height: result.height,\n      items: result.items\n    };\n  }\n\n  function transformComponents(context) {\n    var siz = context.SIZ;\n    var components = context.components;\n    var componentsCount = siz.Csiz;\n    var resultImages = [];\n\n    for (var i = 0, ii = context.tiles.length; i < ii; i++) {\n      var tile = context.tiles[i];\n      var transformedTiles = [];\n      var c;\n\n      for (c = 0; c < componentsCount; c++) {\n        transformedTiles[c] = transformTile(context, tile, c);\n      }\n\n      var tile0 = transformedTiles[0];\n      var out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n      var result = {\n        left: tile0.left,\n        top: tile0.top,\n        width: tile0.width,\n        height: tile0.height,\n        items: out\n      };\n      var shift, offset;\n      var pos = 0,\n          j,\n          jj,\n          y0,\n          y1,\n          y2;\n\n      if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n        var fourComponents = componentsCount === 4;\n        var y0items = transformedTiles[0].items;\n        var y1items = transformedTiles[1].items;\n        var y2items = transformedTiles[2].items;\n        var y3items = fourComponents ? transformedTiles[3].items : null;\n        shift = components[0].precision - 8;\n        offset = (128 << shift) + 0.5;\n        var component0 = tile.components[0];\n        var alpha01 = componentsCount - 3;\n        jj = y0items.length;\n\n        if (!component0.codingStyleParameters.reversibleTransformation) {\n          for (j = 0; j < jj; j++, pos += alpha01) {\n            y0 = y0items[j] + offset;\n            y1 = y1items[j];\n            y2 = y2items[j];\n            out[pos++] = y0 + 1.402 * y2 >> shift;\n            out[pos++] = y0 - 0.34413 * y1 - 0.71414 * y2 >> shift;\n            out[pos++] = y0 + 1.772 * y1 >> shift;\n          }\n        } else {\n          for (j = 0; j < jj; j++, pos += alpha01) {\n            y0 = y0items[j] + offset;\n            y1 = y1items[j];\n            y2 = y2items[j];\n            var g = y0 - (y2 + y1 >> 2);\n            out[pos++] = g + y2 >> shift;\n            out[pos++] = g >> shift;\n            out[pos++] = g + y1 >> shift;\n          }\n        }\n\n        if (fourComponents) {\n          for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n            out[pos] = y3items[j] + offset >> shift;\n          }\n        }\n      } else {\n        for (c = 0; c < componentsCount; c++) {\n          var items = transformedTiles[c].items;\n          shift = components[c].precision - 8;\n          offset = (128 << shift) + 0.5;\n\n          for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n            out[pos] = items[j] + offset >> shift;\n            pos += componentsCount;\n          }\n        }\n      }\n\n      resultImages.push(result);\n    }\n\n    return resultImages;\n  }\n\n  function initializeTile(context, tileIndex) {\n    var siz = context.SIZ;\n    var componentsCount = siz.Csiz;\n    var tile = context.tiles[tileIndex];\n\n    for (var c = 0; c < componentsCount; c++) {\n      var component = tile.components[c];\n      var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD;\n      component.quantizationParameters = qcdOrQcc;\n      var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD;\n      component.codingStyleParameters = codOrCoc;\n    }\n\n    tile.codingStyleDefaultParameters = context.currentTile.COD;\n  }\n\n  var TagTree = function TagTreeClosure() {\n    function TagTree(width, height) {\n      var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n      this.levels = [];\n\n      for (var i = 0; i < levelsLength; i++) {\n        var level = {\n          width: width,\n          height: height,\n          items: []\n        };\n        this.levels.push(level);\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n\n    TagTree.prototype = {\n      reset: function TagTree_reset(i, j) {\n        var currentLevel = 0,\n            value = 0,\n            level;\n\n        while (currentLevel < this.levels.length) {\n          level = this.levels[currentLevel];\n          var index = i + j * level.width;\n\n          if (level.items[index] !== undefined) {\n            value = level.items[index];\n            break;\n          }\n\n          level.index = index;\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n\n        currentLevel--;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        this.currentLevel = currentLevel;\n        delete this.value;\n      },\n      incrementValue: function TagTree_incrementValue() {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index]++;\n      },\n      nextLevel: function TagTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        currentLevel--;\n\n        if (currentLevel < 0) {\n          this.value = value;\n          return false;\n        }\n\n        this.currentLevel = currentLevel;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return TagTree;\n  }();\n\n  var InclusionTree = function InclusionTreeClosure() {\n    function InclusionTree(width, height, defaultValue) {\n      var levelsLength = (0, _util.log2)(Math.max(width, height)) + 1;\n      this.levels = [];\n\n      for (var i = 0; i < levelsLength; i++) {\n        var items = new Uint8Array(width * height);\n\n        for (var j = 0, jj = items.length; j < jj; j++) {\n          items[j] = defaultValue;\n        }\n\n        var level = {\n          width: width,\n          height: height,\n          items: items\n        };\n        this.levels.push(level);\n        width = Math.ceil(width / 2);\n        height = Math.ceil(height / 2);\n      }\n    }\n\n    InclusionTree.prototype = {\n      reset: function InclusionTree_reset(i, j, stopValue) {\n        var currentLevel = 0;\n\n        while (currentLevel < this.levels.length) {\n          var level = this.levels[currentLevel];\n          var index = i + j * level.width;\n          level.index = index;\n          var value = level.items[index];\n\n          if (value === 0xFF) {\n            break;\n          }\n\n          if (value > stopValue) {\n            this.currentLevel = currentLevel;\n            this.propagateValues();\n            return false;\n          }\n\n          i >>= 1;\n          j >>= 1;\n          currentLevel++;\n        }\n\n        this.currentLevel = currentLevel - 1;\n        return true;\n      },\n      incrementValue: function InclusionTree_incrementValue(stopValue) {\n        var level = this.levels[this.currentLevel];\n        level.items[level.index] = stopValue + 1;\n        this.propagateValues();\n      },\n      propagateValues: function InclusionTree_propagateValues() {\n        var levelIndex = this.currentLevel;\n        var level = this.levels[levelIndex];\n        var currentValue = level.items[level.index];\n\n        while (--levelIndex >= 0) {\n          level = this.levels[levelIndex];\n          level.items[level.index] = currentValue;\n        }\n      },\n      nextLevel: function InclusionTree_nextLevel() {\n        var currentLevel = this.currentLevel;\n        var level = this.levels[currentLevel];\n        var value = level.items[level.index];\n        level.items[level.index] = 0xFF;\n        currentLevel--;\n\n        if (currentLevel < 0) {\n          return false;\n        }\n\n        this.currentLevel = currentLevel;\n        level = this.levels[currentLevel];\n        level.items[level.index] = value;\n        return true;\n      }\n    };\n    return InclusionTree;\n  }();\n\n  var BitModel = function BitModelClosure() {\n    var UNIFORM_CONTEXT = 17;\n    var RUNLENGTH_CONTEXT = 18;\n    var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]);\n    var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]);\n    var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]);\n\n    function BitModel(width, height, subband, zeroBitPlanes, mb) {\n      this.width = width;\n      this.height = height;\n      this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel;\n      var coefficientCount = width * height;\n      this.neighborsSignificance = new Uint8Array(coefficientCount);\n      this.coefficentsSign = new Uint8Array(coefficientCount);\n      this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount);\n      this.processingFlags = new Uint8Array(coefficientCount);\n      var bitsDecoded = new Uint8Array(coefficientCount);\n\n      if (zeroBitPlanes !== 0) {\n        for (var i = 0; i < coefficientCount; i++) {\n          bitsDecoded[i] = zeroBitPlanes;\n        }\n      }\n\n      this.bitsDecoded = bitsDecoded;\n      this.reset();\n    }\n\n    BitModel.prototype = {\n      setDecoder: function BitModel_setDecoder(decoder) {\n        this.decoder = decoder;\n      },\n      reset: function BitModel_reset() {\n        this.contexts = new Int8Array(19);\n        this.contexts[0] = 4 << 1 | 0;\n        this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0;\n        this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0;\n      },\n      setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) {\n        var neighborsSignificance = this.neighborsSignificance;\n        var width = this.width,\n            height = this.height;\n        var left = column > 0;\n        var right = column + 1 < width;\n        var i;\n\n        if (row > 0) {\n          i = index - width;\n\n          if (left) {\n            neighborsSignificance[i - 1] += 0x10;\n          }\n\n          if (right) {\n            neighborsSignificance[i + 1] += 0x10;\n          }\n\n          neighborsSignificance[i] += 0x04;\n        }\n\n        if (row + 1 < height) {\n          i = index + width;\n\n          if (left) {\n            neighborsSignificance[i - 1] += 0x10;\n          }\n\n          if (right) {\n            neighborsSignificance[i + 1] += 0x10;\n          }\n\n          neighborsSignificance[i] += 0x04;\n        }\n\n        if (left) {\n          neighborsSignificance[index - 1] += 0x01;\n        }\n\n        if (right) {\n          neighborsSignificance[index + 1] += 0x01;\n        }\n\n        neighborsSignificance[index] |= 0x80;\n      },\n      runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var neighborsSignificance = this.neighborsSignificance;\n        var processingFlags = this.processingFlags;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processedInverseMask = ~1;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n\n        for (var i0 = 0; i0 < height; i0 += 4) {\n          for (var j = 0; j < width; j++) {\n            var index = i0 * width + j;\n\n            for (var i1 = 0; i1 < 4; i1++, index += width) {\n              var i = i0 + i1;\n\n              if (i >= height) {\n                break;\n              }\n\n              processingFlags[index] &= processedInverseMask;\n\n              if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n                continue;\n              }\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var decision = decoder.readBit(contexts, contextLabel);\n\n              if (decision) {\n                var sign = this.decodeSignBit(i, j, index);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j, index);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      decodeSignBit: function BitModel_decodeSignBit(row, column, index) {\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contribution, sign0, sign1, significance1;\n        var contextLabel, decoded;\n        significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n\n        if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n          sign1 = coefficentsSign[index + 1];\n\n          if (significance1) {\n            sign0 = coefficentsSign[index - 1];\n            contribution = 1 - sign1 - sign0;\n          } else {\n            contribution = 1 - sign1 - sign1;\n          }\n        } else if (significance1) {\n          sign0 = coefficentsSign[index - 1];\n          contribution = 1 - sign0 - sign0;\n        } else {\n          contribution = 0;\n        }\n\n        var horizontalContribution = 3 * contribution;\n        significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n\n        if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n          sign1 = coefficentsSign[index + width];\n\n          if (significance1) {\n            sign0 = coefficentsSign[index - width];\n            contribution = 1 - sign1 - sign0 + horizontalContribution;\n          } else {\n            contribution = 1 - sign1 - sign1 + horizontalContribution;\n          }\n        } else if (significance1) {\n          sign0 = coefficentsSign[index - width];\n          contribution = 1 - sign0 - sign0 + horizontalContribution;\n        } else {\n          contribution = horizontalContribution;\n        }\n\n        if (contribution >= 0) {\n          contextLabel = 9 + contribution;\n          decoded = this.decoder.readBit(this.contexts, contextLabel);\n        } else {\n          contextLabel = 9 - contribution;\n          decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n        }\n\n        return decoded;\n      },\n      runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var neighborsSignificance = this.neighborsSignificance;\n        var contexts = this.contexts;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var length = width * height;\n        var width4 = width * 4;\n\n        for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n          indexNext = Math.min(length, index0 + width4);\n\n          for (var j = 0; j < width; j++) {\n            for (var index = index0 + j; index < indexNext; index += width) {\n              if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n                continue;\n              }\n\n              var contextLabel = 16;\n\n              if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n                processingFlags[index] ^= firstMagnitudeBitMask;\n                var significance = neighborsSignificance[index] & 127;\n                contextLabel = significance === 0 ? 15 : 14;\n              }\n\n              var bit = decoder.readBit(contexts, contextLabel);\n              coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit;\n              bitsDecoded[index]++;\n              processingFlags[index] |= processedMask;\n            }\n          }\n        }\n      },\n      runCleanupPass: function BitModel_runCleanupPass() {\n        var decoder = this.decoder;\n        var width = this.width,\n            height = this.height;\n        var neighborsSignificance = this.neighborsSignificance;\n        var coefficentsMagnitude = this.coefficentsMagnitude;\n        var coefficentsSign = this.coefficentsSign;\n        var contexts = this.contexts;\n        var labels = this.contextLabelTable;\n        var bitsDecoded = this.bitsDecoded;\n        var processingFlags = this.processingFlags;\n        var processedMask = 1;\n        var firstMagnitudeBitMask = 2;\n        var oneRowDown = width;\n        var twoRowsDown = width * 2;\n        var threeRowsDown = width * 3;\n        var iNext;\n\n        for (var i0 = 0; i0 < height; i0 = iNext) {\n          iNext = Math.min(i0 + 4, height);\n          var indexBase = i0 * width;\n          var checkAllEmpty = i0 + 3 < height;\n\n          for (var j = 0; j < width; j++) {\n            var index0 = indexBase + j;\n            var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0;\n            var i1 = 0,\n                index = index0;\n            var i = i0,\n                sign;\n\n            if (allEmpty) {\n              var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT);\n\n              if (!hasSignificantCoefficent) {\n                bitsDecoded[index0]++;\n                bitsDecoded[index0 + oneRowDown]++;\n                bitsDecoded[index0 + twoRowsDown]++;\n                bitsDecoded[index0 + threeRowsDown]++;\n                continue;\n              }\n\n              i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n              if (i1 !== 0) {\n                i = i0 + i1;\n                index += i1 * width;\n              }\n\n              sign = this.decodeSignBit(i, j, index);\n              coefficentsSign[index] = sign;\n              coefficentsMagnitude[index] = 1;\n              this.setNeighborsSignificance(i, j, index);\n              processingFlags[index] |= firstMagnitudeBitMask;\n              index = index0;\n\n              for (var i2 = i0; i2 <= i; i2++, index += width) {\n                bitsDecoded[index]++;\n              }\n\n              i1++;\n            }\n\n            for (i = i0 + i1; i < iNext; i++, index += width) {\n              if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) {\n                continue;\n              }\n\n              var contextLabel = labels[neighborsSignificance[index]];\n              var decision = decoder.readBit(contexts, contextLabel);\n\n              if (decision === 1) {\n                sign = this.decodeSignBit(i, j, index);\n                coefficentsSign[index] = sign;\n                coefficentsMagnitude[index] = 1;\n                this.setNeighborsSignificance(i, j, index);\n                processingFlags[index] |= firstMagnitudeBitMask;\n              }\n\n              bitsDecoded[index]++;\n            }\n          }\n        }\n      },\n      checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() {\n        var decoder = this.decoder;\n        var contexts = this.contexts;\n        var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT);\n\n        if (symbol !== 0xA) {\n          throw new JpxError('Invalid segmentation symbol');\n        }\n      }\n    };\n    return BitModel;\n  }();\n\n  var Transform = function TransformClosure() {\n    function Transform() {}\n\n    Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) {\n      var ll = subbands[0];\n\n      for (var i = 1, ii = subbands.length; i < ii; i++) {\n        ll = this.iterate(ll, subbands[i], u0, v0);\n      }\n\n      return ll;\n    };\n\n    Transform.prototype.extend = function extend(buffer, offset, size) {\n      var i1 = offset - 1,\n          j1 = offset + 1;\n      var i2 = offset + size - 2,\n          j2 = offset + size;\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1--] = buffer[j1++];\n      buffer[j2++] = buffer[i2--];\n      buffer[i1] = buffer[j1];\n      buffer[j2] = buffer[i2];\n    };\n\n    Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) {\n      var llWidth = ll.width,\n          llHeight = ll.height,\n          llItems = ll.items;\n      var width = hl_lh_hh.width;\n      var height = hl_lh_hh.height;\n      var items = hl_lh_hh.items;\n      var i, j, k, l, u, v;\n\n      for (k = 0, i = 0; i < llHeight; i++) {\n        l = i * 2 * width;\n\n        for (j = 0; j < llWidth; j++, k++, l += 2) {\n          items[l] = llItems[k];\n        }\n      }\n\n      llItems = ll.items = null;\n      var bufferPadding = 4;\n      var rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n      if (width === 1) {\n        if ((u0 & 1) !== 0) {\n          for (v = 0, k = 0; v < height; v++, k += width) {\n            items[k] *= 0.5;\n          }\n        }\n      } else {\n        for (v = 0, k = 0; v < height; v++, k += width) {\n          rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n          this.extend(rowBuffer, bufferPadding, width);\n          this.filter(rowBuffer, bufferPadding, width);\n          items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n        }\n      }\n\n      var numBuffers = 16;\n      var colBuffers = [];\n\n      for (i = 0; i < numBuffers; i++) {\n        colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n      }\n\n      var b,\n          currentBuffer = 0;\n      ll = bufferPadding + height;\n\n      if (height === 1) {\n        if ((v0 & 1) !== 0) {\n          for (u = 0; u < width; u++) {\n            items[u] *= 0.5;\n          }\n        }\n      } else {\n        for (u = 0; u < width; u++) {\n          if (currentBuffer === 0) {\n            numBuffers = Math.min(width - u, numBuffers);\n\n            for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n              for (b = 0; b < numBuffers; b++) {\n                colBuffers[b][l] = items[k + b];\n              }\n            }\n\n            currentBuffer = numBuffers;\n          }\n\n          currentBuffer--;\n          var buffer = colBuffers[currentBuffer];\n          this.extend(buffer, bufferPadding, height);\n          this.filter(buffer, bufferPadding, height);\n\n          if (currentBuffer === 0) {\n            k = u - numBuffers + 1;\n\n            for (l = bufferPadding; l < ll; k += width, l++) {\n              for (b = 0; b < numBuffers; b++) {\n                items[k + b] = colBuffers[b][l];\n              }\n            }\n          }\n        }\n      }\n\n      return {\n        width: width,\n        height: height,\n        items: items\n      };\n    };\n\n    return Transform;\n  }();\n\n  var IrreversibleTransform = function IrreversibleTransformClosure() {\n    function IrreversibleTransform() {\n      Transform.call(this);\n    }\n\n    IrreversibleTransform.prototype = Object.create(Transform.prototype);\n\n    IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var j, n, current, next;\n      var alpha = -1.586134342059924;\n      var beta = -0.052980118572961;\n      var gamma = 0.882911075530934;\n      var delta = 0.443506852043971;\n      var K = 1.230174104914001;\n      var K_ = 1 / K;\n      j = offset - 3;\n\n      for (n = len + 4; n--; j += 2) {\n        x[j] *= K_;\n      }\n\n      j = offset - 2;\n      current = delta * x[j - 1];\n\n      for (n = len + 3; n--; j += 2) {\n        next = delta * x[j + 1];\n        x[j] = K * x[j] - current - next;\n\n        if (n--) {\n          j += 2;\n          current = delta * x[j + 1];\n          x[j] = K * x[j] - current - next;\n        } else {\n          break;\n        }\n      }\n\n      j = offset - 1;\n      current = gamma * x[j - 1];\n\n      for (n = len + 2; n--; j += 2) {\n        next = gamma * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = gamma * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n\n      j = offset;\n      current = beta * x[j - 1];\n\n      for (n = len + 1; n--; j += 2) {\n        next = beta * x[j + 1];\n        x[j] -= current + next;\n\n        if (n--) {\n          j += 2;\n          current = beta * x[j + 1];\n          x[j] -= current + next;\n        } else {\n          break;\n        }\n      }\n\n      if (len !== 0) {\n        j = offset + 1;\n        current = alpha * x[j - 1];\n\n        for (n = len; n--; j += 2) {\n          next = alpha * x[j + 1];\n          x[j] -= current + next;\n\n          if (n--) {\n            j += 2;\n            current = alpha * x[j + 1];\n            x[j] -= current + next;\n          } else {\n            break;\n          }\n        }\n      }\n    };\n\n    return IrreversibleTransform;\n  }();\n\n  var ReversibleTransform = function ReversibleTransformClosure() {\n    function ReversibleTransform() {\n      Transform.call(this);\n    }\n\n    ReversibleTransform.prototype = Object.create(Transform.prototype);\n\n    ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) {\n      var len = length >> 1;\n      offset = offset | 0;\n      var j, n;\n\n      for (j = offset, n = len + 1; n--; j += 2) {\n        x[j] -= x[j - 1] + x[j + 1] + 2 >> 2;\n      }\n\n      for (j = offset + 1, n = len; n--; j += 2) {\n        x[j] += x[j - 1] + x[j + 1] >> 1;\n      }\n    };\n\n    return ReversibleTransform;\n  }();\n\n  return JpxImage;\n}();\n\nexports.JpxImage = JpxImage;\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.calculateSHA512 = exports.calculateSHA384 = exports.calculateSHA256 = exports.calculateMD5 = exports.PDF20 = exports.PDF17 = exports.CipherTransformFactory = exports.ARCFourCipher = exports.AES256Cipher = exports.AES128Cipher = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar ARCFourCipher = function ARCFourCipherClosure() {\n  function ARCFourCipher(key) {\n    this.a = 0;\n    this.b = 0;\n    var s = new Uint8Array(256);\n    var i,\n        j = 0,\n        tmp,\n        keyLength = key.length;\n\n    for (i = 0; i < 256; ++i) {\n      s[i] = i;\n    }\n\n    for (i = 0; i < 256; ++i) {\n      tmp = s[i];\n      j = j + tmp + key[i % keyLength] & 0xFF;\n      s[i] = s[j];\n      s[j] = tmp;\n    }\n\n    this.s = s;\n  }\n\n  ARCFourCipher.prototype = {\n    encryptBlock: function ARCFourCipher_encryptBlock(data) {\n      var i,\n          n = data.length,\n          tmp,\n          tmp2;\n      var a = this.a,\n          b = this.b,\n          s = this.s;\n      var output = new Uint8Array(n);\n\n      for (i = 0; i < n; ++i) {\n        a = a + 1 & 0xFF;\n        tmp = s[a];\n        b = b + tmp & 0xFF;\n        tmp2 = s[b];\n        s[a] = tmp2;\n        s[b] = tmp;\n        output[i] = data[i] ^ s[tmp + tmp2 & 0xFF];\n      }\n\n      this.a = a;\n      this.b = b;\n      return output;\n    }\n  };\n  ARCFourCipher.prototype.decryptBlock = ARCFourCipher.prototype.encryptBlock;\n  return ARCFourCipher;\n}();\n\nexports.ARCFourCipher = ARCFourCipher;\n\nvar calculateMD5 = function calculateMD5Closure() {\n  var r = new Uint8Array([7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21]);\n  var k = new Int32Array([-680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691, 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222, -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259, -343485551]);\n\n  function hash(data, offset, length) {\n    var h0 = 1732584193,\n        h1 = -271733879,\n        h2 = -1732584194,\n        h3 = 271733878;\n    var paddedLength = length + 72 & ~63;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = length << 3 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    var w = new Int32Array(16);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j, i += 4) {\n        w[j] = padded[i] | padded[i + 1] << 8 | padded[i + 2] << 16 | padded[i + 3] << 24;\n      }\n\n      var a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          f,\n          g;\n\n      for (j = 0; j < 64; ++j) {\n        if (j < 16) {\n          f = b & c | ~b & d;\n          g = j;\n        } else if (j < 32) {\n          f = d & b | ~d & c;\n          g = 5 * j + 1 & 15;\n        } else if (j < 48) {\n          f = b ^ c ^ d;\n          g = 3 * j + 5 & 15;\n        } else {\n          f = c ^ (b | ~d);\n          g = 7 * j & 15;\n        }\n\n        var tmp = d,\n            rotateArg = a + f + k[j] + w[g] | 0,\n            rotate = r[j];\n        d = c;\n        c = b;\n        b = b + (rotateArg << rotate | rotateArg >>> 32 - rotate) | 0;\n        a = tmp;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n    }\n\n    return new Uint8Array([h0 & 0xFF, h0 >> 8 & 0xFF, h0 >> 16 & 0xFF, h0 >>> 24 & 0xFF, h1 & 0xFF, h1 >> 8 & 0xFF, h1 >> 16 & 0xFF, h1 >>> 24 & 0xFF, h2 & 0xFF, h2 >> 8 & 0xFF, h2 >> 16 & 0xFF, h2 >>> 24 & 0xFF, h3 & 0xFF, h3 >> 8 & 0xFF, h3 >> 16 & 0xFF, h3 >>> 24 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateMD5 = calculateMD5;\n\nvar Word64 = function Word64Closure() {\n  function Word64(highInteger, lowInteger) {\n    this.high = highInteger | 0;\n    this.low = lowInteger | 0;\n  }\n\n  Word64.prototype = {\n    and: function Word64_and(word) {\n      this.high &= word.high;\n      this.low &= word.low;\n    },\n    xor: function Word64_xor(word) {\n      this.high ^= word.high;\n      this.low ^= word.low;\n    },\n    or: function Word64_or(word) {\n      this.high |= word.high;\n      this.low |= word.low;\n    },\n    shiftRight: function Word64_shiftRight(places) {\n      if (places >= 32) {\n        this.low = this.high >>> places - 32 | 0;\n        this.high = 0;\n      } else {\n        this.low = this.low >>> places | this.high << 32 - places;\n        this.high = this.high >>> places | 0;\n      }\n    },\n    shiftLeft: function Word64_shiftLeft(places) {\n      if (places >= 32) {\n        this.high = this.low << places - 32;\n        this.low = 0;\n      } else {\n        this.high = this.high << places | this.low >>> 32 - places;\n        this.low = this.low << places;\n      }\n    },\n    rotateRight: function Word64_rotateRight(places) {\n      var low, high;\n\n      if (places & 32) {\n        high = this.low;\n        low = this.high;\n      } else {\n        low = this.low;\n        high = this.high;\n      }\n\n      places &= 31;\n      this.low = low >>> places | high << 32 - places;\n      this.high = high >>> places | low << 32 - places;\n    },\n    not: function Word64_not() {\n      this.high = ~this.high;\n      this.low = ~this.low;\n    },\n    add: function Word64_add(word) {\n      var lowAdd = (this.low >>> 0) + (word.low >>> 0);\n      var highAdd = (this.high >>> 0) + (word.high >>> 0);\n\n      if (lowAdd > 0xFFFFFFFF) {\n        highAdd += 1;\n      }\n\n      this.low = lowAdd | 0;\n      this.high = highAdd | 0;\n    },\n    copyTo: function Word64_copyTo(bytes, offset) {\n      bytes[offset] = this.high >>> 24 & 0xFF;\n      bytes[offset + 1] = this.high >> 16 & 0xFF;\n      bytes[offset + 2] = this.high >> 8 & 0xFF;\n      bytes[offset + 3] = this.high & 0xFF;\n      bytes[offset + 4] = this.low >>> 24 & 0xFF;\n      bytes[offset + 5] = this.low >> 16 & 0xFF;\n      bytes[offset + 6] = this.low >> 8 & 0xFF;\n      bytes[offset + 7] = this.low & 0xFF;\n    },\n    assign: function Word64_assign(word) {\n      this.high = word.high;\n      this.low = word.low;\n    }\n  };\n  return Word64;\n}();\n\nvar calculateSHA256 = function calculateSHA256Closure() {\n  function rotr(x, n) {\n    return x >>> n | x << 32 - n;\n  }\n\n  function ch(x, y, z) {\n    return x & y ^ ~x & z;\n  }\n\n  function maj(x, y, z) {\n    return x & y ^ x & z ^ y & z;\n  }\n\n  function sigma(x) {\n    return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n  }\n\n  function sigmaPrime(x) {\n    return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n  }\n\n  function littleSigma(x) {\n    return rotr(x, 7) ^ rotr(x, 18) ^ x >>> 3;\n  }\n\n  function littleSigmaPrime(x) {\n    return rotr(x, 17) ^ rotr(x, 19) ^ x >>> 10;\n  }\n\n  var k = [0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2];\n\n  function hash(data, offset, length) {\n    var h0 = 0x6a09e667,\n        h1 = 0xbb67ae85,\n        h2 = 0x3c6ef372,\n        h3 = 0xa54ff53a,\n        h4 = 0x510e527f,\n        h5 = 0x9b05688c,\n        h6 = 0x1f83d9ab,\n        h7 = 0x5be0cd19;\n    var paddedLength = Math.ceil((length + 9) / 64) * 64;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 8;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length << 3 & 0xFF;\n    var w = new Uint32Array(64);\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j] = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        i += 4;\n      }\n\n      for (j = 16; j < 64; ++j) {\n        w[j] = littleSigmaPrime(w[j - 2]) + w[j - 7] + littleSigma(w[j - 15]) + w[j - 16] | 0;\n      }\n\n      var a = h0,\n          b = h1,\n          c = h2,\n          d = h3,\n          e = h4,\n          f = h5,\n          g = h6,\n          h = h7,\n          t1,\n          t2;\n\n      for (j = 0; j < 64; ++j) {\n        t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n        t2 = sigma(a) + maj(a, b, c);\n        h = g;\n        g = f;\n        f = e;\n        e = d + t1 | 0;\n        d = c;\n        c = b;\n        b = a;\n        a = t1 + t2 | 0;\n      }\n\n      h0 = h0 + a | 0;\n      h1 = h1 + b | 0;\n      h2 = h2 + c | 0;\n      h3 = h3 + d | 0;\n      h4 = h4 + e | 0;\n      h5 = h5 + f | 0;\n      h6 = h6 + g | 0;\n      h7 = h7 + h | 0;\n    }\n\n    return new Uint8Array([h0 >> 24 & 0xFF, h0 >> 16 & 0xFF, h0 >> 8 & 0xFF, h0 & 0xFF, h1 >> 24 & 0xFF, h1 >> 16 & 0xFF, h1 >> 8 & 0xFF, h1 & 0xFF, h2 >> 24 & 0xFF, h2 >> 16 & 0xFF, h2 >> 8 & 0xFF, h2 & 0xFF, h3 >> 24 & 0xFF, h3 >> 16 & 0xFF, h3 >> 8 & 0xFF, h3 & 0xFF, h4 >> 24 & 0xFF, h4 >> 16 & 0xFF, h4 >> 8 & 0xFF, h4 & 0xFF, h5 >> 24 & 0xFF, h5 >> 16 & 0xFF, h5 >> 8 & 0xFF, h5 & 0xFF, h6 >> 24 & 0xFF, h6 >> 16 & 0xFF, h6 >> 8 & 0xFF, h6 & 0xFF, h7 >> 24 & 0xFF, h7 >> 16 & 0xFF, h7 >> 8 & 0xFF, h7 & 0xFF]);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA256 = calculateSHA256;\n\nvar calculateSHA512 = function calculateSHA512Closure() {\n  function ch(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.not();\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function maj(result, x, y, z, tmp) {\n    result.assign(x);\n    result.and(y);\n    tmp.assign(x);\n    tmp.and(z);\n    result.xor(tmp);\n    tmp.assign(y);\n    tmp.and(z);\n    result.xor(tmp);\n  }\n\n  function sigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(28);\n    tmp.assign(x);\n    tmp.rotateRight(34);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(39);\n    result.xor(tmp);\n  }\n\n  function sigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(14);\n    tmp.assign(x);\n    tmp.rotateRight(18);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.rotateRight(41);\n    result.xor(tmp);\n  }\n\n  function littleSigma(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(1);\n    tmp.assign(x);\n    tmp.rotateRight(8);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(7);\n    result.xor(tmp);\n  }\n\n  function littleSigmaPrime(result, x, tmp) {\n    result.assign(x);\n    result.rotateRight(19);\n    tmp.assign(x);\n    tmp.rotateRight(61);\n    result.xor(tmp);\n    tmp.assign(x);\n    tmp.shiftRight(6);\n    result.xor(tmp);\n  }\n\n  var k = [new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd), new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc), new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019), new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118), new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe), new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2), new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1), new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694), new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3), new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65), new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483), new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5), new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210), new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4), new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725), new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70), new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926), new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df), new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8), new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b), new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001), new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30), new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910), new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8), new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53), new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8), new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb), new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3), new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60), new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec), new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9), new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b), new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207), new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178), new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6), new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b), new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493), new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c), new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a), new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n  function hash(data, offset, length, mode384) {\n    mode384 = !!mode384;\n    var h0, h1, h2, h3, h4, h5, h6, h7;\n\n    if (!mode384) {\n      h0 = new Word64(0x6a09e667, 0xf3bcc908);\n      h1 = new Word64(0xbb67ae85, 0x84caa73b);\n      h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n      h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n      h4 = new Word64(0x510e527f, 0xade682d1);\n      h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n      h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n      h7 = new Word64(0x5be0cd19, 0x137e2179);\n    } else {\n      h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n      h1 = new Word64(0x629a292a, 0x367cd507);\n      h2 = new Word64(0x9159015a, 0x3070dd17);\n      h3 = new Word64(0x152fecd8, 0xf70e5939);\n      h4 = new Word64(0x67332667, 0xffc00b31);\n      h5 = new Word64(0x8eb44a87, 0x68581511);\n      h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n      h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n    }\n\n    var paddedLength = Math.ceil((length + 17) / 128) * 128;\n    var padded = new Uint8Array(paddedLength);\n    var i, j, n;\n\n    for (i = 0; i < length; ++i) {\n      padded[i] = data[offset++];\n    }\n\n    padded[i++] = 0x80;\n    n = paddedLength - 16;\n\n    while (i < n) {\n      padded[i++] = 0;\n    }\n\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = 0;\n    padded[i++] = length >>> 29 & 0xFF;\n    padded[i++] = length >> 21 & 0xFF;\n    padded[i++] = length >> 13 & 0xFF;\n    padded[i++] = length >> 5 & 0xFF;\n    padded[i++] = length << 3 & 0xFF;\n    var w = new Array(80);\n\n    for (i = 0; i < 80; i++) {\n      w[i] = new Word64(0, 0);\n    }\n\n    var a = new Word64(0, 0),\n        b = new Word64(0, 0),\n        c = new Word64(0, 0);\n    var d = new Word64(0, 0),\n        e = new Word64(0, 0),\n        f = new Word64(0, 0);\n    var g = new Word64(0, 0),\n        h = new Word64(0, 0);\n    var t1 = new Word64(0, 0),\n        t2 = new Word64(0, 0);\n    var tmp1 = new Word64(0, 0),\n        tmp2 = new Word64(0, 0),\n        tmp3;\n\n    for (i = 0; i < paddedLength;) {\n      for (j = 0; j < 16; ++j) {\n        w[j].high = padded[i] << 24 | padded[i + 1] << 16 | padded[i + 2] << 8 | padded[i + 3];\n        w[j].low = padded[i + 4] << 24 | padded[i + 5] << 16 | padded[i + 6] << 8 | padded[i + 7];\n        i += 8;\n      }\n\n      for (j = 16; j < 80; ++j) {\n        tmp3 = w[j];\n        littleSigmaPrime(tmp3, w[j - 2], tmp2);\n        tmp3.add(w[j - 7]);\n        littleSigma(tmp1, w[j - 15], tmp2);\n        tmp3.add(tmp1);\n        tmp3.add(w[j - 16]);\n      }\n\n      a.assign(h0);\n      b.assign(h1);\n      c.assign(h2);\n      d.assign(h3);\n      e.assign(h4);\n      f.assign(h5);\n      g.assign(h6);\n      h.assign(h7);\n\n      for (j = 0; j < 80; ++j) {\n        t1.assign(h);\n        sigmaPrime(tmp1, e, tmp2);\n        t1.add(tmp1);\n        ch(tmp1, e, f, g, tmp2);\n        t1.add(tmp1);\n        t1.add(k[j]);\n        t1.add(w[j]);\n        sigma(t2, a, tmp2);\n        maj(tmp1, a, b, c, tmp2);\n        t2.add(tmp1);\n        tmp3 = h;\n        h = g;\n        g = f;\n        f = e;\n        d.add(t1);\n        e = d;\n        d = c;\n        c = b;\n        b = a;\n        tmp3.assign(t1);\n        tmp3.add(t2);\n        a = tmp3;\n      }\n\n      h0.add(a);\n      h1.add(b);\n      h2.add(c);\n      h3.add(d);\n      h4.add(e);\n      h5.add(f);\n      h6.add(g);\n      h7.add(h);\n    }\n\n    var result;\n\n    if (!mode384) {\n      result = new Uint8Array(64);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n      h6.copyTo(result, 48);\n      h7.copyTo(result, 56);\n    } else {\n      result = new Uint8Array(48);\n      h0.copyTo(result, 0);\n      h1.copyTo(result, 8);\n      h2.copyTo(result, 16);\n      h3.copyTo(result, 24);\n      h4.copyTo(result, 32);\n      h5.copyTo(result, 40);\n    }\n\n    return result;\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA512 = calculateSHA512;\n\nvar calculateSHA384 = function calculateSHA384Closure() {\n  function hash(data, offset, length) {\n    return calculateSHA512(data, offset, length, true);\n  }\n\n  return hash;\n}();\n\nexports.calculateSHA384 = calculateSHA384;\n\nvar NullCipher = function NullCipherClosure() {\n  function NullCipher() {}\n\n  NullCipher.prototype = {\n    decryptBlock: function NullCipher_decryptBlock(data) {\n      return data;\n    }\n  };\n  return NullCipher;\n}();\n\nvar AESBaseCipher =\n/*#__PURE__*/\nfunction () {\n  function AESBaseCipher() {\n    _classCallCheck(this, AESBaseCipher);\n\n    if (this.constructor === AESBaseCipher) {\n      (0, _util.unreachable)('Cannot initialize AESBaseCipher.');\n    }\n\n    this._s = new Uint8Array([0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]);\n    this._inv_s = new Uint8Array([0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d]);\n    this._mix = new Uint32Array([0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3]);\n    this._mixCol = new Uint8Array(256);\n\n    for (var i = 0; i < 256; i++) {\n      if (i < 128) {\n        this._mixCol[i] = i << 1;\n      } else {\n        this._mixCol[i] = i << 1 ^ 0x1b;\n      }\n    }\n\n    this.buffer = new Uint8Array(16);\n    this.bufferPosition = 0;\n  }\n\n  _createClass(AESBaseCipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      (0, _util.unreachable)('Cannot call `_expandKey` on the base class');\n    }\n  }, {\n    key: \"_decrypt\",\n    value: function _decrypt(input, key) {\n      var t, u, v;\n      var state = new Uint8Array(16);\n      state.set(input);\n\n      for (var j = 0, k = this._keySize; j < 16; ++j, ++k) {\n        state[j] ^= key[k];\n      }\n\n      for (var i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n        t = state[13];\n        state[13] = state[9];\n        state[9] = state[5];\n        state[5] = state[1];\n        state[1] = t;\n        t = state[14];\n        u = state[10];\n        state[14] = state[6];\n        state[10] = state[2];\n        state[6] = t;\n        state[2] = u;\n        t = state[15];\n        u = state[11];\n        v = state[7];\n        state[15] = state[3];\n        state[11] = t;\n        state[7] = u;\n        state[3] = v;\n\n        for (var _j = 0; _j < 16; ++_j) {\n          state[_j] = this._inv_s[state[_j]];\n        }\n\n        for (var _j2 = 0, _k = i * 16; _j2 < 16; ++_j2, ++_k) {\n          state[_j2] ^= key[_k];\n        }\n\n        for (var _j3 = 0; _j3 < 16; _j3 += 4) {\n          var s0 = this._mix[state[_j3]];\n          var s1 = this._mix[state[_j3 + 1]];\n          var s2 = this._mix[state[_j3 + 2]];\n          var s3 = this._mix[state[_j3 + 3]];\n          t = s0 ^ s1 >>> 8 ^ s1 << 24 ^ s2 >>> 16 ^ s2 << 16 ^ s3 >>> 24 ^ s3 << 8;\n          state[_j3] = t >>> 24 & 0xFF;\n          state[_j3 + 1] = t >> 16 & 0xFF;\n          state[_j3 + 2] = t >> 8 & 0xFF;\n          state[_j3 + 3] = t & 0xFF;\n        }\n      }\n\n      t = state[13];\n      state[13] = state[9];\n      state[9] = state[5];\n      state[5] = state[1];\n      state[1] = t;\n      t = state[14];\n      u = state[10];\n      state[14] = state[6];\n      state[10] = state[2];\n      state[6] = t;\n      state[2] = u;\n      t = state[15];\n      u = state[11];\n      v = state[7];\n      state[15] = state[3];\n      state[11] = t;\n      state[7] = u;\n      state[3] = v;\n\n      for (var _j4 = 0; _j4 < 16; ++_j4) {\n        state[_j4] = this._inv_s[state[_j4]];\n        state[_j4] ^= key[_j4];\n      }\n\n      return state;\n    }\n  }, {\n    key: \"_encrypt\",\n    value: function _encrypt(input, key) {\n      var s = this._s;\n      var t, u, v;\n      var state = new Uint8Array(16);\n      state.set(input);\n\n      for (var j = 0; j < 16; ++j) {\n        state[j] ^= key[j];\n      }\n\n      for (var i = 1; i < this._cyclesOfRepetition; i++) {\n        for (var _j5 = 0; _j5 < 16; ++_j5) {\n          state[_j5] = s[state[_j5]];\n        }\n\n        v = state[1];\n        state[1] = state[5];\n        state[5] = state[9];\n        state[9] = state[13];\n        state[13] = v;\n        v = state[2];\n        u = state[6];\n        state[2] = state[10];\n        state[6] = state[14];\n        state[10] = v;\n        state[14] = u;\n        v = state[3];\n        u = state[7];\n        t = state[11];\n        state[3] = state[15];\n        state[7] = v;\n        state[11] = u;\n        state[15] = t;\n\n        for (var _j6 = 0; _j6 < 16; _j6 += 4) {\n          var s0 = state[_j6 + 0];\n          var s1 = state[_j6 + 1];\n          var s2 = state[_j6 + 2];\n          var s3 = state[_j6 + 3];\n          t = s0 ^ s1 ^ s2 ^ s3;\n          state[_j6 + 0] ^= t ^ this._mixCol[s0 ^ s1];\n          state[_j6 + 1] ^= t ^ this._mixCol[s1 ^ s2];\n          state[_j6 + 2] ^= t ^ this._mixCol[s2 ^ s3];\n          state[_j6 + 3] ^= t ^ this._mixCol[s3 ^ s0];\n        }\n\n        for (var _j7 = 0, k = i * 16; _j7 < 16; ++_j7, ++k) {\n          state[_j7] ^= key[k];\n        }\n      }\n\n      for (var _j8 = 0; _j8 < 16; ++_j8) {\n        state[_j8] = s[state[_j8]];\n      }\n\n      v = state[1];\n      state[1] = state[5];\n      state[5] = state[9];\n      state[9] = state[13];\n      state[13] = v;\n      v = state[2];\n      u = state[6];\n      state[2] = state[10];\n      state[6] = state[14];\n      state[10] = v;\n      state[14] = u;\n      v = state[3];\n      u = state[7];\n      t = state[11];\n      state[3] = state[15];\n      state[7] = v;\n      state[11] = u;\n      state[15] = t;\n\n      for (var _j9 = 0, _k2 = this._keySize; _j9 < 16; ++_j9, ++_k2) {\n        state[_j9] ^= key[_k2];\n      }\n\n      return state;\n    }\n  }, {\n    key: \"_decryptBlock2\",\n    value: function _decryptBlock2(data, finalize) {\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n      var result = [],\n          iv = this.iv;\n\n      for (var i = 0; i < sourceLength; ++i) {\n        buffer[bufferLength] = data[i];\n        ++bufferLength;\n\n        if (bufferLength < 16) {\n          continue;\n        }\n\n        var plain = this._decrypt(buffer, this._key);\n\n        for (var j = 0; j < 16; ++j) {\n          plain[j] ^= iv[j];\n        }\n\n        iv = buffer;\n        result.push(plain);\n        buffer = new Uint8Array(16);\n        bufferLength = 0;\n      }\n\n      this.buffer = buffer;\n      this.bufferLength = bufferLength;\n      this.iv = iv;\n\n      if (result.length === 0) {\n        return new Uint8Array(0);\n      }\n\n      var outputLength = 16 * result.length;\n\n      if (finalize) {\n        var lastBlock = result[result.length - 1];\n        var psLen = lastBlock[15];\n\n        if (psLen <= 16) {\n          for (var _i = 15, ii = 16 - psLen; _i >= ii; --_i) {\n            if (lastBlock[_i] !== psLen) {\n              psLen = 0;\n              break;\n            }\n          }\n\n          outputLength -= psLen;\n          result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n        }\n      }\n\n      var output = new Uint8Array(outputLength);\n\n      for (var _i2 = 0, _j10 = 0, _ii = result.length; _i2 < _ii; ++_i2, _j10 += 16) {\n        output.set(result[_i2], _j10);\n      }\n\n      return output;\n    }\n  }, {\n    key: \"decryptBlock\",\n    value: function decryptBlock(data, finalize) {\n      var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n\n      if (iv) {\n        this.iv = iv;\n      } else {\n        for (var i = 0; bufferLength < 16 && i < sourceLength; ++i, ++bufferLength) {\n          buffer[bufferLength] = data[i];\n        }\n\n        if (bufferLength < 16) {\n          this.bufferLength = bufferLength;\n          return new Uint8Array(0);\n        }\n\n        this.iv = buffer;\n        data = data.subarray(16);\n      }\n\n      this.buffer = new Uint8Array(16);\n      this.bufferLength = 0;\n      this.decryptBlock = this._decryptBlock2;\n      return this.decryptBlock(data, finalize);\n    }\n  }, {\n    key: \"encrypt\",\n    value: function encrypt(data, iv) {\n      var sourceLength = data.length;\n      var buffer = this.buffer,\n          bufferLength = this.bufferPosition;\n      var result = [];\n\n      if (!iv) {\n        iv = new Uint8Array(16);\n      }\n\n      for (var i = 0; i < sourceLength; ++i) {\n        buffer[bufferLength] = data[i];\n        ++bufferLength;\n\n        if (bufferLength < 16) {\n          continue;\n        }\n\n        for (var j = 0; j < 16; ++j) {\n          buffer[j] ^= iv[j];\n        }\n\n        var cipher = this._encrypt(buffer, this._key);\n\n        iv = cipher;\n        result.push(cipher);\n        buffer = new Uint8Array(16);\n        bufferLength = 0;\n      }\n\n      this.buffer = buffer;\n      this.bufferLength = bufferLength;\n      this.iv = iv;\n\n      if (result.length === 0) {\n        return new Uint8Array(0);\n      }\n\n      var outputLength = 16 * result.length;\n      var output = new Uint8Array(outputLength);\n\n      for (var _i3 = 0, _j11 = 0, ii = result.length; _i3 < ii; ++_i3, _j11 += 16) {\n        output.set(result[_i3], _j11);\n      }\n\n      return output;\n    }\n  }]);\n\n  return AESBaseCipher;\n}();\n\nvar AES128Cipher =\n/*#__PURE__*/\nfunction (_AESBaseCipher) {\n  _inherits(AES128Cipher, _AESBaseCipher);\n\n  function AES128Cipher(key) {\n    var _this;\n\n    _classCallCheck(this, AES128Cipher);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(AES128Cipher).call(this));\n    _this._cyclesOfRepetition = 10;\n    _this._keySize = 160;\n    _this._rcon = new Uint8Array([0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d]);\n    _this._key = _this._expandKey(key);\n    return _this;\n  }\n\n  _createClass(AES128Cipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      var b = 176;\n      var s = this._s;\n      var rcon = this._rcon;\n      var result = new Uint8Array(b);\n      result.set(cipherKey);\n\n      for (var j = 16, i = 1; j < b; ++i) {\n        var t1 = result[j - 3];\n        var t2 = result[j - 2];\n        var t3 = result[j - 1];\n        var t4 = result[j - 4];\n        t1 = s[t1];\n        t2 = s[t2];\n        t3 = s[t3];\n        t4 = s[t4];\n        t1 = t1 ^ rcon[i];\n\n        for (var n = 0; n < 4; ++n) {\n          result[j] = t1 ^= result[j - 16];\n          j++;\n          result[j] = t2 ^= result[j - 16];\n          j++;\n          result[j] = t3 ^= result[j - 16];\n          j++;\n          result[j] = t4 ^= result[j - 16];\n          j++;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return AES128Cipher;\n}(AESBaseCipher);\n\nexports.AES128Cipher = AES128Cipher;\n\nvar AES256Cipher =\n/*#__PURE__*/\nfunction (_AESBaseCipher2) {\n  _inherits(AES256Cipher, _AESBaseCipher2);\n\n  function AES256Cipher(key) {\n    var _this2;\n\n    _classCallCheck(this, AES256Cipher);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(AES256Cipher).call(this));\n    _this2._cyclesOfRepetition = 14;\n    _this2._keySize = 224;\n    _this2._key = _this2._expandKey(key);\n    return _this2;\n  }\n\n  _createClass(AES256Cipher, [{\n    key: \"_expandKey\",\n    value: function _expandKey(cipherKey) {\n      var b = 240;\n      var s = this._s;\n      var result = new Uint8Array(b);\n      result.set(cipherKey);\n      var r = 1;\n      var t1, t2, t3, t4;\n\n      for (var j = 32, i = 1; j < b; ++i) {\n        if (j % 32 === 16) {\n          t1 = s[t1];\n          t2 = s[t2];\n          t3 = s[t3];\n          t4 = s[t4];\n        } else if (j % 32 === 0) {\n          t1 = result[j - 3];\n          t2 = result[j - 2];\n          t3 = result[j - 1];\n          t4 = result[j - 4];\n          t1 = s[t1];\n          t2 = s[t2];\n          t3 = s[t3];\n          t4 = s[t4];\n          t1 = t1 ^ r;\n\n          if ((r <<= 1) >= 256) {\n            r = (r ^ 0x1b) & 0xFF;\n          }\n        }\n\n        for (var n = 0; n < 4; ++n) {\n          result[j] = t1 ^= result[j - 32];\n          j++;\n          result[j] = t2 ^= result[j - 32];\n          j++;\n          result[j] = t3 ^= result[j - 32];\n          j++;\n          result[j] = t4 ^= result[j - 32];\n          j++;\n        }\n      }\n\n      return result;\n    }\n  }]);\n\n  return AES256Cipher;\n}(AESBaseCipher);\n\nexports.AES256Cipher = AES256Cipher;\n\nvar PDF17 = function PDF17Closure() {\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  function PDF17() {}\n\n  PDF17.prototype = {\n    checkOwnerPassword: function PDF17_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF17_checkUserPassword(password, userValidationSalt, userPassword) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculateSHA256(hashData, 0, hashData.length);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF17_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF17_getUserKey(password, userKeySalt, userEncryption) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      var key = calculateSHA256(hashData, 0, hashData.length);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n  };\n  return PDF17;\n}();\n\nexports.PDF17 = PDF17;\n\nvar PDF20 = function PDF20Closure() {\n  function concatArrays(array1, array2) {\n    var t = new Uint8Array(array1.length + array2.length);\n    t.set(array1, 0);\n    t.set(array2, array1.length);\n    return t;\n  }\n\n  function calculatePDF20Hash(password, input, userBytes) {\n    var k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n    var e = [0];\n    var i = 0;\n\n    while (i < 64 || e[e.length - 1] > i - 32) {\n      var arrayLength = password.length + k.length + userBytes.length;\n      var k1 = new Uint8Array(arrayLength * 64);\n      var array = concatArrays(password, k);\n      array = concatArrays(array, userBytes);\n\n      for (var j = 0, pos = 0; j < 64; j++, pos += arrayLength) {\n        k1.set(array, pos);\n      }\n\n      var cipher = new AES128Cipher(k.subarray(0, 16));\n      e = cipher.encrypt(k1, k.subarray(16, 32));\n      var remainder = 0;\n\n      for (var z = 0; z < 16; z++) {\n        remainder *= 256 % 3;\n        remainder %= 3;\n        remainder += (e[z] >>> 0) % 3;\n        remainder %= 3;\n      }\n\n      if (remainder === 0) {\n        k = calculateSHA256(e, 0, e.length);\n      } else if (remainder === 1) {\n        k = calculateSHA384(e, 0, e.length);\n      } else if (remainder === 2) {\n        k = calculateSHA512(e, 0, e.length);\n      }\n\n      i++;\n    }\n\n    return k.subarray(0, 32);\n  }\n\n  function PDF20() {}\n\n  function compareByteArrays(array1, array2) {\n    if (array1.length !== array2.length) {\n      return false;\n    }\n\n    for (var i = 0; i < array1.length; i++) {\n      if (array1[i] !== array2[i]) {\n        return false;\n      }\n    }\n\n    return true;\n  }\n\n  PDF20.prototype = {\n    hash: function PDF20_hash(password, concatBytes, userBytes) {\n      return calculatePDF20Hash(password, concatBytes, userBytes);\n    },\n    checkOwnerPassword: function PDF20_checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerValidationSalt, password.length);\n      hashData.set(userBytes, password.length + ownerValidationSalt.length);\n      var result = calculatePDF20Hash(password, hashData, userBytes);\n      return compareByteArrays(result, ownerPassword);\n    },\n    checkUserPassword: function PDF20_checkUserPassword(password, userValidationSalt, userPassword) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userValidationSalt, password.length);\n      var result = calculatePDF20Hash(password, hashData, []);\n      return compareByteArrays(result, userPassword);\n    },\n    getOwnerKey: function PDF20_getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n      var hashData = new Uint8Array(password.length + 56);\n      hashData.set(password, 0);\n      hashData.set(ownerKeySalt, password.length);\n      hashData.set(userBytes, password.length + ownerKeySalt.length);\n      var key = calculatePDF20Hash(password, hashData, userBytes);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n    },\n    getUserKey: function PDF20_getUserKey(password, userKeySalt, userEncryption) {\n      var hashData = new Uint8Array(password.length + 8);\n      hashData.set(password, 0);\n      hashData.set(userKeySalt, password.length);\n      var key = calculatePDF20Hash(password, hashData, []);\n      var cipher = new AES256Cipher(key);\n      return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n    }\n  };\n  return PDF20;\n}();\n\nexports.PDF20 = PDF20;\n\nvar CipherTransform = function CipherTransformClosure() {\n  function CipherTransform(stringCipherConstructor, streamCipherConstructor) {\n    this.StringCipherConstructor = stringCipherConstructor;\n    this.StreamCipherConstructor = streamCipherConstructor;\n  }\n\n  CipherTransform.prototype = {\n    createStream: function CipherTransform_createStream(stream, length) {\n      var cipher = new this.StreamCipherConstructor();\n      return new _stream.DecryptStream(stream, length, function cipherTransformDecryptStream(data, finalize) {\n        return cipher.decryptBlock(data, finalize);\n      });\n    },\n    decryptString: function CipherTransform_decryptString(s) {\n      var cipher = new this.StringCipherConstructor();\n      var data = (0, _util.stringToBytes)(s);\n      data = cipher.decryptBlock(data, true);\n      return (0, _util.bytesToString)(data);\n    }\n  };\n  return CipherTransform;\n}();\n\nvar CipherTransformFactory = function CipherTransformFactoryClosure() {\n  var defaultPasswordBytes = new Uint8Array([0x28, 0xBF, 0x4E, 0x5E, 0x4E, 0x75, 0x8A, 0x41, 0x64, 0x00, 0x4E, 0x56, 0xFF, 0xFA, 0x01, 0x08, 0x2E, 0x2E, 0x00, 0xB6, 0xD0, 0x68, 0x3E, 0x80, 0x2F, 0x0C, 0xA9, 0xFE, 0x64, 0x53, 0x69, 0x7A]);\n\n  function createEncryptionKey20(revision, password, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms) {\n    if (password) {\n      var passwordLength = Math.min(127, password.length);\n      password = password.subarray(0, passwordLength);\n    } else {\n      password = [];\n    }\n\n    var pdfAlgorithm;\n\n    if (revision === 6) {\n      pdfAlgorithm = new PDF20();\n    } else {\n      pdfAlgorithm = new PDF17();\n    }\n\n    if (pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)) {\n      return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n    } else if (password.length && pdfAlgorithm.checkOwnerPassword(password, ownerValidationSalt, uBytes, ownerPassword)) {\n      return pdfAlgorithm.getOwnerKey(password, ownerKeySalt, uBytes, ownerEncryption);\n    }\n\n    return null;\n  }\n\n  function prepareKeyData(fileId, password, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata) {\n    var hashDataSize = 40 + ownerPassword.length + fileId.length;\n    var hashData = new Uint8Array(hashDataSize),\n        i = 0,\n        j,\n        n;\n\n    if (password) {\n      n = Math.min(32, password.length);\n\n      for (; i < n; ++i) {\n        hashData[i] = password[i];\n      }\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    for (j = 0, n = ownerPassword.length; j < n; ++j) {\n      hashData[i++] = ownerPassword[j];\n    }\n\n    hashData[i++] = flags & 0xFF;\n    hashData[i++] = flags >> 8 & 0xFF;\n    hashData[i++] = flags >> 16 & 0xFF;\n    hashData[i++] = flags >>> 24 & 0xFF;\n\n    for (j = 0, n = fileId.length; j < n; ++j) {\n      hashData[i++] = fileId[j];\n    }\n\n    if (revision >= 4 && !encryptMetadata) {\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n      hashData[i++] = 0xFF;\n    }\n\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, keyLengthInBytes);\n      }\n    }\n\n    var encryptionKey = hash.subarray(0, keyLengthInBytes);\n    var cipher, checkData;\n\n    if (revision >= 3) {\n      for (i = 0; i < 32; ++i) {\n        hashData[i] = defaultPasswordBytes[i];\n      }\n\n      for (j = 0, n = fileId.length; j < n; ++j) {\n        hashData[i++] = fileId[j];\n      }\n\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n      n = encryptionKey.length;\n      var derivedKey = new Uint8Array(n),\n          k;\n\n      for (j = 1; j <= 19; ++j) {\n        for (k = 0; k < n; ++k) {\n          derivedKey[k] = encryptionKey[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        checkData = cipher.encryptBlock(checkData);\n      }\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    } else {\n      cipher = new ARCFourCipher(encryptionKey);\n      checkData = cipher.encryptBlock(defaultPasswordBytes);\n\n      for (j = 0, n = checkData.length; j < n; ++j) {\n        if (userPassword[j] !== checkData[j]) {\n          return null;\n        }\n      }\n    }\n\n    return encryptionKey;\n  }\n\n  function decodeUserPassword(password, ownerPassword, revision, keyLength) {\n    var hashData = new Uint8Array(32),\n        i = 0,\n        j,\n        n;\n    n = Math.min(32, password.length);\n\n    for (; i < n; ++i) {\n      hashData[i] = password[i];\n    }\n\n    j = 0;\n\n    while (i < 32) {\n      hashData[i++] = defaultPasswordBytes[j++];\n    }\n\n    var hash = calculateMD5(hashData, 0, i);\n    var keyLengthInBytes = keyLength >> 3;\n\n    if (revision >= 3) {\n      for (j = 0; j < 50; ++j) {\n        hash = calculateMD5(hash, 0, hash.length);\n      }\n    }\n\n    var cipher, userPassword;\n\n    if (revision >= 3) {\n      userPassword = ownerPassword;\n      var derivedKey = new Uint8Array(keyLengthInBytes),\n          k;\n\n      for (j = 19; j >= 0; j--) {\n        for (k = 0; k < keyLengthInBytes; ++k) {\n          derivedKey[k] = hash[k] ^ j;\n        }\n\n        cipher = new ARCFourCipher(derivedKey);\n        userPassword = cipher.encryptBlock(userPassword);\n      }\n    } else {\n      cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n      userPassword = cipher.encryptBlock(ownerPassword);\n    }\n\n    return userPassword;\n  }\n\n  var identityName = _primitives.Name.get('Identity');\n\n  function CipherTransformFactory(dict, fileId, password) {\n    var filter = dict.get('Filter');\n\n    if (!(0, _primitives.isName)(filter, 'Standard')) {\n      throw new _util.FormatError('unknown encryption method');\n    }\n\n    this.dict = dict;\n    var algorithm = dict.get('V');\n\n    if (!Number.isInteger(algorithm) || algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5) {\n      throw new _util.FormatError('unsupported encryption algorithm');\n    }\n\n    this.algorithm = algorithm;\n    var keyLength = dict.get('Length');\n\n    if (!keyLength) {\n      if (algorithm <= 3) {\n        keyLength = 40;\n      } else {\n        var cfDict = dict.get('CF');\n        var streamCryptoName = dict.get('StmF');\n\n        if ((0, _primitives.isDict)(cfDict) && (0, _primitives.isName)(streamCryptoName)) {\n          cfDict.suppressEncryption = true;\n          var handlerDict = cfDict.get(streamCryptoName.name);\n          keyLength = handlerDict && handlerDict.get('Length') || 128;\n\n          if (keyLength < 40) {\n            keyLength <<= 3;\n          }\n        }\n      }\n    }\n\n    if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n      throw new _util.FormatError('invalid key length');\n    }\n\n    var ownerPassword = (0, _util.stringToBytes)(dict.get('O')).subarray(0, 32);\n    var userPassword = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 32);\n    var flags = dict.get('P');\n    var revision = dict.get('R');\n    var encryptMetadata = (algorithm === 4 || algorithm === 5) && dict.get('EncryptMetadata') !== false;\n    this.encryptMetadata = encryptMetadata;\n    var fileIdBytes = (0, _util.stringToBytes)(fileId);\n    var passwordBytes;\n\n    if (password) {\n      if (revision === 6) {\n        try {\n          password = (0, _util.utf8StringToString)(password);\n        } catch (ex) {\n          (0, _util.warn)('CipherTransformFactory: ' + 'Unable to convert UTF8 encoded password.');\n        }\n      }\n\n      passwordBytes = (0, _util.stringToBytes)(password);\n    }\n\n    var encryptionKey;\n\n    if (algorithm !== 5) {\n      encryptionKey = prepareKeyData(fileIdBytes, passwordBytes, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    } else {\n      var ownerValidationSalt = (0, _util.stringToBytes)(dict.get('O')).subarray(32, 40);\n      var ownerKeySalt = (0, _util.stringToBytes)(dict.get('O')).subarray(40, 48);\n      var uBytes = (0, _util.stringToBytes)(dict.get('U')).subarray(0, 48);\n      var userValidationSalt = (0, _util.stringToBytes)(dict.get('U')).subarray(32, 40);\n      var userKeySalt = (0, _util.stringToBytes)(dict.get('U')).subarray(40, 48);\n      var ownerEncryption = (0, _util.stringToBytes)(dict.get('OE'));\n      var userEncryption = (0, _util.stringToBytes)(dict.get('UE'));\n      var perms = (0, _util.stringToBytes)(dict.get('Perms'));\n      encryptionKey = createEncryptionKey20(revision, passwordBytes, ownerPassword, ownerValidationSalt, ownerKeySalt, uBytes, userPassword, userValidationSalt, userKeySalt, ownerEncryption, userEncryption, perms);\n    }\n\n    if (!encryptionKey && !password) {\n      throw new _util.PasswordException('No password given', _util.PasswordResponses.NEED_PASSWORD);\n    } else if (!encryptionKey && password) {\n      var decodedPassword = decodeUserPassword(passwordBytes, ownerPassword, revision, keyLength);\n      encryptionKey = prepareKeyData(fileIdBytes, decodedPassword, ownerPassword, userPassword, flags, revision, keyLength, encryptMetadata);\n    }\n\n    if (!encryptionKey) {\n      throw new _util.PasswordException('Incorrect Password', _util.PasswordResponses.INCORRECT_PASSWORD);\n    }\n\n    this.encryptionKey = encryptionKey;\n\n    if (algorithm >= 4) {\n      var cf = dict.get('CF');\n\n      if ((0, _primitives.isDict)(cf)) {\n        cf.suppressEncryption = true;\n      }\n\n      this.cf = cf;\n      this.stmf = dict.get('StmF') || identityName;\n      this.strf = dict.get('StrF') || identityName;\n      this.eff = dict.get('EFF') || this.stmf;\n    }\n  }\n\n  function buildObjectKey(num, gen, encryptionKey, isAes) {\n    var key = new Uint8Array(encryptionKey.length + 9),\n        i,\n        n;\n\n    for (i = 0, n = encryptionKey.length; i < n; ++i) {\n      key[i] = encryptionKey[i];\n    }\n\n    key[i++] = num & 0xFF;\n    key[i++] = num >> 8 & 0xFF;\n    key[i++] = num >> 16 & 0xFF;\n    key[i++] = gen & 0xFF;\n    key[i++] = gen >> 8 & 0xFF;\n\n    if (isAes) {\n      key[i++] = 0x73;\n      key[i++] = 0x41;\n      key[i++] = 0x6C;\n      key[i++] = 0x54;\n    }\n\n    var hash = calculateMD5(key, 0, i);\n    return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n  }\n\n  function buildCipherConstructor(cf, name, num, gen, key) {\n    if (!(0, _primitives.isName)(name)) {\n      throw new _util.FormatError('Invalid crypt filter name.');\n    }\n\n    var cryptFilter = cf.get(name.name);\n    var cfm;\n\n    if (cryptFilter !== null && cryptFilter !== undefined) {\n      cfm = cryptFilter.get('CFM');\n    }\n\n    if (!cfm || cfm.name === 'None') {\n      return function cipherTransformFactoryBuildCipherConstructorNone() {\n        return new NullCipher();\n      };\n    }\n\n    if (cfm.name === 'V2') {\n      return function cipherTransformFactoryBuildCipherConstructorV2() {\n        return new ARCFourCipher(buildObjectKey(num, gen, key, false));\n      };\n    }\n\n    if (cfm.name === 'AESV2') {\n      return function cipherTransformFactoryBuildCipherConstructorAESV2() {\n        return new AES128Cipher(buildObjectKey(num, gen, key, true));\n      };\n    }\n\n    if (cfm.name === 'AESV3') {\n      return function cipherTransformFactoryBuildCipherConstructorAESV3() {\n        return new AES256Cipher(key);\n      };\n    }\n\n    throw new _util.FormatError('Unknown crypto method');\n  }\n\n  CipherTransformFactory.prototype = {\n    createCipherTransform: function CipherTransformFactory_createCipherTransform(num, gen) {\n      if (this.algorithm === 4 || this.algorithm === 5) {\n        return new CipherTransform(buildCipherConstructor(this.cf, this.stmf, num, gen, this.encryptionKey), buildCipherConstructor(this.cf, this.strf, num, gen, this.encryptionKey));\n      }\n\n      var key = buildObjectKey(num, gen, this.encryptionKey, false);\n\n      var cipherConstructor = function buildCipherCipherConstructor() {\n        return new ARCFourCipher(key);\n      };\n\n      return new CipherTransform(cipherConstructor, cipherConstructor);\n    }\n  };\n  return CipherTransformFactory;\n}();\n\nexports.CipherTransformFactory = CipherTransformFactory;\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ColorSpace = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n  var COMPONENTS = 3;\n  alpha01 = alpha01 !== 1 ? 0 : alpha01;\n  var xRatio = w1 / w2;\n  var yRatio = h1 / h2;\n  var newIndex = 0,\n      oldIndex;\n  var xScaled = new Uint16Array(w2);\n  var w1Scanline = w1 * COMPONENTS;\n\n  for (var i = 0; i < w2; i++) {\n    xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n  }\n\n  for (var _i = 0; _i < h2; _i++) {\n    var py = Math.floor(_i * yRatio) * w1Scanline;\n\n    for (var j = 0; j < w2; j++) {\n      oldIndex = py + xScaled[j];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      dest[newIndex++] = src[oldIndex++];\n      newIndex += alpha01;\n    }\n  }\n}\n\nvar ColorSpace =\n/*#__PURE__*/\nfunction () {\n  function ColorSpace(name, numComps) {\n    _classCallCheck(this, ColorSpace);\n\n    if (this.constructor === ColorSpace) {\n      (0, _util.unreachable)('Cannot initialize ColorSpace.');\n    }\n\n    this.name = name;\n    this.numComps = numComps;\n  }\n\n  _createClass(ColorSpace, [{\n    key: \"getRgb\",\n    value: function getRgb(src, srcOffset) {\n      var rgb = new Uint8ClampedArray(3);\n      this.getRgbItem(src, srcOffset, rgb, 0);\n      return rgb;\n    }\n  }, {\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      (0, _util.unreachable)('Should not call ColorSpace.getRgbItem');\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      (0, _util.unreachable)('Should not call ColorSpace.getRgbBuffer');\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      (0, _util.unreachable)('Should not call ColorSpace.getOutputLength');\n    }\n  }, {\n    key: \"isPassthrough\",\n    value: function isPassthrough(bits) {\n      return false;\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n    }\n  }, {\n    key: \"fillRgb\",\n    value: function fillRgb(dest, originalWidth, originalHeight, width, height, actualHeight, bpc, comps, alpha01) {\n      var count = originalWidth * originalHeight;\n      var rgbBuf = null;\n      var numComponentColors = 1 << bpc;\n      var needsResizing = originalHeight !== height || originalWidth !== width;\n\n      if (this.isPassthrough(bpc)) {\n        rgbBuf = comps;\n      } else if (this.numComps === 1 && count > numComponentColors && this.name !== 'DeviceGray' && this.name !== 'DeviceRGB') {\n        var allColors = bpc <= 8 ? new Uint8Array(numComponentColors) : new Uint16Array(numComponentColors);\n\n        for (var i = 0; i < numComponentColors; i++) {\n          allColors[i] = i;\n        }\n\n        var colorMap = new Uint8ClampedArray(numComponentColors * 3);\n        this.getRgbBuffer(allColors, 0, numComponentColors, colorMap, 0, bpc, 0);\n\n        if (!needsResizing) {\n          var destPos = 0;\n\n          for (var _i2 = 0; _i2 < count; ++_i2) {\n            var key = comps[_i2] * 3;\n            dest[destPos++] = colorMap[key];\n            dest[destPos++] = colorMap[key + 1];\n            dest[destPos++] = colorMap[key + 2];\n            destPos += alpha01;\n          }\n        } else {\n          rgbBuf = new Uint8Array(count * 3);\n          var rgbPos = 0;\n\n          for (var _i3 = 0; _i3 < count; ++_i3) {\n            var _key = comps[_i3] * 3;\n\n            rgbBuf[rgbPos++] = colorMap[_key];\n            rgbBuf[rgbPos++] = colorMap[_key + 1];\n            rgbBuf[rgbPos++] = colorMap[_key + 2];\n          }\n        }\n      } else {\n        if (!needsResizing) {\n          this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n        } else {\n          rgbBuf = new Uint8ClampedArray(count * 3);\n          this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, 0);\n        }\n      }\n\n      if (rgbBuf) {\n        if (needsResizing) {\n          resizeRgbImage(rgbBuf, dest, originalWidth, originalHeight, width, height, alpha01);\n        } else {\n          var _destPos = 0,\n              _rgbPos = 0;\n\n          for (var _i4 = 0, ii = width * actualHeight; _i4 < ii; _i4++) {\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            dest[_destPos++] = rgbBuf[_rgbPos++];\n            _destPos += alpha01;\n          }\n        }\n      }\n    }\n  }, {\n    key: \"usesZeroToOneRange\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'usesZeroToOneRange', true);\n    }\n  }], [{\n    key: \"parse\",\n    value: function parse(cs, xref, res, pdfFunctionFactory) {\n      var IR = this.parseToIR(cs, xref, res, pdfFunctionFactory);\n      return this.fromIR(IR);\n    }\n  }, {\n    key: \"fromIR\",\n    value: function fromIR(IR) {\n      var name = Array.isArray(IR) ? IR[0] : IR;\n      var whitePoint, blackPoint, gamma;\n\n      switch (name) {\n        case 'DeviceGrayCS':\n          return this.singletons.gray;\n\n        case 'DeviceRgbCS':\n          return this.singletons.rgb;\n\n        case 'DeviceCmykCS':\n          return this.singletons.cmyk;\n\n        case 'CalGrayCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          gamma = IR[3];\n          return new CalGrayCS(whitePoint, blackPoint, gamma);\n\n        case 'CalRGBCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          gamma = IR[3];\n          var matrix = IR[4];\n          return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n\n        case 'PatternCS':\n          var basePatternCS = IR[1];\n\n          if (basePatternCS) {\n            basePatternCS = this.fromIR(basePatternCS);\n          }\n\n          return new PatternCS(basePatternCS);\n\n        case 'IndexedCS':\n          var baseIndexedCS = IR[1];\n          var hiVal = IR[2];\n          var lookup = IR[3];\n          return new IndexedCS(this.fromIR(baseIndexedCS), hiVal, lookup);\n\n        case 'AlternateCS':\n          var numComps = IR[1];\n          var alt = IR[2];\n          var tintFn = IR[3];\n          return new AlternateCS(numComps, this.fromIR(alt), tintFn);\n\n        case 'LabCS':\n          whitePoint = IR[1];\n          blackPoint = IR[2];\n          var range = IR[3];\n          return new LabCS(whitePoint, blackPoint, range);\n\n        default:\n          throw new _util.FormatError(\"Unknown colorspace name: \".concat(name));\n      }\n    }\n  }, {\n    key: \"parseToIR\",\n    value: function parseToIR(cs, xref) {\n      var res = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      var pdfFunctionFactory = arguments.length > 3 ? arguments[3] : undefined;\n      cs = xref.fetchIfRef(cs);\n\n      if ((0, _primitives.isName)(cs)) {\n        switch (cs.name) {\n          case 'DeviceGray':\n          case 'G':\n            return 'DeviceGrayCS';\n\n          case 'DeviceRGB':\n          case 'RGB':\n            return 'DeviceRgbCS';\n\n          case 'DeviceCMYK':\n          case 'CMYK':\n            return 'DeviceCmykCS';\n\n          case 'Pattern':\n            return ['PatternCS', null];\n\n          default:\n            if ((0, _primitives.isDict)(res)) {\n              var colorSpaces = res.get('ColorSpace');\n\n              if ((0, _primitives.isDict)(colorSpaces)) {\n                var resCS = colorSpaces.get(cs.name);\n\n                if (resCS) {\n                  if ((0, _primitives.isName)(resCS)) {\n                    return this.parseToIR(resCS, xref, res, pdfFunctionFactory);\n                  }\n\n                  cs = resCS;\n                  break;\n                }\n              }\n            }\n\n            throw new _util.FormatError(\"unrecognized colorspace \".concat(cs.name));\n        }\n      }\n\n      if (Array.isArray(cs)) {\n        var mode = xref.fetchIfRef(cs[0]).name;\n        var numComps, params, alt, whitePoint, blackPoint, gamma;\n\n        switch (mode) {\n          case 'DeviceGray':\n          case 'G':\n            return 'DeviceGrayCS';\n\n          case 'DeviceRGB':\n          case 'RGB':\n            return 'DeviceRgbCS';\n\n          case 'DeviceCMYK':\n          case 'CMYK':\n            return 'DeviceCmykCS';\n\n          case 'CalGray':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            gamma = params.get('Gamma');\n            return ['CalGrayCS', whitePoint, blackPoint, gamma];\n\n          case 'CalRGB':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            gamma = params.getArray('Gamma');\n            var matrix = params.getArray('Matrix');\n            return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix];\n\n          case 'ICCBased':\n            var stream = xref.fetchIfRef(cs[1]);\n            var dict = stream.dict;\n            numComps = dict.get('N');\n            alt = dict.get('Alternate');\n\n            if (alt) {\n              var altIR = this.parseToIR(alt, xref, res, pdfFunctionFactory);\n              var altCS = this.fromIR(altIR, pdfFunctionFactory);\n\n              if (altCS.numComps === numComps) {\n                return altIR;\n              }\n\n              (0, _util.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');\n            }\n\n            if (numComps === 1) {\n              return 'DeviceGrayCS';\n            } else if (numComps === 3) {\n              return 'DeviceRgbCS';\n            } else if (numComps === 4) {\n              return 'DeviceCmykCS';\n            }\n\n            break;\n\n          case 'Pattern':\n            var basePatternCS = cs[1] || null;\n\n            if (basePatternCS) {\n              basePatternCS = this.parseToIR(basePatternCS, xref, res, pdfFunctionFactory);\n            }\n\n            return ['PatternCS', basePatternCS];\n\n          case 'Indexed':\n          case 'I':\n            var baseIndexedCS = this.parseToIR(cs[1], xref, res, pdfFunctionFactory);\n            var hiVal = xref.fetchIfRef(cs[2]) + 1;\n            var lookup = xref.fetchIfRef(cs[3]);\n\n            if ((0, _primitives.isStream)(lookup)) {\n              lookup = lookup.getBytes();\n            }\n\n            return ['IndexedCS', baseIndexedCS, hiVal, lookup];\n\n          case 'Separation':\n          case 'DeviceN':\n            var name = xref.fetchIfRef(cs[1]);\n            numComps = Array.isArray(name) ? name.length : 1;\n            alt = this.parseToIR(cs[2], xref, res, pdfFunctionFactory);\n            var tintFn = pdfFunctionFactory.create(xref.fetchIfRef(cs[3]));\n            return ['AlternateCS', numComps, alt, tintFn];\n\n          case 'Lab':\n            params = xref.fetchIfRef(cs[1]);\n            whitePoint = params.getArray('WhitePoint');\n            blackPoint = params.getArray('BlackPoint');\n            var range = params.getArray('Range');\n            return ['LabCS', whitePoint, blackPoint, range];\n\n          default:\n            throw new _util.FormatError(\"unimplemented color space object \\\"\".concat(mode, \"\\\"\"));\n        }\n      }\n\n      throw new _util.FormatError(\"unrecognized color space object: \\\"\".concat(cs, \"\\\"\"));\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decode, numComps) {\n      if (!Array.isArray(decode)) {\n        return true;\n      }\n\n      if (numComps * 2 !== decode.length) {\n        (0, _util.warn)('The decode map is not the correct length');\n        return true;\n      }\n\n      for (var i = 0, ii = decode.length; i < ii; i += 2) {\n        if (decode[i] !== 0 || decode[i + 1] !== 1) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: \"singletons\",\n    get: function get() {\n      return (0, _util.shadow)(this, 'singletons', {\n        get gray() {\n          return (0, _util.shadow)(this, 'gray', new DeviceGrayCS());\n        },\n\n        get rgb() {\n          return (0, _util.shadow)(this, 'rgb', new DeviceRgbCS());\n        },\n\n        get cmyk() {\n          return (0, _util.shadow)(this, 'cmyk', new DeviceCmykCS());\n        }\n\n      });\n    }\n  }]);\n\n  return ColorSpace;\n}();\n\nexports.ColorSpace = ColorSpace;\n\nvar AlternateCS =\n/*#__PURE__*/\nfunction (_ColorSpace) {\n  _inherits(AlternateCS, _ColorSpace);\n\n  function AlternateCS(numComps, base, tintFn) {\n    var _this;\n\n    _classCallCheck(this, AlternateCS);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(AlternateCS).call(this, 'Alternate', numComps));\n    _this.base = base;\n    _this.tintFn = tintFn;\n    _this.tmpBuf = new Float32Array(base.numComps);\n    return _this;\n  }\n\n  _createClass(AlternateCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var tmpBuf = this.tmpBuf;\n      this.tintFn(src, srcOffset, tmpBuf, 0);\n      this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var tintFn = this.tintFn;\n      var base = this.base;\n      var scale = 1 / ((1 << bits) - 1);\n      var baseNumComps = base.numComps;\n      var usesZeroToOneRange = base.usesZeroToOneRange;\n      var isPassthrough = (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n      var pos = isPassthrough ? destOffset : 0;\n      var baseBuf = isPassthrough ? dest : new Uint8ClampedArray(baseNumComps * count);\n      var numComps = this.numComps;\n      var scaled = new Float32Array(numComps);\n      var tinted = new Float32Array(baseNumComps);\n      var i, j;\n\n      for (i = 0; i < count; i++) {\n        for (j = 0; j < numComps; j++) {\n          scaled[j] = src[srcOffset++] * scale;\n        }\n\n        tintFn(scaled, 0, tinted, 0);\n\n        if (usesZeroToOneRange) {\n          for (j = 0; j < baseNumComps; j++) {\n            baseBuf[pos++] = tinted[j] * 255;\n          }\n        } else {\n          base.getRgbItem(tinted, 0, baseBuf, pos);\n          pos += baseNumComps;\n        }\n      }\n\n      if (!isPassthrough) {\n        base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return this.base.getOutputLength(inputLength * this.base.numComps / this.numComps, alpha01);\n    }\n  }]);\n\n  return AlternateCS;\n}(ColorSpace);\n\nvar PatternCS =\n/*#__PURE__*/\nfunction (_ColorSpace2) {\n  _inherits(PatternCS, _ColorSpace2);\n\n  function PatternCS(baseCS) {\n    var _this2;\n\n    _classCallCheck(this, PatternCS);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(PatternCS).call(this, 'Pattern', null));\n    _this2.base = baseCS;\n    return _this2;\n  }\n\n  _createClass(PatternCS, [{\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      (0, _util.unreachable)('Should not call PatternCS.isDefaultDecode');\n    }\n  }]);\n\n  return PatternCS;\n}(ColorSpace);\n\nvar IndexedCS =\n/*#__PURE__*/\nfunction (_ColorSpace3) {\n  _inherits(IndexedCS, _ColorSpace3);\n\n  function IndexedCS(base, highVal, lookup) {\n    var _this3;\n\n    _classCallCheck(this, IndexedCS);\n\n    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(IndexedCS).call(this, 'Indexed', 1));\n    _this3.base = base;\n    _this3.highVal = highVal;\n    var baseNumComps = base.numComps;\n    var length = baseNumComps * highVal;\n\n    if ((0, _primitives.isStream)(lookup)) {\n      _this3.lookup = new Uint8Array(length);\n      var bytes = lookup.getBytes(length);\n\n      _this3.lookup.set(bytes);\n    } else if ((0, _util.isString)(lookup)) {\n      _this3.lookup = new Uint8Array(length);\n\n      for (var i = 0; i < length; ++i) {\n        _this3.lookup[i] = lookup.charCodeAt(i);\n      }\n    } else if (lookup instanceof Uint8Array) {\n      _this3.lookup = lookup;\n    } else {\n      throw new _util.FormatError(\"Unrecognized lookup table: \".concat(lookup));\n    }\n\n    return _this3;\n  }\n\n  _createClass(IndexedCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var numComps = this.base.numComps;\n      var start = src[srcOffset] * numComps;\n      this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var base = this.base;\n      var numComps = base.numComps;\n      var outputDelta = base.getOutputLength(numComps, alpha01);\n      var lookup = this.lookup;\n\n      for (var i = 0; i < count; ++i) {\n        var lookupPos = src[srcOffset++] * numComps;\n        base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n        destOffset += outputDelta;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n    }\n  }, {\n    key: \"isDefaultDecode\",\n    value: function isDefaultDecode(decodeMap, bpc) {\n      if (!Array.isArray(decodeMap)) {\n        return true;\n      }\n\n      if (decodeMap.length !== 2) {\n        (0, _util.warn)('Decode map length is not correct');\n        return true;\n      }\n\n      if (!Number.isInteger(bpc) || bpc < 1) {\n        (0, _util.warn)('Bits per component is not correct');\n        return true;\n      }\n\n      return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n    }\n  }]);\n\n  return IndexedCS;\n}(ColorSpace);\n\nvar DeviceGrayCS =\n/*#__PURE__*/\nfunction (_ColorSpace4) {\n  _inherits(DeviceGrayCS, _ColorSpace4);\n\n  function DeviceGrayCS() {\n    _classCallCheck(this, DeviceGrayCS);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(DeviceGrayCS).call(this, 'DeviceGray', 1));\n  }\n\n  _createClass(DeviceGrayCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      var c = src[srcOffset] * 255;\n      dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset,\n          q = destOffset;\n\n      for (var i = 0; i < count; ++i) {\n        var c = scale * src[j++];\n        dest[q++] = c;\n        dest[q++] = c;\n        dest[q++] = c;\n        q += alpha01;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01);\n    }\n  }]);\n\n  return DeviceGrayCS;\n}(ColorSpace);\n\nvar DeviceRgbCS =\n/*#__PURE__*/\nfunction (_ColorSpace5) {\n  _inherits(DeviceRgbCS, _ColorSpace5);\n\n  function DeviceRgbCS() {\n    _classCallCheck(this, DeviceRgbCS);\n\n    return _possibleConstructorReturn(this, _getPrototypeOf(DeviceRgbCS).call(this, 'DeviceRGB', 3));\n  }\n\n  _createClass(DeviceRgbCS, [{\n    key: \"getRgbItem\",\n    value: function getRgbItem(src, srcOffset, dest, destOffset) {\n      dest[destOffset] = src[srcOffset] * 255;\n      dest[destOffset + 1] = src[srcOffset + 1] * 255;\n      dest[destOffset + 2] = src[srcOffset + 2] * 255;\n    }\n  }, {\n    key: \"getRgbBuffer\",\n    value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n      if (bits === 8 && alpha01 === 0) {\n        dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n        return;\n      }\n\n      var scale = 255 / ((1 << bits) - 1);\n      var j = srcOffset,\n          q = destOffset;\n\n      for (var i = 0; i < count; ++i) {\n        dest[q++] = scale * src[j++];\n        dest[q++] = scale * src[j++];\n        dest[q++] = scale * src[j++];\n        q += alpha01;\n      }\n    }\n  }, {\n    key: \"getOutputLength\",\n    value: function getOutputLength(inputLength, alpha01) {\n      return inputLength * (3 + alpha01) / 3 | 0;\n    }\n  }, {\n    key: \"isPassthrough\",\n    value: function isPassthrough(bits) {\n      return bits === 8;\n    }\n  }]);\n\n  return DeviceRgbCS;\n}(ColorSpace);\n\nvar DeviceCmykCS = function DeviceCmykCSClosure() {\n  function convertToRgb(src, srcOffset, srcScale, dest, destOffset) {\n    var c = src[srcOffset] * srcScale;\n    var m = src[srcOffset + 1] * srcScale;\n    var y = src[srcOffset + 2] * srcScale;\n    var k = src[srcOffset + 3] * srcScale;\n    dest[destOffset] = 255 + c * (-4.387332384609988 * c + 54.48615194189176 * m + 18.82290502165302 * y + 212.25662451639585 * k + -285.2331026137004) + m * (1.7149763477362134 * m - 5.6096736904047315 * y + -17.873870861415444 * k - 5.497006427196366) + y * (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) + k * (-21.86122147463605 * k - 189.48180835922747);\n    dest[destOffset + 1] = 255 + c * (8.841041422036149 * c + 60.118027045597366 * m + 6.871425592049007 * y + 31.159100130055922 * k + -79.2970844816548) + m * (-15.310361306967817 * m + 17.575251261109482 * y + 131.35250912493976 * k - 190.9453302588951) + y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) + k * (-20.737325471181034 * k - 187.80453709719578);\n    dest[destOffset + 2] = 255 + c * (0.8842522430003296 * c + 8.078677503112928 * m + 30.89978309703729 * y - 0.23883238689178934 * k + -14.183576799673286) + m * (10.49593273432072 * m + 63.02378494754052 * y + 50.606957656360734 * k - 112.23884253719248) + y * (0.03296041114873217 * y + 115.60384449646641 * k + -193.58209356861505) + k * (-22.33816807309886 * k - 180.12613974708367);\n  }\n\n  var DeviceCmykCS =\n  /*#__PURE__*/\n  function (_ColorSpace6) {\n    _inherits(DeviceCmykCS, _ColorSpace6);\n\n    function DeviceCmykCS() {\n      _classCallCheck(this, DeviceCmykCS);\n\n      return _possibleConstructorReturn(this, _getPrototypeOf(DeviceCmykCS).call(this, 'DeviceCMYK', 4));\n    }\n\n    _createClass(DeviceCmykCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(src, srcOffset, 1, dest, destOffset);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; i++) {\n          convertToRgb(src, srcOffset, scale, dest, destOffset);\n          srcOffset += 4;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength / 4 * (3 + alpha01) | 0;\n      }\n    }]);\n\n    return DeviceCmykCS;\n  }(ColorSpace);\n\n  return DeviceCmykCS;\n}();\n\nvar CalGrayCS = function CalGrayCSClosure() {\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    var A = src[srcOffset] * scale;\n    var AG = Math.pow(A, cs.G);\n    var L = cs.YW * AG;\n    var val = Math.max(295.8 * Math.pow(L, 0.333333333333333333) - 40.8, 0);\n    dest[destOffset] = val;\n    dest[destOffset + 1] = val;\n    dest[destOffset + 2] = val;\n  }\n\n  var CalGrayCS =\n  /*#__PURE__*/\n  function (_ColorSpace7) {\n    _inherits(CalGrayCS, _ColorSpace7);\n\n    function CalGrayCS(whitePoint, blackPoint, gamma) {\n      var _this4;\n\n      _classCallCheck(this, CalGrayCS);\n\n      _this4 = _possibleConstructorReturn(this, _getPrototypeOf(CalGrayCS).call(this, 'CalGray', 1));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space CalGray');\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      gamma = gamma || 1;\n      _this4.XW = whitePoint[0];\n      _this4.YW = whitePoint[1];\n      _this4.ZW = whitePoint[2];\n      _this4.XB = blackPoint[0];\n      _this4.YB = blackPoint[1];\n      _this4.ZB = blackPoint[2];\n      _this4.G = gamma;\n\n      if (_this4.XW < 0 || _this4.ZW < 0 || _this4.YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components for \".concat(_this4.name) + ', no fallback available');\n      }\n\n      if (_this4.XB < 0 || _this4.YB < 0 || _this4.ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint for \".concat(_this4.name, \", falling back to default.\"));\n        _this4.XB = _this4.YB = _this4.ZB = 0;\n      }\n\n      if (_this4.XB !== 0 || _this4.YB !== 0 || _this4.ZB !== 0) {\n        (0, _util.warn)(\"\".concat(_this4.name, \", BlackPoint: XB: \").concat(_this4.XB, \", YB: \").concat(_this4.YB, \", \") + \"ZB: \".concat(_this4.ZB, \", only default values are supported.\"));\n      }\n\n      if (_this4.G < 1) {\n        (0, _util.info)(\"Invalid Gamma: \".concat(_this4.G, \" for \").concat(_this4.name, \", \") + 'falling back to default.');\n        _this4.G = 1;\n      }\n\n      return _this4;\n    }\n\n    _createClass(CalGrayCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; ++i) {\n          convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n          srcOffset += 1;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01);\n      }\n    }]);\n\n    return CalGrayCS;\n  }(ColorSpace);\n\n  return CalGrayCS;\n}();\n\nvar CalRGBCS = function CalRGBCSClosure() {\n  var BRADFORD_SCALE_MATRIX = new Float32Array([0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296]);\n  var BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287, 0.0400428, 0.9684867]);\n  var SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([3.2404542, -1.5371385, -0.4985314, -0.9692660, 1.8760108, 0.0415560, 0.0556434, -0.2040259, 1.0572252]);\n  var FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n  var tempNormalizeMatrix = new Float32Array(3);\n  var tempConvertMatrix1 = new Float32Array(3);\n  var tempConvertMatrix2 = new Float32Array(3);\n  var DECODE_L_CONSTANT = Math.pow((8 + 16) / 116, 3) / 8.0;\n\n  function matrixProduct(a, b, result) {\n    result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n    result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n    result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n  }\n\n  function convertToFlat(sourceWhitePoint, LMS, result) {\n    result[0] = LMS[0] * 1 / sourceWhitePoint[0];\n    result[1] = LMS[1] * 1 / sourceWhitePoint[1];\n    result[2] = LMS[2] * 1 / sourceWhitePoint[2];\n  }\n\n  function convertToD65(sourceWhitePoint, LMS, result) {\n    var D65X = 0.95047;\n    var D65Y = 1;\n    var D65Z = 1.08883;\n    result[0] = LMS[0] * D65X / sourceWhitePoint[0];\n    result[1] = LMS[1] * D65Y / sourceWhitePoint[1];\n    result[2] = LMS[2] * D65Z / sourceWhitePoint[2];\n  }\n\n  function sRGBTransferFunction(color) {\n    if (color <= 0.0031308) {\n      return adjustToRange(0, 1, 12.92 * color);\n    }\n\n    return adjustToRange(0, 1, (1 + 0.055) * Math.pow(color, 1 / 2.4) - 0.055);\n  }\n\n  function adjustToRange(min, max, value) {\n    return Math.max(min, Math.min(max, value));\n  }\n\n  function decodeL(L) {\n    if (L < 0) {\n      return -decodeL(-L);\n    }\n\n    if (L > 8.0) {\n      return Math.pow((L + 16) / 116, 3);\n    }\n\n    return L * DECODE_L_CONSTANT;\n  }\n\n  function compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n    if (sourceBlackPoint[0] === 0 && sourceBlackPoint[1] === 0 && sourceBlackPoint[2] === 0) {\n      result[0] = XYZ_Flat[0];\n      result[1] = XYZ_Flat[1];\n      result[2] = XYZ_Flat[2];\n      return;\n    }\n\n    var zeroDecodeL = decodeL(0);\n    var X_DST = zeroDecodeL;\n    var X_SRC = decodeL(sourceBlackPoint[0]);\n    var Y_DST = zeroDecodeL;\n    var Y_SRC = decodeL(sourceBlackPoint[1]);\n    var Z_DST = zeroDecodeL;\n    var Z_SRC = decodeL(sourceBlackPoint[2]);\n    var X_Scale = (1 - X_DST) / (1 - X_SRC);\n    var X_Offset = 1 - X_Scale;\n    var Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n    var Y_Offset = 1 - Y_Scale;\n    var Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n    var Z_Offset = 1 - Z_Scale;\n    result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n    result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n    result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n  }\n\n  function normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n    if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n      result[0] = XYZ_In[0];\n      result[1] = XYZ_In[1];\n      result[2] = XYZ_In[2];\n      return;\n    }\n\n    var LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    var LMS_Flat = tempNormalizeMatrix;\n    convertToFlat(sourceWhitePoint, LMS, LMS_Flat);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_Flat, result);\n  }\n\n  function normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n    var LMS = result;\n    matrixProduct(BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n    var LMS_D65 = tempNormalizeMatrix;\n    convertToD65(sourceWhitePoint, LMS, LMS_D65);\n    matrixProduct(BRADFORD_SCALE_INVERSE_MATRIX, LMS_D65, result);\n  }\n\n  function convertToRgb(cs, src, srcOffset, dest, destOffset, scale) {\n    var A = adjustToRange(0, 1, src[srcOffset] * scale);\n    var B = adjustToRange(0, 1, src[srcOffset + 1] * scale);\n    var C = adjustToRange(0, 1, src[srcOffset + 2] * scale);\n    var AGR = Math.pow(A, cs.GR);\n    var BGG = Math.pow(B, cs.GG);\n    var CGB = Math.pow(C, cs.GB);\n    var X = cs.MXA * AGR + cs.MXB * BGG + cs.MXC * CGB;\n    var Y = cs.MYA * AGR + cs.MYB * BGG + cs.MYC * CGB;\n    var Z = cs.MZA * AGR + cs.MZB * BGG + cs.MZC * CGB;\n    var XYZ = tempConvertMatrix1;\n    XYZ[0] = X;\n    XYZ[1] = Y;\n    XYZ[2] = Z;\n    var XYZ_Flat = tempConvertMatrix2;\n    normalizeWhitePointToFlat(cs.whitePoint, XYZ, XYZ_Flat);\n    var XYZ_Black = tempConvertMatrix1;\n    compensateBlackPoint(cs.blackPoint, XYZ_Flat, XYZ_Black);\n    var XYZ_D65 = tempConvertMatrix2;\n    normalizeWhitePointToD65(FLAT_WHITEPOINT_MATRIX, XYZ_Black, XYZ_D65);\n    var SRGB = tempConvertMatrix1;\n    matrixProduct(SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n    dest[destOffset] = sRGBTransferFunction(SRGB[0]) * 255;\n    dest[destOffset + 1] = sRGBTransferFunction(SRGB[1]) * 255;\n    dest[destOffset + 2] = sRGBTransferFunction(SRGB[2]) * 255;\n  }\n\n  var CalRGBCS =\n  /*#__PURE__*/\n  function (_ColorSpace8) {\n    _inherits(CalRGBCS, _ColorSpace8);\n\n    function CalRGBCS(whitePoint, blackPoint, gamma, matrix) {\n      var _this5;\n\n      _classCallCheck(this, CalRGBCS);\n\n      _this5 = _possibleConstructorReturn(this, _getPrototypeOf(CalRGBCS).call(this, 'CalRGB', 3));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space CalRGB');\n      }\n\n      blackPoint = blackPoint || new Float32Array(3);\n      gamma = gamma || new Float32Array([1, 1, 1]);\n      matrix = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n      var XW = whitePoint[0];\n      var YW = whitePoint[1];\n      var ZW = whitePoint[2];\n      _this5.whitePoint = whitePoint;\n      var XB = blackPoint[0];\n      var YB = blackPoint[1];\n      var ZB = blackPoint[2];\n      _this5.blackPoint = blackPoint;\n      _this5.GR = gamma[0];\n      _this5.GG = gamma[1];\n      _this5.GB = gamma[2];\n      _this5.MXA = matrix[0];\n      _this5.MYA = matrix[1];\n      _this5.MZA = matrix[2];\n      _this5.MXB = matrix[3];\n      _this5.MYB = matrix[4];\n      _this5.MZB = matrix[5];\n      _this5.MXC = matrix[6];\n      _this5.MYC = matrix[7];\n      _this5.MZC = matrix[8];\n\n      if (XW < 0 || ZW < 0 || YW !== 1) {\n        throw new _util.FormatError(\"Invalid WhitePoint components for \".concat(_this5.name) + ', no fallback available');\n      }\n\n      if (XB < 0 || YB < 0 || ZB < 0) {\n        (0, _util.info)(\"Invalid BlackPoint for \".concat(_this5.name, \" [\").concat(XB, \", \").concat(YB, \", \").concat(ZB, \"], \") + 'falling back to default.');\n        _this5.blackPoint = new Float32Array(3);\n      }\n\n      if (_this5.GR < 0 || _this5.GG < 0 || _this5.GB < 0) {\n        (0, _util.info)(\"Invalid Gamma [\".concat(_this5.GR, \", \").concat(_this5.GG, \", \").concat(_this5.GB, \"] for \") + \"\".concat(_this5.name, \", falling back to default.\"));\n        _this5.GR = _this5.GG = _this5.GB = 1;\n      }\n\n      return _this5;\n    }\n\n    _createClass(CalRGBCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, dest, destOffset, 1);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var scale = 1 / ((1 << bits) - 1);\n\n        for (var i = 0; i < count; ++i) {\n          convertToRgb(this, src, srcOffset, dest, destOffset, scale);\n          srcOffset += 3;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01) / 3 | 0;\n      }\n    }]);\n\n    return CalRGBCS;\n  }(ColorSpace);\n\n  return CalRGBCS;\n}();\n\nvar LabCS = function LabCSClosure() {\n  function fn_g(x) {\n    var result;\n\n    if (x >= 6 / 29) {\n      result = x * x * x;\n    } else {\n      result = 108 / 841 * (x - 4 / 29);\n    }\n\n    return result;\n  }\n\n  function decode(value, high1, low2, high2) {\n    return low2 + value * (high2 - low2) / high1;\n  }\n\n  function convertToRgb(cs, src, srcOffset, maxVal, dest, destOffset) {\n    var Ls = src[srcOffset];\n    var as = src[srcOffset + 1];\n    var bs = src[srcOffset + 2];\n\n    if (maxVal !== false) {\n      Ls = decode(Ls, maxVal, 0, 100);\n      as = decode(as, maxVal, cs.amin, cs.amax);\n      bs = decode(bs, maxVal, cs.bmin, cs.bmax);\n    }\n\n    as = as > cs.amax ? cs.amax : as < cs.amin ? cs.amin : as;\n    bs = bs > cs.bmax ? cs.bmax : bs < cs.bmin ? cs.bmin : bs;\n    var M = (Ls + 16) / 116;\n    var L = M + as / 500;\n    var N = M - bs / 200;\n    var X = cs.XW * fn_g(L);\n    var Y = cs.YW * fn_g(M);\n    var Z = cs.ZW * fn_g(N);\n    var r, g, b;\n\n    if (cs.ZW < 1) {\n      r = X * 3.1339 + Y * -1.6170 + Z * -0.4906;\n      g = X * -0.9785 + Y * 1.9160 + Z * 0.0333;\n      b = X * 0.0720 + Y * -0.2290 + Z * 1.4057;\n    } else {\n      r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n      g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n      b = X * 0.0557 + Y * -0.2040 + Z * 1.0570;\n    }\n\n    dest[destOffset] = Math.sqrt(r) * 255;\n    dest[destOffset + 1] = Math.sqrt(g) * 255;\n    dest[destOffset + 2] = Math.sqrt(b) * 255;\n  }\n\n  var LabCS =\n  /*#__PURE__*/\n  function (_ColorSpace9) {\n    _inherits(LabCS, _ColorSpace9);\n\n    function LabCS(whitePoint, blackPoint, range) {\n      var _this6;\n\n      _classCallCheck(this, LabCS);\n\n      _this6 = _possibleConstructorReturn(this, _getPrototypeOf(LabCS).call(this, 'Lab', 3));\n\n      if (!whitePoint) {\n        throw new _util.FormatError('WhitePoint missing - required for color space Lab');\n      }\n\n      blackPoint = blackPoint || [0, 0, 0];\n      range = range || [-100, 100, -100, 100];\n      _this6.XW = whitePoint[0];\n      _this6.YW = whitePoint[1];\n      _this6.ZW = whitePoint[2];\n      _this6.amin = range[0];\n      _this6.amax = range[1];\n      _this6.bmin = range[2];\n      _this6.bmax = range[3];\n      _this6.XB = blackPoint[0];\n      _this6.YB = blackPoint[1];\n      _this6.ZB = blackPoint[2];\n\n      if (_this6.XW < 0 || _this6.ZW < 0 || _this6.YW !== 1) {\n        throw new _util.FormatError('Invalid WhitePoint components, no fallback available');\n      }\n\n      if (_this6.XB < 0 || _this6.YB < 0 || _this6.ZB < 0) {\n        (0, _util.info)('Invalid BlackPoint, falling back to default');\n        _this6.XB = _this6.YB = _this6.ZB = 0;\n      }\n\n      if (_this6.amin > _this6.amax || _this6.bmin > _this6.bmax) {\n        (0, _util.info)('Invalid Range, falling back to defaults');\n        _this6.amin = -100;\n        _this6.amax = 100;\n        _this6.bmin = -100;\n        _this6.bmax = 100;\n      }\n\n      return _this6;\n    }\n\n    _createClass(LabCS, [{\n      key: \"getRgbItem\",\n      value: function getRgbItem(src, srcOffset, dest, destOffset) {\n        convertToRgb(this, src, srcOffset, false, dest, destOffset);\n      }\n    }, {\n      key: \"getRgbBuffer\",\n      value: function getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n        var maxVal = (1 << bits) - 1;\n\n        for (var i = 0; i < count; i++) {\n          convertToRgb(this, src, srcOffset, maxVal, dest, destOffset);\n          srcOffset += 3;\n          destOffset += 3 + alpha01;\n        }\n      }\n    }, {\n      key: \"getOutputLength\",\n      value: function getOutputLength(inputLength, alpha01) {\n        return inputLength * (3 + alpha01) / 3 | 0;\n      }\n    }, {\n      key: \"isDefaultDecode\",\n      value: function isDefaultDecode(decodeMap, bpc) {\n        return true;\n      }\n    }, {\n      key: \"usesZeroToOneRange\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'usesZeroToOneRange', false);\n      }\n    }]);\n\n    return LabCS;\n  }(ColorSpace);\n\n  return LabCS;\n}();\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AnnotationFactory = exports.AnnotationBorderStyle = exports.Annotation = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _obj = __w_pdfjs_require__(154);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _get(target, property, receiver) { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar AnnotationFactory =\n/*#__PURE__*/\nfunction () {\n  function AnnotationFactory() {\n    _classCallCheck(this, AnnotationFactory);\n  }\n\n  _createClass(AnnotationFactory, null, [{\n    key: \"create\",\n    value: function create(xref, ref, pdfManager, idFactory) {\n      return pdfManager.ensure(this, '_create', [xref, ref, pdfManager, idFactory]);\n    }\n  }, {\n    key: \"_create\",\n    value: function _create(xref, ref, pdfManager, idFactory) {\n      var dict = xref.fetchIfRef(ref);\n\n      if (!(0, _primitives.isDict)(dict)) {\n        return;\n      }\n\n      var id = (0, _primitives.isRef)(ref) ? ref.toString() : 'annot_' + idFactory.createObjId();\n      var subtype = dict.get('Subtype');\n      subtype = (0, _primitives.isName)(subtype) ? subtype.name : null;\n      var parameters = {\n        xref: xref,\n        dict: dict,\n        ref: (0, _primitives.isRef)(ref) ? ref : null,\n        subtype: subtype,\n        id: id,\n        pdfManager: pdfManager\n      };\n\n      switch (subtype) {\n        case 'Link':\n          return new LinkAnnotation(parameters);\n\n        case 'Text':\n          return new TextAnnotation(parameters);\n\n        case 'Widget':\n          var fieldType = (0, _util.getInheritableProperty)({\n            dict: dict,\n            key: 'FT'\n          });\n          fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n\n          switch (fieldType) {\n            case 'Tx':\n              return new TextWidgetAnnotation(parameters);\n\n            case 'Btn':\n              return new ButtonWidgetAnnotation(parameters);\n\n            case 'Ch':\n              return new ChoiceWidgetAnnotation(parameters);\n          }\n\n          (0, _util.warn)('Unimplemented widget field type \"' + fieldType + '\", ' + 'falling back to base field type.');\n          return new WidgetAnnotation(parameters);\n\n        case 'Popup':\n          return new PopupAnnotation(parameters);\n\n        case 'Line':\n          return new LineAnnotation(parameters);\n\n        case 'Square':\n          return new SquareAnnotation(parameters);\n\n        case 'Circle':\n          return new CircleAnnotation(parameters);\n\n        case 'PolyLine':\n          return new PolylineAnnotation(parameters);\n\n        case 'Polygon':\n          return new PolygonAnnotation(parameters);\n\n        case 'Ink':\n          return new InkAnnotation(parameters);\n\n        case 'Highlight':\n          return new HighlightAnnotation(parameters);\n\n        case 'Underline':\n          return new UnderlineAnnotation(parameters);\n\n        case 'Squiggly':\n          return new SquigglyAnnotation(parameters);\n\n        case 'StrikeOut':\n          return new StrikeOutAnnotation(parameters);\n\n        case 'Stamp':\n          return new StampAnnotation(parameters);\n\n        case 'FileAttachment':\n          return new FileAttachmentAnnotation(parameters);\n\n        default:\n          if (!subtype) {\n            (0, _util.warn)('Annotation is missing the required /Subtype.');\n          } else {\n            (0, _util.warn)('Unimplemented annotation type \"' + subtype + '\", ' + 'falling back to base annotation.');\n          }\n\n          return new Annotation(parameters);\n      }\n    }\n  }]);\n\n  return AnnotationFactory;\n}();\n\nexports.AnnotationFactory = AnnotationFactory;\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n  var bounds = _util.Util.getAxialAlignedBoundingBox(bbox, matrix);\n\n  var minX = bounds[0];\n  var minY = bounds[1];\n  var maxX = bounds[2];\n  var maxY = bounds[3];\n\n  if (minX === maxX || minY === maxY) {\n    return [1, 0, 0, 1, rect[0], rect[1]];\n  }\n\n  var xRatio = (rect[2] - rect[0]) / (maxX - minX);\n  var yRatio = (rect[3] - rect[1]) / (maxY - minY);\n  return [xRatio, 0, 0, yRatio, rect[0] - minX * xRatio, rect[1] - minY * yRatio];\n}\n\nvar Annotation =\n/*#__PURE__*/\nfunction () {\n  function Annotation(params) {\n    _classCallCheck(this, Annotation);\n\n    var dict = params.dict;\n    this.setFlags(dict.get('F'));\n    this.setRectangle(dict.getArray('Rect'));\n    this.setColor(dict.getArray('C'));\n    this.setBorderStyle(dict);\n    this.setAppearance(dict);\n    this.data = {\n      annotationFlags: this.flags,\n      borderStyle: this.borderStyle,\n      color: this.color,\n      hasAppearance: !!this.appearance,\n      id: params.id,\n      rect: this.rectangle,\n      subtype: params.subtype\n    };\n  }\n\n  _createClass(Annotation, [{\n    key: \"_hasFlag\",\n    value: function _hasFlag(flags, flag) {\n      return !!(flags & flag);\n    }\n  }, {\n    key: \"_isViewable\",\n    value: function _isViewable(flags) {\n      return !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN) && !this._hasFlag(flags, _util.AnnotationFlag.NOVIEW);\n    }\n  }, {\n    key: \"_isPrintable\",\n    value: function _isPrintable(flags) {\n      return this._hasFlag(flags, _util.AnnotationFlag.PRINT) && !this._hasFlag(flags, _util.AnnotationFlag.INVISIBLE) && !this._hasFlag(flags, _util.AnnotationFlag.HIDDEN);\n    }\n  }, {\n    key: \"setFlags\",\n    value: function setFlags(flags) {\n      this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n    }\n  }, {\n    key: \"hasFlag\",\n    value: function hasFlag(flag) {\n      return this._hasFlag(this.flags, flag);\n    }\n  }, {\n    key: \"setRectangle\",\n    value: function setRectangle(rectangle) {\n      if (Array.isArray(rectangle) && rectangle.length === 4) {\n        this.rectangle = _util.Util.normalizeRect(rectangle);\n      } else {\n        this.rectangle = [0, 0, 0, 0];\n      }\n    }\n  }, {\n    key: \"setColor\",\n    value: function setColor(color) {\n      var rgbColor = new Uint8ClampedArray(3);\n\n      if (!Array.isArray(color)) {\n        this.color = rgbColor;\n        return;\n      }\n\n      switch (color.length) {\n        case 0:\n          this.color = null;\n          break;\n\n        case 1:\n          _colorspace.ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        case 3:\n          _colorspace.ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        case 4:\n          _colorspace.ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n\n          this.color = rgbColor;\n          break;\n\n        default:\n          this.color = rgbColor;\n          break;\n      }\n    }\n  }, {\n    key: \"setBorderStyle\",\n    value: function setBorderStyle(borderStyle) {\n      this.borderStyle = new AnnotationBorderStyle();\n\n      if (!(0, _primitives.isDict)(borderStyle)) {\n        return;\n      }\n\n      if (borderStyle.has('BS')) {\n        var dict = borderStyle.get('BS');\n        var dictType = dict.get('Type');\n\n        if (!dictType || (0, _primitives.isName)(dictType, 'Border')) {\n          this.borderStyle.setWidth(dict.get('W'));\n          this.borderStyle.setStyle(dict.get('S'));\n          this.borderStyle.setDashArray(dict.getArray('D'));\n        }\n      } else if (borderStyle.has('Border')) {\n        var array = borderStyle.getArray('Border');\n\n        if (Array.isArray(array) && array.length >= 3) {\n          this.borderStyle.setHorizontalCornerRadius(array[0]);\n          this.borderStyle.setVerticalCornerRadius(array[1]);\n          this.borderStyle.setWidth(array[2]);\n\n          if (array.length === 4) {\n            this.borderStyle.setDashArray(array[3]);\n          }\n        }\n      } else {\n        this.borderStyle.setWidth(0);\n      }\n    }\n  }, {\n    key: \"setAppearance\",\n    value: function setAppearance(dict) {\n      this.appearance = null;\n      var appearanceStates = dict.get('AP');\n\n      if (!(0, _primitives.isDict)(appearanceStates)) {\n        return;\n      }\n\n      var normalAppearanceState = appearanceStates.get('N');\n\n      if ((0, _primitives.isStream)(normalAppearanceState)) {\n        this.appearance = normalAppearanceState;\n        return;\n      }\n\n      if (!(0, _primitives.isDict)(normalAppearanceState)) {\n        return;\n      }\n\n      var as = dict.get('AS');\n\n      if (!(0, _primitives.isName)(as) || !normalAppearanceState.has(as.name)) {\n        return;\n      }\n\n      this.appearance = normalAppearanceState.get(as.name);\n    }\n  }, {\n    key: \"_preparePopup\",\n    value: function _preparePopup(dict) {\n      if (!dict.has('C')) {\n        this.data.color = null;\n      }\n\n      this.data.hasPopup = dict.has('Popup');\n      this.data.title = (0, _util.stringToPDFString)(dict.get('T') || '');\n      this.data.contents = (0, _util.stringToPDFString)(dict.get('Contents') || '');\n    }\n  }, {\n    key: \"loadResources\",\n    value: function loadResources(keys) {\n      return this.appearance.dict.getAsync('Resources').then(function (resources) {\n        if (!resources) {\n          return;\n        }\n\n        var objectLoader = new _obj.ObjectLoader(resources, keys, resources.xref);\n        return objectLoader.load().then(function () {\n          return resources;\n        });\n      });\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      var _this = this;\n\n      if (!this.appearance) {\n        return Promise.resolve(new _operator_list.OperatorList());\n      }\n\n      var data = this.data;\n      var appearanceDict = this.appearance.dict;\n      var resourcesPromise = this.loadResources(['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font']);\n      var bbox = appearanceDict.getArray('BBox') || [0, 0, 1, 1];\n      var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];\n      var transform = getTransformMatrix(data.rect, bbox, matrix);\n      return resourcesPromise.then(function (resources) {\n        var opList = new _operator_list.OperatorList();\n        opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);\n        return evaluator.getOperatorList({\n          stream: _this.appearance,\n          task: task,\n          resources: resources,\n          operatorList: opList\n        }).then(function () {\n          opList.addOp(_util.OPS.endAnnotation, []);\n\n          _this.appearance.reset();\n\n          return opList;\n        });\n      });\n    }\n  }, {\n    key: \"viewable\",\n    get: function get() {\n      if (this.flags === 0) {\n        return true;\n      }\n\n      return this._isViewable(this.flags);\n    }\n  }, {\n    key: \"printable\",\n    get: function get() {\n      if (this.flags === 0) {\n        return false;\n      }\n\n      return this._isPrintable(this.flags);\n    }\n  }]);\n\n  return Annotation;\n}();\n\nexports.Annotation = Annotation;\n\nvar AnnotationBorderStyle =\n/*#__PURE__*/\nfunction () {\n  function AnnotationBorderStyle() {\n    _classCallCheck(this, AnnotationBorderStyle);\n\n    this.width = 1;\n    this.style = _util.AnnotationBorderStyleType.SOLID;\n    this.dashArray = [3];\n    this.horizontalCornerRadius = 0;\n    this.verticalCornerRadius = 0;\n  }\n\n  _createClass(AnnotationBorderStyle, [{\n    key: \"setWidth\",\n    value: function setWidth(width) {\n      if ((0, _primitives.isName)(width)) {\n        this.width = 0;\n        return;\n      }\n\n      if (Number.isInteger(width)) {\n        this.width = width;\n      }\n    }\n  }, {\n    key: \"setStyle\",\n    value: function setStyle(style) {\n      if (!(0, _primitives.isName)(style)) {\n        return;\n      }\n\n      switch (style.name) {\n        case 'S':\n          this.style = _util.AnnotationBorderStyleType.SOLID;\n          break;\n\n        case 'D':\n          this.style = _util.AnnotationBorderStyleType.DASHED;\n          break;\n\n        case 'B':\n          this.style = _util.AnnotationBorderStyleType.BEVELED;\n          break;\n\n        case 'I':\n          this.style = _util.AnnotationBorderStyleType.INSET;\n          break;\n\n        case 'U':\n          this.style = _util.AnnotationBorderStyleType.UNDERLINE;\n          break;\n\n        default:\n          break;\n      }\n    }\n  }, {\n    key: \"setDashArray\",\n    value: function setDashArray(dashArray) {\n      if (Array.isArray(dashArray) && dashArray.length > 0) {\n        var isValid = true;\n        var allZeros = true;\n\n        for (var i = 0, len = dashArray.length; i < len; i++) {\n          var element = dashArray[i];\n          var validNumber = +element >= 0;\n\n          if (!validNumber) {\n            isValid = false;\n            break;\n          } else if (element > 0) {\n            allZeros = false;\n          }\n        }\n\n        if (isValid && !allZeros) {\n          this.dashArray = dashArray;\n        } else {\n          this.width = 0;\n        }\n      } else if (dashArray) {\n        this.width = 0;\n      }\n    }\n  }, {\n    key: \"setHorizontalCornerRadius\",\n    value: function setHorizontalCornerRadius(radius) {\n      if (Number.isInteger(radius)) {\n        this.horizontalCornerRadius = radius;\n      }\n    }\n  }, {\n    key: \"setVerticalCornerRadius\",\n    value: function setVerticalCornerRadius(radius) {\n      if (Number.isInteger(radius)) {\n        this.verticalCornerRadius = radius;\n      }\n    }\n  }]);\n\n  return AnnotationBorderStyle;\n}();\n\nexports.AnnotationBorderStyle = AnnotationBorderStyle;\n\nvar WidgetAnnotation =\n/*#__PURE__*/\nfunction (_Annotation) {\n  _inherits(WidgetAnnotation, _Annotation);\n\n  function WidgetAnnotation(params) {\n    var _this2;\n\n    _classCallCheck(this, WidgetAnnotation);\n\n    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotation).call(this, params));\n    var dict = params.dict;\n    var data = _this2.data;\n    data.annotationType = _util.AnnotationType.WIDGET;\n    data.fieldName = _this2._constructFieldName(dict);\n    data.fieldValue = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'V',\n      getArray: true\n    });\n    data.alternativeText = (0, _util.stringToPDFString)(dict.get('TU') || '');\n    data.defaultAppearance = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'DA'\n    }) || '';\n    var fieldType = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'FT'\n    });\n    data.fieldType = (0, _primitives.isName)(fieldType) ? fieldType.name : null;\n    _this2.fieldResources = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'DR'\n    }) || _primitives.Dict.empty;\n    data.fieldFlags = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'Ff'\n    });\n\n    if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n      data.fieldFlags = 0;\n    }\n\n    data.readOnly = _this2.hasFieldFlag(_util.AnnotationFieldFlag.READONLY);\n\n    if (data.fieldType === 'Sig') {\n      data.fieldValue = null;\n\n      _this2.setFlags(_util.AnnotationFlag.HIDDEN);\n    }\n\n    return _this2;\n  }\n\n  _createClass(WidgetAnnotation, [{\n    key: \"_constructFieldName\",\n    value: function _constructFieldName(dict) {\n      if (!dict.has('T') && !dict.has('Parent')) {\n        (0, _util.warn)('Unknown field name, falling back to empty field name.');\n        return '';\n      }\n\n      if (!dict.has('Parent')) {\n        return (0, _util.stringToPDFString)(dict.get('T'));\n      }\n\n      var fieldName = [];\n\n      if (dict.has('T')) {\n        fieldName.unshift((0, _util.stringToPDFString)(dict.get('T')));\n      }\n\n      var loopDict = dict;\n\n      while (loopDict.has('Parent')) {\n        loopDict = loopDict.get('Parent');\n\n        if (!(0, _primitives.isDict)(loopDict)) {\n          break;\n        }\n\n        if (loopDict.has('T')) {\n          fieldName.unshift((0, _util.stringToPDFString)(loopDict.get('T')));\n        }\n      }\n\n      return fieldName.join('.');\n    }\n  }, {\n    key: \"hasFieldFlag\",\n    value: function hasFieldFlag(flag) {\n      return !!(this.data.fieldFlags & flag);\n    }\n  }, {\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      if (renderForms) {\n        return Promise.resolve(new _operator_list.OperatorList());\n      }\n\n      return _get(_getPrototypeOf(WidgetAnnotation.prototype), \"getOperatorList\", this).call(this, evaluator, task, renderForms);\n    }\n  }]);\n\n  return WidgetAnnotation;\n}(Annotation);\n\nvar TextWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation) {\n  _inherits(TextWidgetAnnotation, _WidgetAnnotation);\n\n  function TextWidgetAnnotation(params) {\n    var _this3;\n\n    _classCallCheck(this, TextWidgetAnnotation);\n\n    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotation).call(this, params));\n    var dict = params.dict;\n    _this3.data.fieldValue = (0, _util.stringToPDFString)(_this3.data.fieldValue || '');\n    var alignment = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'Q'\n    });\n\n    if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n      alignment = null;\n    }\n\n    _this3.data.textAlignment = alignment;\n    var maximumLength = (0, _util.getInheritableProperty)({\n      dict: dict,\n      key: 'MaxLen'\n    });\n\n    if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n      maximumLength = null;\n    }\n\n    _this3.data.maxLen = maximumLength;\n    _this3.data.multiLine = _this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE);\n    _this3.data.comb = _this3.hasFieldFlag(_util.AnnotationFieldFlag.COMB) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.MULTILINE) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.PASSWORD) && !_this3.hasFieldFlag(_util.AnnotationFieldFlag.FILESELECT) && _this3.data.maxLen !== null;\n    return _this3;\n  }\n\n  _createClass(TextWidgetAnnotation, [{\n    key: \"getOperatorList\",\n    value: function getOperatorList(evaluator, task, renderForms) {\n      if (renderForms || this.appearance) {\n        return _get(_getPrototypeOf(TextWidgetAnnotation.prototype), \"getOperatorList\", this).call(this, evaluator, task, renderForms);\n      }\n\n      var operatorList = new _operator_list.OperatorList();\n\n      if (!this.data.defaultAppearance) {\n        return Promise.resolve(operatorList);\n      }\n\n      var stream = new _stream.Stream((0, _util.stringToBytes)(this.data.defaultAppearance));\n      return evaluator.getOperatorList({\n        stream: stream,\n        task: task,\n        resources: this.fieldResources,\n        operatorList: operatorList\n      }).then(function () {\n        return operatorList;\n      });\n    }\n  }]);\n\n  return TextWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ButtonWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation2) {\n  _inherits(ButtonWidgetAnnotation, _WidgetAnnotation2);\n\n  function ButtonWidgetAnnotation(params) {\n    var _this4;\n\n    _classCallCheck(this, ButtonWidgetAnnotation);\n\n    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(ButtonWidgetAnnotation).call(this, params));\n    _this4.data.checkBox = !_this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    _this4.data.radioButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.RADIO) && !_this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n    _this4.data.pushButton = _this4.hasFieldFlag(_util.AnnotationFieldFlag.PUSHBUTTON);\n\n    if (_this4.data.checkBox) {\n      _this4._processCheckBox(params);\n    } else if (_this4.data.radioButton) {\n      _this4._processRadioButton(params);\n    } else if (_this4.data.pushButton) {\n      _this4._processPushButton(params);\n    } else {\n      (0, _util.warn)('Invalid field flags for button widget annotation');\n    }\n\n    return _this4;\n  }\n\n  _createClass(ButtonWidgetAnnotation, [{\n    key: \"_processCheckBox\",\n    value: function _processCheckBox(params) {\n      if ((0, _primitives.isName)(this.data.fieldValue)) {\n        this.data.fieldValue = this.data.fieldValue.name;\n      }\n\n      var customAppearance = params.dict.get('AP');\n\n      if (!(0, _primitives.isDict)(customAppearance)) {\n        return;\n      }\n\n      var exportValueOptionsDict = customAppearance.get('D');\n\n      if (!(0, _primitives.isDict)(exportValueOptionsDict)) {\n        return;\n      }\n\n      var exportValues = exportValueOptionsDict.getKeys();\n      var hasCorrectOptionCount = exportValues.length === 2;\n\n      if (!hasCorrectOptionCount) {\n        return;\n      }\n\n      this.data.exportValue = exportValues[0] === 'Off' ? exportValues[1] : exportValues[0];\n    }\n  }, {\n    key: \"_processRadioButton\",\n    value: function _processRadioButton(params) {\n      this.data.fieldValue = this.data.buttonValue = null;\n      var fieldParent = params.dict.get('Parent');\n\n      if ((0, _primitives.isDict)(fieldParent) && fieldParent.has('V')) {\n        var fieldParentValue = fieldParent.get('V');\n\n        if ((0, _primitives.isName)(fieldParentValue)) {\n          this.data.fieldValue = fieldParentValue.name;\n        }\n      }\n\n      var appearanceStates = params.dict.get('AP');\n\n      if (!(0, _primitives.isDict)(appearanceStates)) {\n        return;\n      }\n\n      var normalAppearanceState = appearanceStates.get('N');\n\n      if (!(0, _primitives.isDict)(normalAppearanceState)) {\n        return;\n      }\n\n      var keys = normalAppearanceState.getKeys();\n\n      for (var i = 0, ii = keys.length; i < ii; i++) {\n        if (keys[i] !== 'Off') {\n          this.data.buttonValue = keys[i];\n          break;\n        }\n      }\n    }\n  }, {\n    key: \"_processPushButton\",\n    value: function _processPushButton(params) {\n      if (!params.dict.has('A')) {\n        (0, _util.warn)('Push buttons without action dictionaries are not supported');\n        return;\n      }\n\n      _obj.Catalog.parseDestDictionary({\n        destDict: params.dict,\n        resultObj: this.data,\n        docBaseUrl: params.pdfManager.docBaseUrl\n      });\n    }\n  }]);\n\n  return ButtonWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar ChoiceWidgetAnnotation =\n/*#__PURE__*/\nfunction (_WidgetAnnotation3) {\n  _inherits(ChoiceWidgetAnnotation, _WidgetAnnotation3);\n\n  function ChoiceWidgetAnnotation(params) {\n    var _this5;\n\n    _classCallCheck(this, ChoiceWidgetAnnotation);\n\n    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotation).call(this, params));\n    _this5.data.options = [];\n    var options = (0, _util.getInheritableProperty)({\n      dict: params.dict,\n      key: 'Opt'\n    });\n\n    if (Array.isArray(options)) {\n      var xref = params.xref;\n\n      for (var i = 0, ii = options.length; i < ii; i++) {\n        var option = xref.fetchIfRef(options[i]);\n        var isOptionArray = Array.isArray(option);\n        _this5.data.options[i] = {\n          exportValue: isOptionArray ? xref.fetchIfRef(option[0]) : option,\n          displayValue: (0, _util.stringToPDFString)(isOptionArray ? xref.fetchIfRef(option[1]) : option)\n        };\n      }\n    }\n\n    if (!Array.isArray(_this5.data.fieldValue)) {\n      _this5.data.fieldValue = [_this5.data.fieldValue];\n    }\n\n    _this5.data.combo = _this5.hasFieldFlag(_util.AnnotationFieldFlag.COMBO);\n    _this5.data.multiSelect = _this5.hasFieldFlag(_util.AnnotationFieldFlag.MULTISELECT);\n    return _this5;\n  }\n\n  return ChoiceWidgetAnnotation;\n}(WidgetAnnotation);\n\nvar TextAnnotation =\n/*#__PURE__*/\nfunction (_Annotation2) {\n  _inherits(TextAnnotation, _Annotation2);\n\n  function TextAnnotation(parameters) {\n    var _this6;\n\n    _classCallCheck(this, TextAnnotation);\n\n    var DEFAULT_ICON_SIZE = 22;\n    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotation).call(this, parameters));\n    _this6.data.annotationType = _util.AnnotationType.TEXT;\n\n    if (_this6.data.hasAppearance) {\n      _this6.data.name = 'NoIcon';\n    } else {\n      _this6.data.rect[1] = _this6.data.rect[3] - DEFAULT_ICON_SIZE;\n      _this6.data.rect[2] = _this6.data.rect[0] + DEFAULT_ICON_SIZE;\n      _this6.data.name = parameters.dict.has('Name') ? parameters.dict.get('Name').name : 'Note';\n    }\n\n    _this6._preparePopup(parameters.dict);\n\n    return _this6;\n  }\n\n  return TextAnnotation;\n}(Annotation);\n\nvar LinkAnnotation =\n/*#__PURE__*/\nfunction (_Annotation3) {\n  _inherits(LinkAnnotation, _Annotation3);\n\n  function LinkAnnotation(params) {\n    var _this7;\n\n    _classCallCheck(this, LinkAnnotation);\n\n    _this7 = _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotation).call(this, params));\n    _this7.data.annotationType = _util.AnnotationType.LINK;\n\n    _obj.Catalog.parseDestDictionary({\n      destDict: params.dict,\n      resultObj: _this7.data,\n      docBaseUrl: params.pdfManager.docBaseUrl\n    });\n\n    return _this7;\n  }\n\n  return LinkAnnotation;\n}(Annotation);\n\nvar PopupAnnotation =\n/*#__PURE__*/\nfunction (_Annotation4) {\n  _inherits(PopupAnnotation, _Annotation4);\n\n  function PopupAnnotation(parameters) {\n    var _this8;\n\n    _classCallCheck(this, PopupAnnotation);\n\n    _this8 = _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotation).call(this, parameters));\n    _this8.data.annotationType = _util.AnnotationType.POPUP;\n    var dict = parameters.dict;\n    var parentItem = dict.get('Parent');\n\n    if (!parentItem) {\n      (0, _util.warn)('Popup annotation has a missing or invalid parent annotation.');\n      return _possibleConstructorReturn(_this8);\n    }\n\n    var parentSubtype = parentItem.get('Subtype');\n    _this8.data.parentType = (0, _primitives.isName)(parentSubtype) ? parentSubtype.name : null;\n    _this8.data.parentId = dict.getRaw('Parent').toString();\n    _this8.data.title = (0, _util.stringToPDFString)(parentItem.get('T') || '');\n    _this8.data.contents = (0, _util.stringToPDFString)(parentItem.get('Contents') || '');\n\n    if (!parentItem.has('C')) {\n      _this8.data.color = null;\n    } else {\n      _this8.setColor(parentItem.getArray('C'));\n\n      _this8.data.color = _this8.color;\n    }\n\n    if (!_this8.viewable) {\n      var parentFlags = parentItem.get('F');\n\n      if (_this8._isViewable(parentFlags)) {\n        _this8.setFlags(parentFlags);\n      }\n    }\n\n    return _this8;\n  }\n\n  return PopupAnnotation;\n}(Annotation);\n\nvar LineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation5) {\n  _inherits(LineAnnotation, _Annotation5);\n\n  function LineAnnotation(parameters) {\n    var _this9;\n\n    _classCallCheck(this, LineAnnotation);\n\n    _this9 = _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotation).call(this, parameters));\n    _this9.data.annotationType = _util.AnnotationType.LINE;\n    var dict = parameters.dict;\n    _this9.data.lineCoordinates = _util.Util.normalizeRect(dict.getArray('L'));\n\n    _this9._preparePopup(dict);\n\n    return _this9;\n  }\n\n  return LineAnnotation;\n}(Annotation);\n\nvar SquareAnnotation =\n/*#__PURE__*/\nfunction (_Annotation6) {\n  _inherits(SquareAnnotation, _Annotation6);\n\n  function SquareAnnotation(parameters) {\n    var _this10;\n\n    _classCallCheck(this, SquareAnnotation);\n\n    _this10 = _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotation).call(this, parameters));\n    _this10.data.annotationType = _util.AnnotationType.SQUARE;\n\n    _this10._preparePopup(parameters.dict);\n\n    return _this10;\n  }\n\n  return SquareAnnotation;\n}(Annotation);\n\nvar CircleAnnotation =\n/*#__PURE__*/\nfunction (_Annotation7) {\n  _inherits(CircleAnnotation, _Annotation7);\n\n  function CircleAnnotation(parameters) {\n    var _this11;\n\n    _classCallCheck(this, CircleAnnotation);\n\n    _this11 = _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotation).call(this, parameters));\n    _this11.data.annotationType = _util.AnnotationType.CIRCLE;\n\n    _this11._preparePopup(parameters.dict);\n\n    return _this11;\n  }\n\n  return CircleAnnotation;\n}(Annotation);\n\nvar PolylineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation8) {\n  _inherits(PolylineAnnotation, _Annotation8);\n\n  function PolylineAnnotation(parameters) {\n    var _this12;\n\n    _classCallCheck(this, PolylineAnnotation);\n\n    _this12 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotation).call(this, parameters));\n    _this12.data.annotationType = _util.AnnotationType.POLYLINE;\n    var dict = parameters.dict;\n    var rawVertices = dict.getArray('Vertices');\n    _this12.data.vertices = [];\n\n    for (var i = 0, ii = rawVertices.length; i < ii; i += 2) {\n      _this12.data.vertices.push({\n        x: rawVertices[i],\n        y: rawVertices[i + 1]\n      });\n    }\n\n    _this12._preparePopup(dict);\n\n    return _this12;\n  }\n\n  return PolylineAnnotation;\n}(Annotation);\n\nvar PolygonAnnotation =\n/*#__PURE__*/\nfunction (_PolylineAnnotation) {\n  _inherits(PolygonAnnotation, _PolylineAnnotation);\n\n  function PolygonAnnotation(parameters) {\n    var _this13;\n\n    _classCallCheck(this, PolygonAnnotation);\n\n    _this13 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotation).call(this, parameters));\n    _this13.data.annotationType = _util.AnnotationType.POLYGON;\n    return _this13;\n  }\n\n  return PolygonAnnotation;\n}(PolylineAnnotation);\n\nvar InkAnnotation =\n/*#__PURE__*/\nfunction (_Annotation9) {\n  _inherits(InkAnnotation, _Annotation9);\n\n  function InkAnnotation(parameters) {\n    var _this14;\n\n    _classCallCheck(this, InkAnnotation);\n\n    _this14 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotation).call(this, parameters));\n    _this14.data.annotationType = _util.AnnotationType.INK;\n    var dict = parameters.dict;\n    var xref = parameters.xref;\n    var originalInkLists = dict.getArray('InkList');\n    _this14.data.inkLists = [];\n\n    for (var i = 0, ii = originalInkLists.length; i < ii; ++i) {\n      _this14.data.inkLists.push([]);\n\n      for (var j = 0, jj = originalInkLists[i].length; j < jj; j += 2) {\n        _this14.data.inkLists[i].push({\n          x: xref.fetchIfRef(originalInkLists[i][j]),\n          y: xref.fetchIfRef(originalInkLists[i][j + 1])\n        });\n      }\n    }\n\n    _this14._preparePopup(dict);\n\n    return _this14;\n  }\n\n  return InkAnnotation;\n}(Annotation);\n\nvar HighlightAnnotation =\n/*#__PURE__*/\nfunction (_Annotation10) {\n  _inherits(HighlightAnnotation, _Annotation10);\n\n  function HighlightAnnotation(parameters) {\n    var _this15;\n\n    _classCallCheck(this, HighlightAnnotation);\n\n    _this15 = _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotation).call(this, parameters));\n    _this15.data.annotationType = _util.AnnotationType.HIGHLIGHT;\n\n    _this15._preparePopup(parameters.dict);\n\n    return _this15;\n  }\n\n  return HighlightAnnotation;\n}(Annotation);\n\nvar UnderlineAnnotation =\n/*#__PURE__*/\nfunction (_Annotation11) {\n  _inherits(UnderlineAnnotation, _Annotation11);\n\n  function UnderlineAnnotation(parameters) {\n    var _this16;\n\n    _classCallCheck(this, UnderlineAnnotation);\n\n    _this16 = _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotation).call(this, parameters));\n    _this16.data.annotationType = _util.AnnotationType.UNDERLINE;\n\n    _this16._preparePopup(parameters.dict);\n\n    return _this16;\n  }\n\n  return UnderlineAnnotation;\n}(Annotation);\n\nvar SquigglyAnnotation =\n/*#__PURE__*/\nfunction (_Annotation12) {\n  _inherits(SquigglyAnnotation, _Annotation12);\n\n  function SquigglyAnnotation(parameters) {\n    var _this17;\n\n    _classCallCheck(this, SquigglyAnnotation);\n\n    _this17 = _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotation).call(this, parameters));\n    _this17.data.annotationType = _util.AnnotationType.SQUIGGLY;\n\n    _this17._preparePopup(parameters.dict);\n\n    return _this17;\n  }\n\n  return SquigglyAnnotation;\n}(Annotation);\n\nvar StrikeOutAnnotation =\n/*#__PURE__*/\nfunction (_Annotation13) {\n  _inherits(StrikeOutAnnotation, _Annotation13);\n\n  function StrikeOutAnnotation(parameters) {\n    var _this18;\n\n    _classCallCheck(this, StrikeOutAnnotation);\n\n    _this18 = _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotation).call(this, parameters));\n    _this18.data.annotationType = _util.AnnotationType.STRIKEOUT;\n\n    _this18._preparePopup(parameters.dict);\n\n    return _this18;\n  }\n\n  return StrikeOutAnnotation;\n}(Annotation);\n\nvar StampAnnotation =\n/*#__PURE__*/\nfunction (_Annotation14) {\n  _inherits(StampAnnotation, _Annotation14);\n\n  function StampAnnotation(parameters) {\n    var _this19;\n\n    _classCallCheck(this, StampAnnotation);\n\n    _this19 = _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotation).call(this, parameters));\n    _this19.data.annotationType = _util.AnnotationType.STAMP;\n\n    _this19._preparePopup(parameters.dict);\n\n    return _this19;\n  }\n\n  return StampAnnotation;\n}(Annotation);\n\nvar FileAttachmentAnnotation =\n/*#__PURE__*/\nfunction (_Annotation15) {\n  _inherits(FileAttachmentAnnotation, _Annotation15);\n\n  function FileAttachmentAnnotation(parameters) {\n    var _this20;\n\n    _classCallCheck(this, FileAttachmentAnnotation);\n\n    _this20 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotation).call(this, parameters));\n    var file = new _obj.FileSpec(parameters.dict.get('FS'), parameters.xref);\n    _this20.data.annotationType = _util.AnnotationType.FILEATTACHMENT;\n    _this20.data.file = file.serializable;\n\n    _this20._preparePopup(parameters.dict);\n\n    return _this20;\n  }\n\n  return FileAttachmentAnnotation;\n}(Annotation);\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.OperatorList = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar QueueOptimizer = function QueueOptimizerClosure() {\n  function addState(parentState, pattern, checkFn, iterateFn, processFn) {\n    var state = parentState;\n\n    for (var i = 0, ii = pattern.length - 1; i < ii; i++) {\n      var item = pattern[i];\n      state = state[item] || (state[item] = []);\n    }\n\n    state[pattern[pattern.length - 1]] = {\n      checkFn: checkFn,\n      iterateFn: iterateFn,\n      processFn: processFn\n    };\n  }\n\n  function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {\n    var iFirstPIMXO = iFirstSave + 2;\n\n    for (var i = 0; i < count; i++) {\n      var arg = argsArray[iFirstPIMXO + 4 * i];\n      var imageMask = arg.length === 1 && arg[0];\n\n      if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {\n        fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;\n        continue;\n      }\n\n      break;\n    }\n\n    return count - i;\n  }\n\n  var InitialState = [];\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {\n    var fnArray = context.fnArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        return fnArray[i] === _util.OPS.transform;\n\n      case 2:\n        return fnArray[i] === _util.OPS.paintInlineImageXObject;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function foundInlineImageGroup(context, i) {\n    var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n    var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n    var MAX_WIDTH = 1000;\n    var IMAGE_PADDING = 1;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIIXO = curr - 1;\n    var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);\n\n    if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var maxX = 0;\n    var map = [],\n        maxLineHeight = 0;\n    var currentX = IMAGE_PADDING,\n        currentY = IMAGE_PADDING;\n    var q;\n\n    for (q = 0; q < count; q++) {\n      var transform = argsArray[iFirstTransform + (q << 2)];\n      var img = argsArray[iFirstPIIXO + (q << 2)][0];\n\n      if (currentX + img.width > MAX_WIDTH) {\n        maxX = Math.max(maxX, currentX);\n        currentY += maxLineHeight + 2 * IMAGE_PADDING;\n        currentX = 0;\n        maxLineHeight = 0;\n      }\n\n      map.push({\n        transform: transform,\n        x: currentX,\n        y: currentY,\n        w: img.width,\n        h: img.height\n      });\n      currentX += img.width + 2 * IMAGE_PADDING;\n      maxLineHeight = Math.max(maxLineHeight, img.height);\n    }\n\n    var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n    var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n    var imgData = new Uint8ClampedArray(imgWidth * imgHeight * 4);\n    var imgRowSize = imgWidth << 2;\n\n    for (q = 0; q < count; q++) {\n      var data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n      var rowSize = map[q].w << 2;\n      var dataOffset = 0;\n      var offset = map[q].x + map[q].y * imgWidth << 2;\n      imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n\n      for (var k = 0, kk = map[q].h; k < kk; k++) {\n        imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n        dataOffset += rowSize;\n        offset += imgRowSize;\n      }\n\n      imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n\n      while (offset >= 0) {\n        data[offset - 4] = data[offset];\n        data[offset - 3] = data[offset + 1];\n        data[offset - 2] = data[offset + 2];\n        data[offset - 1] = data[offset + 3];\n        data[offset + rowSize] = data[offset + rowSize - 4];\n        data[offset + rowSize + 1] = data[offset + rowSize - 3];\n        data[offset + rowSize + 2] = data[offset + rowSize - 2];\n        data[offset + rowSize + 3] = data[offset + rowSize - 1];\n        offset -= imgRowSize;\n      }\n    }\n\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);\n    argsArray.splice(iFirstSave, count * 4, [{\n      width: imgWidth,\n      height: imgHeight,\n      kind: _util.ImageKind.RGBA_32BPP,\n      data: imgData\n    }, map]);\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {\n    var fnArray = context.fnArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        return fnArray[i] === _util.OPS.transform;\n\n      case 2:\n        return fnArray[i] === _util.OPS.paintImageMaskXObject;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function foundImageMaskGroup(context, i) {\n    var MIN_IMAGES_IN_MASKS_BLOCK = 10;\n    var MAX_IMAGES_IN_MASKS_BLOCK = 100;\n    var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIMXO = curr - 1;\n    var count = Math.floor((i - iFirstSave) / 4);\n    count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);\n\n    if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var q;\n    var isSameImage = false;\n    var iTransform, transformArgs;\n    var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n\n    if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {\n      isSameImage = true;\n      var firstTransformArg0 = argsArray[iFirstTransform][0];\n      var firstTransformArg3 = argsArray[iFirstTransform][3];\n      iTransform = iFirstTransform + 4;\n      var iPIMXO = iFirstPIMXO + 4;\n\n      for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n        transformArgs = argsArray[iTransform];\n\n        if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {\n          if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n            isSameImage = false;\n          } else {\n            count = q;\n          }\n\n          break;\n        }\n      }\n    }\n\n    if (isSameImage) {\n      count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n      var positions = new Float32Array(count * 2);\n      iTransform = iFirstTransform;\n\n      for (q = 0; q < count; q++, iTransform += 4) {\n        transformArgs = argsArray[iTransform];\n        positions[q << 1] = transformArgs[4];\n        positions[(q << 1) + 1] = transformArgs[5];\n      }\n\n      fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);\n      argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);\n    } else {\n      count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n      var images = [];\n\n      for (q = 0; q < count; q++) {\n        transformArgs = argsArray[iFirstTransform + (q << 2)];\n        var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n        images.push({\n          data: maskParams.data,\n          width: maskParams.width,\n          height: maskParams.height,\n          transform: transformArgs\n        });\n      }\n\n      fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);\n      argsArray.splice(iFirstSave, count * 4, [images]);\n    }\n\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {\n    var argsArray = context.argsArray;\n    var iFirstTransform = context.iCurr - 2;\n    return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;\n  }, function (context, i) {\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var iFirstSave = context.iCurr - 3;\n    var pos = (i - iFirstSave) % 4;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.save;\n\n      case 1:\n        if (fnArray[i] !== _util.OPS.transform) {\n          return false;\n        }\n\n        var iFirstTransform = context.iCurr - 2;\n        var firstTransformArg0 = argsArray[iFirstTransform][0];\n        var firstTransformArg3 = argsArray[iFirstTransform][3];\n\n        if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {\n          return false;\n        }\n\n        return true;\n\n      case 2:\n        if (fnArray[i] !== _util.OPS.paintImageXObject) {\n          return false;\n        }\n\n        var iFirstPIXO = context.iCurr - 1;\n        var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n\n        if (argsArray[i][0] !== firstPIXOArg0) {\n          return false;\n        }\n\n        return true;\n\n      case 3:\n        return fnArray[i] === _util.OPS.restore;\n    }\n  }, function (context, i) {\n    var MIN_IMAGES_IN_BLOCK = 3;\n    var MAX_IMAGES_IN_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstSave = curr - 3;\n    var iFirstTransform = curr - 2;\n    var iFirstPIXO = curr - 1;\n    var firstPIXOArg0 = argsArray[iFirstPIXO][0];\n    var firstTransformArg0 = argsArray[iFirstTransform][0];\n    var firstTransformArg3 = argsArray[iFirstTransform][3];\n    var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);\n\n    if (count < MIN_IMAGES_IN_BLOCK) {\n      return i - (i - iFirstSave) % 4;\n    }\n\n    var positions = new Float32Array(count * 2);\n    var iTransform = iFirstTransform;\n\n    for (var q = 0; q < count; q++, iTransform += 4) {\n      var transformArgs = argsArray[iTransform];\n      positions[q << 1] = transformArgs[4];\n      positions[(q << 1) + 1] = transformArgs[5];\n    }\n\n    var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];\n    fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);\n    argsArray.splice(iFirstSave, count * 4, args);\n    return iFirstSave + 1;\n  });\n  addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) {\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var iFirstSave = context.iCurr - 4;\n    var pos = (i - iFirstSave) % 5;\n\n    switch (pos) {\n      case 0:\n        return fnArray[i] === _util.OPS.beginText;\n\n      case 1:\n        return fnArray[i] === _util.OPS.setFont;\n\n      case 2:\n        return fnArray[i] === _util.OPS.setTextMatrix;\n\n      case 3:\n        if (fnArray[i] !== _util.OPS.showText) {\n          return false;\n        }\n\n        var iFirstSetFont = context.iCurr - 3;\n        var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n        var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n        if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {\n          return false;\n        }\n\n        return true;\n\n      case 4:\n        return fnArray[i] === _util.OPS.endText;\n    }\n  }, function (context, i) {\n    var MIN_CHARS_IN_BLOCK = 3;\n    var MAX_CHARS_IN_BLOCK = 1000;\n    var fnArray = context.fnArray,\n        argsArray = context.argsArray;\n    var curr = context.iCurr;\n    var iFirstBeginText = curr - 4;\n    var iFirstSetFont = curr - 3;\n    var iFirstSetTextMatrix = curr - 2;\n    var iFirstShowText = curr - 1;\n    var iFirstEndText = curr;\n    var firstSetFontArg0 = argsArray[iFirstSetFont][0];\n    var firstSetFontArg1 = argsArray[iFirstSetFont][1];\n    var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);\n\n    if (count < MIN_CHARS_IN_BLOCK) {\n      return i - (i - iFirstBeginText) % 5;\n    }\n\n    var iFirst = iFirstBeginText;\n\n    if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {\n      count++;\n      iFirst -= 5;\n    }\n\n    var iEndText = iFirst + 4;\n\n    for (var q = 1; q < count; q++) {\n      fnArray.splice(iEndText, 3);\n      argsArray.splice(iEndText, 3);\n      iEndText += 2;\n    }\n\n    return iEndText + 1;\n  });\n\n  function QueueOptimizer(queue) {\n    this.queue = queue;\n    this.state = null;\n    this.context = {\n      iCurr: 0,\n      fnArray: queue.fnArray,\n      argsArray: queue.argsArray\n    };\n    this.match = null;\n    this.lastProcessed = 0;\n  }\n\n  QueueOptimizer.prototype = {\n    _optimize: function _optimize() {\n      var fnArray = this.queue.fnArray;\n      var i = this.lastProcessed,\n          ii = fnArray.length;\n      var state = this.state;\n      var match = this.match;\n\n      if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n        this.lastProcessed = ii;\n        return;\n      }\n\n      var context = this.context;\n\n      while (i < ii) {\n        if (match) {\n          var iterate = (0, match.iterateFn)(context, i);\n\n          if (iterate) {\n            i++;\n            continue;\n          }\n\n          i = (0, match.processFn)(context, i + 1);\n          ii = fnArray.length;\n          match = null;\n          state = null;\n\n          if (i >= ii) {\n            break;\n          }\n        }\n\n        state = (state || InitialState)[fnArray[i]];\n\n        if (!state || Array.isArray(state)) {\n          i++;\n          continue;\n        }\n\n        context.iCurr = i;\n        i++;\n\n        if (state.checkFn && !(0, state.checkFn)(context)) {\n          state = null;\n          continue;\n        }\n\n        match = state;\n        state = null;\n      }\n\n      this.state = state;\n      this.match = match;\n      this.lastProcessed = i;\n    },\n    push: function push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n\n      this._optimize();\n    },\n    flush: function flush() {\n      while (this.match) {\n        var length = this.queue.fnArray.length;\n        this.lastProcessed = (0, this.match.processFn)(this.context, length);\n        this.match = null;\n        this.state = null;\n\n        this._optimize();\n      }\n    },\n    reset: function reset() {\n      this.state = null;\n      this.match = null;\n      this.lastProcessed = 0;\n    }\n  };\n  return QueueOptimizer;\n}();\n\nvar NullOptimizer = function NullOptimizerClosure() {\n  function NullOptimizer(queue) {\n    this.queue = queue;\n  }\n\n  NullOptimizer.prototype = {\n    push: function push(fn, args) {\n      this.queue.fnArray.push(fn);\n      this.queue.argsArray.push(args);\n    },\n    flush: function flush() {}\n  };\n  return NullOptimizer;\n}();\n\nvar OperatorList = function OperatorListClosure() {\n  var CHUNK_SIZE = 1000;\n  var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;\n\n  function getTransfers(queue) {\n    var transfers = [];\n    var fnArray = queue.fnArray,\n        argsArray = queue.argsArray;\n\n    for (var i = 0, ii = queue.length; i < ii; i++) {\n      switch (fnArray[i]) {\n        case _util.OPS.paintInlineImageXObject:\n        case _util.OPS.paintInlineImageXObjectGroup:\n        case _util.OPS.paintImageMaskXObject:\n          var arg = argsArray[i][0];\n          ;\n\n          if (!arg.cached) {\n            transfers.push(arg.data.buffer);\n          }\n\n          break;\n      }\n    }\n\n    return transfers;\n  }\n\n  function OperatorList(intent, messageHandler, pageIndex) {\n    this.messageHandler = messageHandler;\n    this.fnArray = [];\n    this.argsArray = [];\n\n    if (messageHandler && this.intent !== 'oplist') {\n      this.optimizer = new QueueOptimizer(this);\n    } else {\n      this.optimizer = new NullOptimizer(this);\n    }\n\n    this.dependencies = Object.create(null);\n    this._totalLength = 0;\n    this.pageIndex = pageIndex;\n    this.intent = intent;\n    this.weight = 0;\n  }\n\n  OperatorList.prototype = {\n    get length() {\n      return this.argsArray.length;\n    },\n\n    get totalLength() {\n      return this._totalLength + this.length;\n    },\n\n    addOp: function addOp(fn, args) {\n      this.optimizer.push(fn, args);\n      this.weight++;\n\n      if (this.messageHandler) {\n        if (this.weight >= CHUNK_SIZE) {\n          this.flush();\n        } else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {\n          this.flush();\n        }\n      }\n    },\n    addDependency: function addDependency(dependency) {\n      if (dependency in this.dependencies) {\n        return;\n      }\n\n      this.dependencies[dependency] = true;\n      this.addOp(_util.OPS.dependency, [dependency]);\n    },\n    addDependencies: function addDependencies(dependencies) {\n      for (var key in dependencies) {\n        this.addDependency(key);\n      }\n    },\n    addOpList: function addOpList(opList) {\n      Object.assign(this.dependencies, opList.dependencies);\n\n      for (var i = 0, ii = opList.length; i < ii; i++) {\n        this.addOp(opList.fnArray[i], opList.argsArray[i]);\n      }\n    },\n    getIR: function getIR() {\n      return {\n        fnArray: this.fnArray,\n        argsArray: this.argsArray,\n        length: this.length\n      };\n    },\n    flush: function flush(lastChunk) {\n      this.optimizer.flush();\n      var transfers = getTransfers(this);\n      var length = this.length;\n      this._totalLength += length;\n      this.messageHandler.send('RenderPageChunk', {\n        operatorList: {\n          fnArray: this.fnArray,\n          argsArray: this.argsArray,\n          lastChunk: lastChunk,\n          length: length\n        },\n        pageIndex: this.pageIndex,\n        intent: this.intent\n      }, transfers);\n      this.dependencies = Object.create(null);\n      this.fnArray.length = 0;\n      this.argsArray.length = 0;\n      this.weight = 0;\n      this.optimizer.reset();\n    }\n  };\n  return OperatorList;\n}();\n\nexports.OperatorList = OperatorList;\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PartialEvaluator = void 0;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cmap = __w_pdfjs_require__(172);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _fonts = __w_pdfjs_require__(173);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _unicode = __w_pdfjs_require__(179);\n\nvar _standard_fonts = __w_pdfjs_require__(178);\n\nvar _pattern = __w_pdfjs_require__(182);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _bidi = __w_pdfjs_require__(183);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _metrics = __w_pdfjs_require__(184);\n\nvar _function = __w_pdfjs_require__(185);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _murmurhash = __w_pdfjs_require__(187);\n\nvar _operator_list = __w_pdfjs_require__(170);\n\nvar _image = __w_pdfjs_require__(188);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nvar PartialEvaluator = function PartialEvaluatorClosure() {\n  var DefaultPartialEvaluatorOptions = {\n    forceDataSchema: false,\n    maxImageSize: -1,\n    disableFontFace: false,\n    nativeImageDecoderSupport: _util.NativeImageDecoding.DECODE,\n    ignoreErrors: false,\n    isEvalSupported: true\n  };\n\n  function NativeImageDecoder(_ref) {\n    var xref = _ref.xref,\n        resources = _ref.resources,\n        handler = _ref.handler,\n        _ref$forceDataSchema = _ref.forceDataSchema,\n        forceDataSchema = _ref$forceDataSchema === void 0 ? false : _ref$forceDataSchema,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n    this.xref = xref;\n    this.resources = resources;\n    this.handler = handler;\n    this.forceDataSchema = forceDataSchema;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n  }\n\n  NativeImageDecoder.prototype = {\n    canDecode: function canDecode(image) {\n      return image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isDecodable(image, this.xref, this.resources, this.pdfFunctionFactory);\n    },\n    decode: function decode(image) {\n      var dict = image.dict;\n      var colorSpace = dict.get('ColorSpace', 'CS');\n      colorSpace = _colorspace.ColorSpace.parse(colorSpace, this.xref, this.resources, this.pdfFunctionFactory);\n      return this.handler.sendWithPromise('JpegDecode', [image.getIR(this.forceDataSchema), colorSpace.numComps]).then(function (_ref2) {\n        var data = _ref2.data,\n            width = _ref2.width,\n            height = _ref2.height;\n        return new _stream.Stream(data, 0, data.length, image.dict);\n      });\n    }\n  };\n\n  NativeImageDecoder.isSupported = function (image, xref, res, pdfFunctionFactory) {\n    var dict = image.dict;\n\n    if (dict.has('DecodeParms') || dict.has('DP')) {\n      return false;\n    }\n\n    var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n\n    return (cs.name === 'DeviceGray' || cs.name === 'DeviceRGB') && cs.isDefaultDecode(dict.getArray('Decode', 'D'));\n  };\n\n  NativeImageDecoder.isDecodable = function (image, xref, res, pdfFunctionFactory) {\n    var dict = image.dict;\n\n    if (dict.has('DecodeParms') || dict.has('DP')) {\n      return false;\n    }\n\n    var cs = _colorspace.ColorSpace.parse(dict.get('ColorSpace', 'CS'), xref, res, pdfFunctionFactory);\n\n    var bpc = dict.get('BitsPerComponent', 'BPC') || 1;\n    return (cs.numComps === 1 || cs.numComps === 3) && cs.isDefaultDecode(dict.getArray('Decode', 'D'), bpc);\n  };\n\n  function PartialEvaluator(_ref3) {\n    var _this = this;\n\n    var pdfManager = _ref3.pdfManager,\n        xref = _ref3.xref,\n        handler = _ref3.handler,\n        pageIndex = _ref3.pageIndex,\n        idFactory = _ref3.idFactory,\n        fontCache = _ref3.fontCache,\n        builtInCMapCache = _ref3.builtInCMapCache,\n        _ref3$options = _ref3.options,\n        options = _ref3$options === void 0 ? null : _ref3$options,\n        pdfFunctionFactory = _ref3.pdfFunctionFactory;\n    this.pdfManager = pdfManager;\n    this.xref = xref;\n    this.handler = handler;\n    this.pageIndex = pageIndex;\n    this.idFactory = idFactory;\n    this.fontCache = fontCache;\n    this.builtInCMapCache = builtInCMapCache;\n    this.options = options || DefaultPartialEvaluatorOptions;\n    this.pdfFunctionFactory = pdfFunctionFactory;\n\n    this.fetchBuiltInCMap =\n    /*#__PURE__*/\n    function () {\n      var _ref4 = _asyncToGenerator(\n      /*#__PURE__*/\n      _regenerator.default.mark(function _callee(name) {\n        var data;\n        return _regenerator.default.wrap(function _callee$(_context) {\n          while (1) {\n            switch (_context.prev = _context.next) {\n              case 0:\n                if (!_this.builtInCMapCache.has(name)) {\n                  _context.next = 2;\n                  break;\n                }\n\n                return _context.abrupt(\"return\", _this.builtInCMapCache.get(name));\n\n              case 2:\n                _context.next = 4;\n                return _this.handler.sendWithPromise('FetchBuiltInCMap', {\n                  name: name\n                });\n\n              case 4:\n                data = _context.sent;\n\n                if (data.compressionType !== _util.CMapCompressionType.NONE) {\n                  _this.builtInCMapCache.set(name, data);\n                }\n\n                return _context.abrupt(\"return\", data);\n\n              case 7:\n              case \"end\":\n                return _context.stop();\n            }\n          }\n        }, _callee, this);\n      }));\n\n      return function (_x) {\n        return _ref4.apply(this, arguments);\n      };\n    }();\n  }\n\n  var TIME_SLOT_DURATION_MS = 20;\n  var CHECK_TIME_EVERY = 100;\n\n  function TimeSlotManager() {\n    this.reset();\n  }\n\n  TimeSlotManager.prototype = {\n    check: function TimeSlotManager_check() {\n      if (++this.checked < CHECK_TIME_EVERY) {\n        return false;\n      }\n\n      this.checked = 0;\n      return this.endTime <= Date.now();\n    },\n    reset: function TimeSlotManager_reset() {\n      this.endTime = Date.now() + TIME_SLOT_DURATION_MS;\n      this.checked = 0;\n    }\n  };\n\n  function normalizeBlendMode(value) {\n    if (!(0, _primitives.isName)(value)) {\n      return 'source-over';\n    }\n\n    switch (value.name) {\n      case 'Normal':\n      case 'Compatible':\n        return 'source-over';\n\n      case 'Multiply':\n        return 'multiply';\n\n      case 'Screen':\n        return 'screen';\n\n      case 'Overlay':\n        return 'overlay';\n\n      case 'Darken':\n        return 'darken';\n\n      case 'Lighten':\n        return 'lighten';\n\n      case 'ColorDodge':\n        return 'color-dodge';\n\n      case 'ColorBurn':\n        return 'color-burn';\n\n      case 'HardLight':\n        return 'hard-light';\n\n      case 'SoftLight':\n        return 'soft-light';\n\n      case 'Difference':\n        return 'difference';\n\n      case 'Exclusion':\n        return 'exclusion';\n\n      case 'Hue':\n        return 'hue';\n\n      case 'Saturation':\n        return 'saturation';\n\n      case 'Color':\n        return 'color';\n\n      case 'Luminosity':\n        return 'luminosity';\n    }\n\n    (0, _util.warn)('Unsupported blend mode: ' + value.name);\n    return 'source-over';\n  }\n\n  var deferred = Promise.resolve();\n  var TILING_PATTERN = 1,\n      SHADING_PATTERN = 2;\n  PartialEvaluator.prototype = {\n    clone: function clone() {\n      var newOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DefaultPartialEvaluatorOptions;\n      var newEvaluator = Object.create(this);\n      newEvaluator.options = newOptions;\n      return newEvaluator;\n    },\n    hasBlendModes: function PartialEvaluator_hasBlendModes(resources) {\n      if (!(0, _primitives.isDict)(resources)) {\n        return false;\n      }\n\n      var processed = Object.create(null);\n\n      if (resources.objId) {\n        processed[resources.objId] = true;\n      }\n\n      var nodes = [resources],\n          xref = this.xref;\n\n      while (nodes.length) {\n        var key, i, ii;\n        var node = nodes.shift();\n        var graphicStates = node.get('ExtGState');\n\n        if ((0, _primitives.isDict)(graphicStates)) {\n          var graphicStatesKeys = graphicStates.getKeys();\n\n          for (i = 0, ii = graphicStatesKeys.length; i < ii; i++) {\n            key = graphicStatesKeys[i];\n            var graphicState = graphicStates.get(key);\n            var bm = graphicState.get('BM');\n\n            if ((0, _primitives.isName)(bm) && bm.name !== 'Normal') {\n              return true;\n            }\n          }\n        }\n\n        var xObjects = node.get('XObject');\n\n        if (!(0, _primitives.isDict)(xObjects)) {\n          continue;\n        }\n\n        var xObjectsKeys = xObjects.getKeys();\n\n        for (i = 0, ii = xObjectsKeys.length; i < ii; i++) {\n          key = xObjectsKeys[i];\n          var xObject = xObjects.getRaw(key);\n\n          if ((0, _primitives.isRef)(xObject)) {\n            if (processed[xObject.toString()]) {\n              continue;\n            }\n\n            xObject = xref.fetch(xObject);\n          }\n\n          if (!(0, _primitives.isStream)(xObject)) {\n            continue;\n          }\n\n          if (xObject.dict.objId) {\n            if (processed[xObject.dict.objId]) {\n              continue;\n            }\n\n            processed[xObject.dict.objId] = true;\n          }\n\n          var xResources = xObject.dict.get('Resources');\n\n          if ((0, _primitives.isDict)(xResources) && (!xResources.objId || !processed[xResources.objId])) {\n            nodes.push(xResources);\n\n            if (xResources.objId) {\n              processed[xResources.objId] = true;\n            }\n          }\n        }\n      }\n\n      return false;\n    },\n    buildFormXObject: function PartialEvaluator_buildFormXObject(resources, xobj, smask, operatorList, task, initialState) {\n      var dict = xobj.dict;\n      var matrix = dict.getArray('Matrix');\n      var bbox = dict.getArray('BBox');\n\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        bbox = _util.Util.normalizeRect(bbox);\n      } else {\n        bbox = null;\n      }\n\n      var group = dict.get('Group');\n\n      if (group) {\n        var groupOptions = {\n          matrix: matrix,\n          bbox: bbox,\n          smask: smask,\n          isolated: false,\n          knockout: false\n        };\n        var groupSubtype = group.get('S');\n        var colorSpace = null;\n\n        if ((0, _primitives.isName)(groupSubtype, 'Transparency')) {\n          groupOptions.isolated = group.get('I') || false;\n          groupOptions.knockout = group.get('K') || false;\n\n          if (group.has('CS')) {\n            colorSpace = _colorspace.ColorSpace.parse(group.get('CS'), this.xref, resources, this.pdfFunctionFactory);\n          }\n        }\n\n        if (smask && smask.backdrop) {\n          colorSpace = colorSpace || _colorspace.ColorSpace.singletons.rgb;\n          smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n        }\n\n        operatorList.addOp(_util.OPS.beginGroup, [groupOptions]);\n      }\n\n      operatorList.addOp(_util.OPS.paintFormXObjectBegin, [matrix, bbox]);\n      return this.getOperatorList({\n        stream: xobj,\n        task: task,\n        resources: dict.get('Resources') || resources,\n        operatorList: operatorList,\n        initialState: initialState\n      }).then(function () {\n        operatorList.addOp(_util.OPS.paintFormXObjectEnd, []);\n\n        if (group) {\n          operatorList.addOp(_util.OPS.endGroup, [groupOptions]);\n        }\n      });\n    },\n    buildPaintImageXObject: function buildPaintImageXObject(_ref5) {\n      var _this2 = this;\n\n      var resources = _ref5.resources,\n          image = _ref5.image,\n          _ref5$isInline = _ref5.isInline,\n          isInline = _ref5$isInline === void 0 ? false : _ref5$isInline,\n          operatorList = _ref5.operatorList,\n          cacheKey = _ref5.cacheKey,\n          imageCache = _ref5.imageCache,\n          _ref5$forceDisableNat = _ref5.forceDisableNativeImageDecoder,\n          forceDisableNativeImageDecoder = _ref5$forceDisableNat === void 0 ? false : _ref5$forceDisableNat;\n      var dict = image.dict;\n      var w = dict.get('Width', 'W');\n      var h = dict.get('Height', 'H');\n\n      if (!(w && (0, _util.isNum)(w)) || !(h && (0, _util.isNum)(h))) {\n        (0, _util.warn)('Image dimensions are missing, or not numbers.');\n        return Promise.resolve();\n      }\n\n      var maxImageSize = this.options.maxImageSize;\n\n      if (maxImageSize !== -1 && w * h > maxImageSize) {\n        (0, _util.warn)('Image exceeded maximum allowed size and was removed.');\n        return Promise.resolve();\n      }\n\n      var imageMask = dict.get('ImageMask', 'IM') || false;\n      var imgData, args;\n\n      if (imageMask) {\n        var width = dict.get('Width', 'W');\n        var height = dict.get('Height', 'H');\n        var bitStrideLength = width + 7 >> 3;\n        var imgArray = image.getBytes(bitStrideLength * height, true);\n        var decode = dict.getArray('Decode', 'D');\n        imgData = _image.PDFImage.createMask({\n          imgArray: imgArray,\n          width: width,\n          height: height,\n          imageIsFromDecodeStream: image instanceof _stream.DecodeStream,\n          inverseDecode: !!decode && decode[0] > 0\n        });\n        imgData.cached = true;\n        args = [imgData];\n        operatorList.addOp(_util.OPS.paintImageMaskXObject, args);\n\n        if (cacheKey) {\n          imageCache[cacheKey] = {\n            fn: _util.OPS.paintImageMaskXObject,\n            args: args\n          };\n        }\n\n        return Promise.resolve();\n      }\n\n      var softMask = dict.get('SMask', 'SM') || false;\n      var mask = dict.get('Mask') || false;\n      var SMALL_IMAGE_DIMENSIONS = 200;\n\n      if (isInline && !softMask && !mask && !(image instanceof _jpeg_stream.JpegStream) && w + h < SMALL_IMAGE_DIMENSIONS) {\n        var imageObj = new _image.PDFImage({\n          xref: this.xref,\n          res: resources,\n          image: image,\n          isInline: isInline,\n          pdfFunctionFactory: this.pdfFunctionFactory\n        });\n        imgData = imageObj.createImageData(true);\n        operatorList.addOp(_util.OPS.paintInlineImageXObject, [imgData]);\n        return Promise.resolve();\n      }\n\n      var nativeImageDecoderSupport = forceDisableNativeImageDecoder ? _util.NativeImageDecoding.NONE : this.options.nativeImageDecoderSupport;\n      var objId = 'img_' + this.idFactory.createObjId();\n\n      if (nativeImageDecoderSupport !== _util.NativeImageDecoding.NONE && !softMask && !mask && image instanceof _jpeg_stream.JpegStream && NativeImageDecoder.isSupported(image, this.xref, resources, this.pdfFunctionFactory)) {\n        return this.handler.sendWithPromise('obj', [objId, this.pageIndex, 'JpegStream', image.getIR(this.options.forceDataSchema)]).then(function () {\n          operatorList.addDependency(objId);\n          args = [objId, w, h];\n          operatorList.addOp(_util.OPS.paintJpegXObject, args);\n\n          if (cacheKey) {\n            imageCache[cacheKey] = {\n              fn: _util.OPS.paintJpegXObject,\n              args: args\n            };\n          }\n        }, function (reason) {\n          (0, _util.warn)('Native JPEG decoding failed -- trying to recover: ' + (reason && reason.message));\n          return _this2.buildPaintImageXObject({\n            resources: resources,\n            image: image,\n            isInline: isInline,\n            operatorList: operatorList,\n            cacheKey: cacheKey,\n            imageCache: imageCache,\n            forceDisableNativeImageDecoder: true\n          });\n        });\n      }\n\n      var nativeImageDecoder = null;\n\n      if (nativeImageDecoderSupport === _util.NativeImageDecoding.DECODE && (image instanceof _jpeg_stream.JpegStream || mask instanceof _jpeg_stream.JpegStream || softMask instanceof _jpeg_stream.JpegStream)) {\n        nativeImageDecoder = new NativeImageDecoder({\n          xref: this.xref,\n          resources: resources,\n          handler: this.handler,\n          forceDataSchema: this.options.forceDataSchema,\n          pdfFunctionFactory: this.pdfFunctionFactory\n        });\n      }\n\n      operatorList.addDependency(objId);\n      args = [objId, w, h];\n\n      _image.PDFImage.buildImage({\n        handler: this.handler,\n        xref: this.xref,\n        res: resources,\n        image: image,\n        isInline: isInline,\n        nativeDecoder: nativeImageDecoder,\n        pdfFunctionFactory: this.pdfFunctionFactory\n      }).then(function (imageObj) {\n        var imgData = imageObj.createImageData(false);\n\n        _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', imgData], [imgData.data.buffer]);\n      }).catch(function (reason) {\n        (0, _util.warn)('Unable to decode image: ' + reason);\n\n        _this2.handler.send('obj', [objId, _this2.pageIndex, 'Image', null]);\n      });\n\n      operatorList.addOp(_util.OPS.paintImageXObject, args);\n\n      if (cacheKey) {\n        imageCache[cacheKey] = {\n          fn: _util.OPS.paintImageXObject,\n          args: args\n        };\n      }\n\n      return Promise.resolve();\n    },\n    handleSMask: function PartialEvaluator_handleSmask(smask, resources, operatorList, task, stateManager) {\n      var smaskContent = smask.get('G');\n      var smaskOptions = {\n        subtype: smask.get('S').name,\n        backdrop: smask.get('BC')\n      };\n      var transferObj = smask.get('TR');\n\n      if ((0, _function.isPDFFunction)(transferObj)) {\n        var transferFn = this.pdfFunctionFactory.create(transferObj);\n        var transferMap = new Uint8Array(256);\n        var tmp = new Float32Array(1);\n\n        for (var i = 0; i < 256; i++) {\n          tmp[0] = i / 255;\n          transferFn(tmp, 0, tmp, 0);\n          transferMap[i] = tmp[0] * 255 | 0;\n        }\n\n        smaskOptions.transferMap = transferMap;\n      }\n\n      return this.buildFormXObject(resources, smaskContent, smaskOptions, operatorList, task, stateManager.state.clone());\n    },\n    handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {\n      var _this3 = this;\n\n      var tilingOpList = new _operator_list.OperatorList();\n      var resourcesArray = [patternDict.get('Resources'), resources];\n\n      var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);\n\n      return this.getOperatorList({\n        stream: pattern,\n        task: task,\n        resources: patternResources,\n        operatorList: tilingOpList\n      }).then(function () {\n        return (0, _pattern.getTilingPatternIR)({\n          fnArray: tilingOpList.fnArray,\n          argsArray: tilingOpList.argsArray\n        }, patternDict, args);\n      }).then(function (tilingPatternIR) {\n        operatorList.addDependencies(tilingOpList.dependencies);\n        operatorList.addOp(fn, tilingPatternIR);\n      }, function (reason) {\n        if (_this3.options.ignoreErrors) {\n          _this3.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n\n          (0, _util.warn)(\"handleTilingType - ignoring pattern: \\\"\".concat(reason, \"\\\".\"));\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    handleSetFont: function PartialEvaluator_handleSetFont(resources, fontArgs, fontRef, operatorList, task, state) {\n      var _this4 = this;\n\n      var fontName;\n\n      if (fontArgs) {\n        fontArgs = fontArgs.slice();\n        fontName = fontArgs[0].name;\n      }\n\n      return this.loadFont(fontName, fontRef, resources).then(function (translated) {\n        if (!translated.font.isType3Font) {\n          return translated;\n        }\n\n        return translated.loadType3Data(_this4, resources, operatorList, task).then(function () {\n          return translated;\n        }).catch(function (reason) {\n          _this4.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.font\n          });\n\n          return new TranslatedFont('g_font_error', new _fonts.ErrorFont('Type3 font load error: ' + reason), translated.font);\n        });\n      }).then(function (translated) {\n        state.font = translated.font;\n        translated.send(_this4.handler);\n        return translated.loadedName;\n      });\n    },\n    handleText: function handleText(chars, state) {\n      var font = state.font;\n      var glyphs = font.charsToGlyphs(chars);\n\n      if (font.data) {\n        var isAddToPathSet = !!(state.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n\n        if (isAddToPathSet || state.fillColorSpace.name === 'Pattern' || font.disableFontFace || this.options.disableFontFace) {\n          PartialEvaluator.buildFontPaths(font, glyphs, this.handler);\n        }\n      }\n\n      return glyphs;\n    },\n    setGState: function PartialEvaluator_setGState(resources, gState, operatorList, task, stateManager) {\n      var _this5 = this;\n\n      var gStateObj = [];\n      var gStateKeys = gState.getKeys();\n      var promise = Promise.resolve();\n\n      var _loop = function _loop() {\n        var key = gStateKeys[i];\n        var value = gState.get(key);\n\n        switch (key) {\n          case 'Type':\n            break;\n\n          case 'LW':\n          case 'LC':\n          case 'LJ':\n          case 'ML':\n          case 'D':\n          case 'RI':\n          case 'FL':\n          case 'CA':\n          case 'ca':\n            gStateObj.push([key, value]);\n            break;\n\n          case 'Font':\n            promise = promise.then(function () {\n              return _this5.handleSetFont(resources, null, value[0], operatorList, task, stateManager.state).then(function (loadedName) {\n                operatorList.addDependency(loadedName);\n                gStateObj.push([key, [loadedName, value[1]]]);\n              });\n            });\n            break;\n\n          case 'BM':\n            gStateObj.push([key, normalizeBlendMode(value)]);\n            break;\n\n          case 'SMask':\n            if ((0, _primitives.isName)(value, 'None')) {\n              gStateObj.push([key, false]);\n              break;\n            }\n\n            if ((0, _primitives.isDict)(value)) {\n              promise = promise.then(function () {\n                return _this5.handleSMask(value, resources, operatorList, task, stateManager);\n              });\n              gStateObj.push([key, true]);\n            } else {\n              (0, _util.warn)('Unsupported SMask type');\n            }\n\n            break;\n\n          case 'OP':\n          case 'op':\n          case 'OPM':\n          case 'BG':\n          case 'BG2':\n          case 'UCR':\n          case 'UCR2':\n          case 'TR':\n          case 'TR2':\n          case 'HT':\n          case 'SM':\n          case 'SA':\n          case 'AIS':\n          case 'TK':\n            (0, _util.info)('graphic state operator ' + key);\n            break;\n\n          default:\n            (0, _util.info)('Unknown graphic state operator ' + key);\n            break;\n        }\n      };\n\n      for (var i = 0, ii = gStateKeys.length; i < ii; i++) {\n        _loop();\n      }\n\n      return promise.then(function () {\n        if (gStateObj.length > 0) {\n          operatorList.addOp(_util.OPS.setGState, [gStateObj]);\n        }\n      });\n    },\n    loadFont: function PartialEvaluator_loadFont(fontName, font, resources) {\n      var _this6 = this;\n\n      function errorFont() {\n        return Promise.resolve(new TranslatedFont('g_font_error', new _fonts.ErrorFont('Font ' + fontName + ' is not available'), font));\n      }\n\n      var fontRef,\n          xref = this.xref;\n\n      if (font) {\n        if (!(0, _primitives.isRef)(font)) {\n          throw new Error('The \"font\" object should be a reference.');\n        }\n\n        fontRef = font;\n      } else {\n        var fontRes = resources.get('Font');\n\n        if (fontRes) {\n          fontRef = fontRes.getRaw(fontName);\n        } else {\n          (0, _util.warn)('fontRes not available');\n          return errorFont();\n        }\n      }\n\n      if (!fontRef) {\n        (0, _util.warn)('fontRef not available');\n        return errorFont();\n      }\n\n      if (this.fontCache.has(fontRef)) {\n        return this.fontCache.get(fontRef);\n      }\n\n      font = xref.fetchIfRef(fontRef);\n\n      if (!(0, _primitives.isDict)(font)) {\n        return errorFont();\n      }\n\n      if (font.translated) {\n        return font.translated;\n      }\n\n      var fontCapability = (0, _util.createPromiseCapability)();\n      var preEvaluatedFont = this.preEvaluateFont(font);\n      var descriptor = preEvaluatedFont.descriptor;\n      var fontRefIsRef = (0, _primitives.isRef)(fontRef),\n          fontID;\n\n      if (fontRefIsRef) {\n        fontID = fontRef.toString();\n      }\n\n      if ((0, _primitives.isDict)(descriptor)) {\n        if (!descriptor.fontAliases) {\n          descriptor.fontAliases = Object.create(null);\n        }\n\n        var fontAliases = descriptor.fontAliases;\n        var hash = preEvaluatedFont.hash;\n\n        if (fontAliases[hash]) {\n          var aliasFontRef = fontAliases[hash].aliasRef;\n\n          if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n            this.fontCache.putAlias(fontRef, aliasFontRef);\n            return this.fontCache.get(fontRef);\n          }\n        } else {\n          fontAliases[hash] = {\n            fontID: _fonts.Font.getFontID()\n          };\n        }\n\n        if (fontRefIsRef) {\n          fontAliases[hash].aliasRef = fontRef;\n        }\n\n        fontID = fontAliases[hash].fontID;\n      }\n\n      if (fontRefIsRef) {\n        this.fontCache.put(fontRef, fontCapability.promise);\n      } else {\n        if (!fontID) {\n          fontID = this.idFactory.createObjId();\n        }\n\n        this.fontCache.put('id_' + fontID, fontCapability.promise);\n      }\n\n      (0, _util.assert)(fontID, 'The \"fontID\" must be defined.');\n      font.loadedName = 'g_' + this.pdfManager.docId + '_f' + fontID;\n      font.translated = fontCapability.promise;\n      var translatedPromise;\n\n      try {\n        translatedPromise = this.translateFont(preEvaluatedFont);\n      } catch (e) {\n        translatedPromise = Promise.reject(e);\n      }\n\n      translatedPromise.then(function (translatedFont) {\n        if (translatedFont.fontType !== undefined) {\n          var xrefFontStats = xref.stats.fontTypes;\n          xrefFontStats[translatedFont.fontType] = true;\n        }\n\n        fontCapability.resolve(new TranslatedFont(font.loadedName, translatedFont, font));\n      }).catch(function (reason) {\n        _this6.handler.send('UnsupportedFeature', {\n          featureId: _util.UNSUPPORTED_FEATURES.font\n        });\n\n        try {\n          var descriptor = preEvaluatedFont.descriptor;\n          var fontFile3 = descriptor && descriptor.get('FontFile3');\n          var subtype = fontFile3 && fontFile3.get('Subtype');\n          var fontType = (0, _fonts.getFontType)(preEvaluatedFont.type, subtype && subtype.name);\n          var xrefFontStats = xref.stats.fontTypes;\n          xrefFontStats[fontType] = true;\n        } catch (ex) {}\n\n        fontCapability.resolve(new TranslatedFont(font.loadedName, new _fonts.ErrorFont(reason instanceof Error ? reason.message : reason), font));\n      });\n      return fontCapability.promise;\n    },\n    buildPath: function PartialEvaluator_buildPath(operatorList, fn, args) {\n      var lastIndex = operatorList.length - 1;\n\n      if (!args) {\n        args = [];\n      }\n\n      if (lastIndex < 0 || operatorList.fnArray[lastIndex] !== _util.OPS.constructPath) {\n        operatorList.addOp(_util.OPS.constructPath, [[fn], args]);\n      } else {\n        var opArgs = operatorList.argsArray[lastIndex];\n        opArgs[0].push(fn);\n        Array.prototype.push.apply(opArgs[1], args);\n      }\n    },\n    handleColorN: function PartialEvaluator_handleColorN(operatorList, fn, args, cs, patterns, resources, task) {\n      var patternName = args[args.length - 1];\n      var pattern;\n\n      if ((0, _primitives.isName)(patternName) && (pattern = patterns.get(patternName.name))) {\n        var dict = (0, _primitives.isStream)(pattern) ? pattern.dict : pattern;\n        var typeNum = dict.get('PatternType');\n\n        if (typeNum === TILING_PATTERN) {\n          var color = cs.base ? cs.base.getRgb(args, 0) : null;\n          return this.handleTilingType(fn, color, resources, pattern, dict, operatorList, task);\n        } else if (typeNum === SHADING_PATTERN) {\n          var shading = dict.get('Shading');\n          var matrix = dict.getArray('Matrix');\n          pattern = _pattern.Pattern.parseShading(shading, matrix, this.xref, resources, this.handler, this.pdfFunctionFactory);\n          operatorList.addOp(fn, pattern.getIR());\n          return Promise.resolve();\n        }\n\n        return Promise.reject(new Error('Unknown PatternType: ' + typeNum));\n      }\n\n      operatorList.addOp(fn, args);\n      return Promise.resolve();\n    },\n    getOperatorList: function getOperatorList(_ref6) {\n      var _this7 = this;\n\n      var stream = _ref6.stream,\n          task = _ref6.task,\n          resources = _ref6.resources,\n          operatorList = _ref6.operatorList,\n          _ref6$initialState = _ref6.initialState,\n          initialState = _ref6$initialState === void 0 ? null : _ref6$initialState;\n      resources = resources || _primitives.Dict.empty;\n      initialState = initialState || new EvalState();\n\n      if (!operatorList) {\n        throw new Error('getOperatorList: missing \"operatorList\" parameter');\n      }\n\n      var self = this;\n      var xref = this.xref;\n      var imageCache = Object.create(null);\n\n      var xobjs = resources.get('XObject') || _primitives.Dict.empty;\n\n      var patterns = resources.get('Pattern') || _primitives.Dict.empty;\n\n      var stateManager = new StateManager(initialState);\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n      var timeSlotManager = new TimeSlotManager();\n\n      function closePendingRestoreOPS(argument) {\n        for (var i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n          operatorList.addOp(_util.OPS.restore, []);\n        }\n      }\n\n      return new Promise(function promiseBody(resolve, reject) {\n        var next = function next(promise) {\n          promise.then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n            operation = {},\n            i,\n            ii,\n            cs;\n\n        while (!(stop = timeSlotManager.check())) {\n          operation.args = null;\n\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n\n          var args = operation.args;\n          var fn = operation.fn;\n\n          switch (fn | 0) {\n            case _util.OPS.paintXObject:\n              var name = args[0].name;\n\n              if (name && imageCache[name] !== undefined) {\n                operatorList.addOp(imageCache[name].fn, imageCache[name].args);\n                args = null;\n                continue;\n              }\n\n              next(new Promise(function (resolveXObject, rejectXObject) {\n                if (!name) {\n                  throw new _util.FormatError('XObject must be referred to by name.');\n                }\n\n                var xobj = xobjs.get(name);\n\n                if (!xobj) {\n                  operatorList.addOp(fn, args);\n                  resolveXObject();\n                  return;\n                }\n\n                if (!(0, _primitives.isStream)(xobj)) {\n                  throw new _util.FormatError('XObject should be a stream');\n                }\n\n                var type = xobj.dict.get('Subtype');\n\n                if (!(0, _primitives.isName)(type)) {\n                  throw new _util.FormatError('XObject should have a Name subtype');\n                }\n\n                if (type.name === 'Form') {\n                  stateManager.save();\n                  self.buildFormXObject(resources, xobj, null, operatorList, task, stateManager.state.clone()).then(function () {\n                    stateManager.restore();\n                    resolveXObject();\n                  }, rejectXObject);\n                  return;\n                } else if (type.name === 'Image') {\n                  self.buildPaintImageXObject({\n                    resources: resources,\n                    image: xobj,\n                    operatorList: operatorList,\n                    cacheKey: name,\n                    imageCache: imageCache\n                  }).then(resolveXObject, rejectXObject);\n                  return;\n                } else if (type.name === 'PS') {\n                  (0, _util.info)('Ignored XObject subtype PS');\n                } else {\n                  throw new _util.FormatError(\"Unhandled XObject subtype \".concat(type.name));\n                }\n\n                resolveXObject();\n              }).catch(function (reason) {\n                if (self.options.ignoreErrors) {\n                  self.handler.send('UnsupportedFeature', {\n                    featureId: _util.UNSUPPORTED_FEATURES.unknown\n                  });\n                  (0, _util.warn)(\"getOperatorList - ignoring XObject: \\\"\".concat(reason, \"\\\".\"));\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n\n            case _util.OPS.setFont:\n              var fontSize = args[1];\n              next(self.handleSetFont(resources, args, null, operatorList, task, stateManager.state).then(function (loadedName) {\n                operatorList.addDependency(loadedName);\n                operatorList.addOp(_util.OPS.setFont, [loadedName, fontSize]);\n              }));\n              return;\n\n            case _util.OPS.endInlineImage:\n              var cacheKey = args[0].cacheKey;\n\n              if (cacheKey) {\n                var cacheEntry = imageCache[cacheKey];\n\n                if (cacheEntry !== undefined) {\n                  operatorList.addOp(cacheEntry.fn, cacheEntry.args);\n                  args = null;\n                  continue;\n                }\n              }\n\n              next(self.buildPaintImageXObject({\n                resources: resources,\n                image: args[0],\n                isInline: true,\n                operatorList: operatorList,\n                cacheKey: cacheKey,\n                imageCache: imageCache\n              }));\n              return;\n\n            case _util.OPS.showText:\n              args[0] = self.handleText(args[0], stateManager.state);\n              break;\n\n            case _util.OPS.showSpacedText:\n              var arr = args[0];\n              var combinedGlyphs = [];\n              var arrLength = arr.length;\n              var state = stateManager.state;\n\n              for (i = 0; i < arrLength; ++i) {\n                var arrItem = arr[i];\n\n                if ((0, _util.isString)(arrItem)) {\n                  Array.prototype.push.apply(combinedGlyphs, self.handleText(arrItem, state));\n                } else if ((0, _util.isNum)(arrItem)) {\n                  combinedGlyphs.push(arrItem);\n                }\n              }\n\n              args[0] = combinedGlyphs;\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.nextLineShowText:\n              operatorList.addOp(_util.OPS.nextLine);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.nextLineSetSpacingShowText:\n              operatorList.addOp(_util.OPS.nextLine);\n              operatorList.addOp(_util.OPS.setWordSpacing, [args.shift()]);\n              operatorList.addOp(_util.OPS.setCharSpacing, [args.shift()]);\n              args[0] = self.handleText(args[0], stateManager.state);\n              fn = _util.OPS.showText;\n              break;\n\n            case _util.OPS.setTextRenderingMode:\n              stateManager.state.textRenderingMode = args[0];\n              break;\n\n            case _util.OPS.setFillColorSpace:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n              continue;\n\n            case _util.OPS.setStrokeColorSpace:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.parse(args[0], xref, resources, self.pdfFunctionFactory);\n              continue;\n\n            case _util.OPS.setFillColor:\n              cs = stateManager.state.fillColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeColor:\n              cs = stateManager.state.strokeColorSpace;\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillGray:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n              args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeGray:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n              args = _colorspace.ColorSpace.singletons.gray.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillCMYKColor:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n              args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeCMYKColor:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.cmyk;\n              args = _colorspace.ColorSpace.singletons.cmyk.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.setFillRGBColor:\n              stateManager.state.fillColorSpace = _colorspace.ColorSpace.singletons.rgb;\n              args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n\n            case _util.OPS.setStrokeRGBColor:\n              stateManager.state.strokeColorSpace = _colorspace.ColorSpace.singletons.rgb;\n              args = _colorspace.ColorSpace.singletons.rgb.getRgb(args, 0);\n              break;\n\n            case _util.OPS.setFillColorN:\n              cs = stateManager.state.fillColorSpace;\n\n              if (cs.name === 'Pattern') {\n                next(self.handleColorN(operatorList, _util.OPS.setFillColorN, args, cs, patterns, resources, task));\n                return;\n              }\n\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setFillRGBColor;\n              break;\n\n            case _util.OPS.setStrokeColorN:\n              cs = stateManager.state.strokeColorSpace;\n\n              if (cs.name === 'Pattern') {\n                next(self.handleColorN(operatorList, _util.OPS.setStrokeColorN, args, cs, patterns, resources, task));\n                return;\n              }\n\n              args = cs.getRgb(args, 0);\n              fn = _util.OPS.setStrokeRGBColor;\n              break;\n\n            case _util.OPS.shadingFill:\n              var shadingRes = resources.get('Shading');\n\n              if (!shadingRes) {\n                throw new _util.FormatError('No shading resource found');\n              }\n\n              var shading = shadingRes.get(args[0].name);\n\n              if (!shading) {\n                throw new _util.FormatError('No shading object found');\n              }\n\n              var shadingFill = _pattern.Pattern.parseShading(shading, null, xref, resources, self.handler, self.pdfFunctionFactory);\n\n              var patternIR = shadingFill.getIR();\n              args = [patternIR];\n              fn = _util.OPS.shadingFill;\n              break;\n\n            case _util.OPS.setGState:\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!(0, _primitives.isDict)(extGState) || !extGState.has(dictName.name)) {\n                break;\n              }\n\n              var gState = extGState.get(dictName.name);\n              next(self.setGState(resources, gState, operatorList, task, stateManager));\n              return;\n\n            case _util.OPS.moveTo:\n            case _util.OPS.lineTo:\n            case _util.OPS.curveTo:\n            case _util.OPS.curveTo2:\n            case _util.OPS.curveTo3:\n            case _util.OPS.closePath:\n              self.buildPath(operatorList, fn, args);\n              continue;\n\n            case _util.OPS.rectangle:\n              self.buildPath(operatorList, fn, args);\n              continue;\n\n            case _util.OPS.markPoint:\n            case _util.OPS.markPointProps:\n            case _util.OPS.beginMarkedContent:\n            case _util.OPS.beginMarkedContentProps:\n            case _util.OPS.endMarkedContent:\n            case _util.OPS.beginCompat:\n            case _util.OPS.endCompat:\n              continue;\n\n            default:\n              if (args !== null) {\n                for (i = 0, ii = args.length; i < ii; i++) {\n                  if (args[i] instanceof _primitives.Dict) {\n                    break;\n                  }\n                }\n\n                if (i < ii) {\n                  (0, _util.warn)('getOperatorList - ignoring operator: ' + fn);\n                  continue;\n                }\n              }\n\n          }\n\n          operatorList.addOp(fn, args);\n        }\n\n        if (stop) {\n          next(deferred);\n          return;\n        }\n\n        closePendingRestoreOPS();\n        resolve();\n      }).catch(function (reason) {\n        if (_this7.options.ignoreErrors) {\n          _this7.handler.send('UnsupportedFeature', {\n            featureId: _util.UNSUPPORTED_FEATURES.unknown\n          });\n\n          (0, _util.warn)(\"getOperatorList - ignoring errors during \\\"\".concat(task.name, \"\\\" \") + \"task: \\\"\".concat(reason, \"\\\".\"));\n          closePendingRestoreOPS();\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    getTextContent: function getTextContent(_ref7) {\n      var _this8 = this;\n\n      var stream = _ref7.stream,\n          task = _ref7.task,\n          resources = _ref7.resources,\n          _ref7$stateManager = _ref7.stateManager,\n          stateManager = _ref7$stateManager === void 0 ? null : _ref7$stateManager,\n          _ref7$normalizeWhites = _ref7.normalizeWhitespace,\n          normalizeWhitespace = _ref7$normalizeWhites === void 0 ? false : _ref7$normalizeWhites,\n          _ref7$combineTextItem = _ref7.combineTextItems,\n          combineTextItems = _ref7$combineTextItem === void 0 ? false : _ref7$combineTextItem,\n          sink = _ref7.sink,\n          _ref7$seenStyles = _ref7.seenStyles,\n          seenStyles = _ref7$seenStyles === void 0 ? Object.create(null) : _ref7$seenStyles;\n      resources = resources || _primitives.Dict.empty;\n      stateManager = stateManager || new StateManager(new TextState());\n      var WhitespaceRegexp = /\\s/g;\n      var textContent = {\n        items: [],\n        styles: Object.create(null)\n      };\n      var textContentItem = {\n        initialized: false,\n        str: [],\n        width: 0,\n        height: 0,\n        vertical: false,\n        lastAdvanceWidth: 0,\n        lastAdvanceHeight: 0,\n        textAdvanceScale: 0,\n        spaceWidth: 0,\n        fakeSpaceMin: Infinity,\n        fakeMultiSpaceMin: Infinity,\n        fakeMultiSpaceMax: -0,\n        textRunBreakAllowed: false,\n        transform: null,\n        fontName: null\n      };\n      var SPACE_FACTOR = 0.3;\n      var MULTI_SPACE_FACTOR = 1.5;\n      var MULTI_SPACE_FACTOR_MAX = 4;\n      var self = this;\n      var xref = this.xref;\n      var xobjs = null;\n      var skipEmptyXObjs = Object.create(null);\n      var preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n      var textState;\n\n      function ensureTextContentItem() {\n        if (textContentItem.initialized) {\n          return textContentItem;\n        }\n\n        var font = textState.font;\n\n        if (!(font.loadedName in seenStyles)) {\n          seenStyles[font.loadedName] = true;\n          textContent.styles[font.loadedName] = {\n            fontFamily: font.fallbackName,\n            ascent: font.ascent,\n            descent: font.descent,\n            vertical: !!font.vertical\n          };\n        }\n\n        textContentItem.fontName = font.loadedName;\n        var tsm = [textState.fontSize * textState.textHScale, 0, 0, textState.fontSize, 0, textState.textRise];\n\n        if (font.isType3Font && textState.fontMatrix !== _util.FONT_IDENTITY_MATRIX && textState.fontSize === 1) {\n          var glyphHeight = font.bbox[3] - font.bbox[1];\n\n          if (glyphHeight > 0) {\n            glyphHeight = glyphHeight * textState.fontMatrix[3];\n            tsm[3] *= glyphHeight;\n          }\n        }\n\n        var trm = _util.Util.transform(textState.ctm, _util.Util.transform(textState.textMatrix, tsm));\n\n        textContentItem.transform = trm;\n\n        if (!font.vertical) {\n          textContentItem.width = 0;\n          textContentItem.height = Math.sqrt(trm[2] * trm[2] + trm[3] * trm[3]);\n          textContentItem.vertical = false;\n        } else {\n          textContentItem.width = Math.sqrt(trm[0] * trm[0] + trm[1] * trm[1]);\n          textContentItem.height = 0;\n          textContentItem.vertical = true;\n        }\n\n        var a = textState.textLineMatrix[0];\n        var b = textState.textLineMatrix[1];\n        var scaleLineX = Math.sqrt(a * a + b * b);\n        a = textState.ctm[0];\n        b = textState.ctm[1];\n        var scaleCtmX = Math.sqrt(a * a + b * b);\n        textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n        textContentItem.lastAdvanceWidth = 0;\n        textContentItem.lastAdvanceHeight = 0;\n        var spaceWidth = font.spaceWidth / 1000 * textState.fontSize;\n\n        if (spaceWidth) {\n          textContentItem.spaceWidth = spaceWidth;\n          textContentItem.fakeSpaceMin = spaceWidth * SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMin = spaceWidth * MULTI_SPACE_FACTOR;\n          textContentItem.fakeMultiSpaceMax = spaceWidth * MULTI_SPACE_FACTOR_MAX;\n          textContentItem.textRunBreakAllowed = !font.isMonospace;\n        } else {\n          textContentItem.spaceWidth = 0;\n          textContentItem.fakeSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMin = Infinity;\n          textContentItem.fakeMultiSpaceMax = 0;\n          textContentItem.textRunBreakAllowed = false;\n        }\n\n        textContentItem.initialized = true;\n        return textContentItem;\n      }\n\n      function replaceWhitespace(str) {\n        var i = 0,\n            ii = str.length,\n            code;\n\n        while (i < ii && (code = str.charCodeAt(i)) >= 0x20 && code <= 0x7F) {\n          i++;\n        }\n\n        return i < ii ? str.replace(WhitespaceRegexp, ' ') : str;\n      }\n\n      function runBidiTransform(textChunk) {\n        var str = textChunk.str.join('');\n        var bidiResult = (0, _bidi.bidi)(str, -1, textChunk.vertical);\n        return {\n          str: normalizeWhitespace ? replaceWhitespace(bidiResult.str) : bidiResult.str,\n          dir: bidiResult.dir,\n          width: textChunk.width,\n          height: textChunk.height,\n          transform: textChunk.transform,\n          fontName: textChunk.fontName\n        };\n      }\n\n      function handleSetFont(fontName, fontRef) {\n        return self.loadFont(fontName, fontRef, resources).then(function (translated) {\n          textState.font = translated.font;\n          textState.fontMatrix = translated.font.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n        });\n      }\n\n      function buildTextContentItem(chars) {\n        var font = textState.font;\n        var textChunk = ensureTextContentItem();\n        var width = 0;\n        var height = 0;\n        var glyphs = font.charsToGlyphs(chars);\n\n        for (var i = 0; i < glyphs.length; i++) {\n          var glyph = glyphs[i];\n          var glyphWidth = null;\n\n          if (font.vertical && glyph.vmetric) {\n            glyphWidth = glyph.vmetric[0];\n          } else {\n            glyphWidth = glyph.width;\n          }\n\n          var glyphUnicode = glyph.unicode;\n          var NormalizedUnicodes = (0, _unicode.getNormalizedUnicodes)();\n\n          if (NormalizedUnicodes[glyphUnicode] !== undefined) {\n            glyphUnicode = NormalizedUnicodes[glyphUnicode];\n          }\n\n          glyphUnicode = (0, _unicode.reverseIfRtl)(glyphUnicode);\n          var charSpacing = textState.charSpacing;\n\n          if (glyph.isSpace) {\n            var wordSpacing = textState.wordSpacing;\n            charSpacing += wordSpacing;\n\n            if (wordSpacing > 0) {\n              addFakeSpaces(wordSpacing, textChunk.str);\n            }\n          }\n\n          var tx = 0;\n          var ty = 0;\n\n          if (!font.vertical) {\n            var w0 = glyphWidth * textState.fontMatrix[0];\n            tx = (w0 * textState.fontSize + charSpacing) * textState.textHScale;\n            width += tx;\n          } else {\n            var w1 = glyphWidth * textState.fontMatrix[0];\n            ty = w1 * textState.fontSize + charSpacing;\n            height += ty;\n          }\n\n          textState.translateTextMatrix(tx, ty);\n          textChunk.str.push(glyphUnicode);\n        }\n\n        if (!font.vertical) {\n          textChunk.lastAdvanceWidth = width;\n          textChunk.width += width;\n        } else {\n          textChunk.lastAdvanceHeight = height;\n          textChunk.height += Math.abs(height);\n        }\n\n        return textChunk;\n      }\n\n      function addFakeSpaces(width, strBuf) {\n        if (width < textContentItem.fakeSpaceMin) {\n          return;\n        }\n\n        if (width < textContentItem.fakeMultiSpaceMin) {\n          strBuf.push(' ');\n          return;\n        }\n\n        var fakeSpaces = Math.round(width / textContentItem.spaceWidth);\n\n        while (fakeSpaces-- > 0) {\n          strBuf.push(' ');\n        }\n      }\n\n      function flushTextContentItem() {\n        if (!textContentItem.initialized) {\n          return;\n        }\n\n        if (!textContentItem.vertical) {\n          textContentItem.width *= textContentItem.textAdvanceScale;\n        } else {\n          textContentItem.height *= textContentItem.textAdvanceScale;\n        }\n\n        textContent.items.push(runBidiTransform(textContentItem));\n        textContentItem.initialized = false;\n        textContentItem.str.length = 0;\n      }\n\n      function enqueueChunk() {\n        var length = textContent.items.length;\n\n        if (length > 0) {\n          sink.enqueue(textContent, length);\n          textContent.items = [];\n          textContent.styles = Object.create(null);\n        }\n      }\n\n      var timeSlotManager = new TimeSlotManager();\n      return new Promise(function promiseBody(resolve, reject) {\n        var next = function next(promise) {\n          enqueueChunk();\n          Promise.all([promise, sink.ready]).then(function () {\n            try {\n              promiseBody(resolve, reject);\n            } catch (ex) {\n              reject(ex);\n            }\n          }, reject);\n        };\n\n        task.ensureNotTerminated();\n        timeSlotManager.reset();\n        var stop,\n            operation = {},\n            args = [];\n\n        while (!(stop = timeSlotManager.check())) {\n          args.length = 0;\n          operation.args = args;\n\n          if (!preprocessor.read(operation)) {\n            break;\n          }\n\n          textState = stateManager.state;\n          var fn = operation.fn;\n          args = operation.args;\n          var advance, diff;\n\n          switch (fn | 0) {\n            case _util.OPS.setFont:\n              var fontNameArg = args[0].name,\n                  fontSizeArg = args[1];\n\n              if (textState.font && fontNameArg === textState.fontName && fontSizeArg === textState.fontSize) {\n                break;\n              }\n\n              flushTextContentItem();\n              textState.fontName = fontNameArg;\n              textState.fontSize = fontSizeArg;\n              next(handleSetFont(fontNameArg, null));\n              return;\n\n            case _util.OPS.setTextRise:\n              flushTextContentItem();\n              textState.textRise = args[0];\n              break;\n\n            case _util.OPS.setHScale:\n              flushTextContentItem();\n              textState.textHScale = args[0] / 100;\n              break;\n\n            case _util.OPS.setLeading:\n              flushTextContentItem();\n              textState.leading = args[0];\n              break;\n\n            case _util.OPS.moveText:\n              var isSameTextLine = !textState.font ? false : (textState.font.vertical ? args[0] : args[1]) === 0;\n              advance = args[0] - args[1];\n\n              if (combineTextItems && isSameTextLine && textContentItem.initialized && advance > 0 && advance <= textContentItem.fakeMultiSpaceMax) {\n                textState.translateTextLineMatrix(args[0], args[1]);\n                textContentItem.width += args[0] - textContentItem.lastAdvanceWidth;\n                textContentItem.height += args[1] - textContentItem.lastAdvanceHeight;\n                diff = args[0] - textContentItem.lastAdvanceWidth - (args[1] - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n\n            case _util.OPS.setLeadingMoveText:\n              flushTextContentItem();\n              textState.leading = -args[1];\n              textState.translateTextLineMatrix(args[0], args[1]);\n              textState.textMatrix = textState.textLineMatrix.slice();\n              break;\n\n            case _util.OPS.nextLine:\n              flushTextContentItem();\n              textState.carriageReturn();\n              break;\n\n            case _util.OPS.setTextMatrix:\n              advance = textState.calcTextLineMatrixAdvance(args[0], args[1], args[2], args[3], args[4], args[5]);\n\n              if (combineTextItems && advance !== null && textContentItem.initialized && advance.value > 0 && advance.value <= textContentItem.fakeMultiSpaceMax) {\n                textState.translateTextLineMatrix(advance.width, advance.height);\n                textContentItem.width += advance.width - textContentItem.lastAdvanceWidth;\n                textContentItem.height += advance.height - textContentItem.lastAdvanceHeight;\n                diff = advance.width - textContentItem.lastAdvanceWidth - (advance.height - textContentItem.lastAdvanceHeight);\n                addFakeSpaces(diff, textContentItem.str);\n                break;\n              }\n\n              flushTextContentItem();\n              textState.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n              textState.setTextLineMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n              break;\n\n            case _util.OPS.setCharSpacing:\n              textState.charSpacing = args[0];\n              break;\n\n            case _util.OPS.setWordSpacing:\n              textState.wordSpacing = args[0];\n              break;\n\n            case _util.OPS.beginText:\n              flushTextContentItem();\n              textState.textMatrix = _util.IDENTITY_MATRIX.slice();\n              textState.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n              break;\n\n            case _util.OPS.showSpacedText:\n              var items = args[0];\n              var offset;\n\n              for (var j = 0, jj = items.length; j < jj; j++) {\n                if (typeof items[j] === 'string') {\n                  buildTextContentItem(items[j]);\n                } else if ((0, _util.isNum)(items[j])) {\n                  ensureTextContentItem();\n                  advance = items[j] * textState.fontSize / 1000;\n                  var breakTextRun = false;\n\n                  if (textState.font.vertical) {\n                    offset = advance;\n                    textState.translateTextMatrix(0, offset);\n                    breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n                    if (!breakTextRun) {\n                      textContentItem.height += offset;\n                    }\n                  } else {\n                    advance = -advance;\n                    offset = advance * textState.textHScale;\n                    textState.translateTextMatrix(offset, 0);\n                    breakTextRun = textContentItem.textRunBreakAllowed && advance > textContentItem.fakeMultiSpaceMax;\n\n                    if (!breakTextRun) {\n                      textContentItem.width += offset;\n                    }\n                  }\n\n                  if (breakTextRun) {\n                    flushTextContentItem();\n                  } else if (advance > 0) {\n                    addFakeSpaces(advance, textContentItem.str);\n                  }\n                }\n              }\n\n              break;\n\n            case _util.OPS.showText:\n              buildTextContentItem(args[0]);\n              break;\n\n            case _util.OPS.nextLineShowText:\n              flushTextContentItem();\n              textState.carriageReturn();\n              buildTextContentItem(args[0]);\n              break;\n\n            case _util.OPS.nextLineSetSpacingShowText:\n              flushTextContentItem();\n              textState.wordSpacing = args[0];\n              textState.charSpacing = args[1];\n              textState.carriageReturn();\n              buildTextContentItem(args[2]);\n              break;\n\n            case _util.OPS.paintXObject:\n              flushTextContentItem();\n\n              if (!xobjs) {\n                xobjs = resources.get('XObject') || _primitives.Dict.empty;\n              }\n\n              var name = args[0].name;\n\n              if (name && skipEmptyXObjs[name] !== undefined) {\n                break;\n              }\n\n              next(new Promise(function (resolveXObject, rejectXObject) {\n                if (!name) {\n                  throw new _util.FormatError('XObject must be referred to by name.');\n                }\n\n                var xobj = xobjs.get(name);\n\n                if (!xobj) {\n                  resolveXObject();\n                  return;\n                }\n\n                if (!(0, _primitives.isStream)(xobj)) {\n                  throw new _util.FormatError('XObject should be a stream');\n                }\n\n                var type = xobj.dict.get('Subtype');\n\n                if (!(0, _primitives.isName)(type)) {\n                  throw new _util.FormatError('XObject should have a Name subtype');\n                }\n\n                if (type.name !== 'Form') {\n                  skipEmptyXObjs[name] = true;\n                  resolveXObject();\n                  return;\n                }\n\n                var currentState = stateManager.state.clone();\n                var xObjStateManager = new StateManager(currentState);\n                var matrix = xobj.dict.getArray('Matrix');\n\n                if (Array.isArray(matrix) && matrix.length === 6) {\n                  xObjStateManager.transform(matrix);\n                }\n\n                enqueueChunk();\n                var sinkWrapper = {\n                  enqueueInvoked: false,\n                  enqueue: function enqueue(chunk, size) {\n                    this.enqueueInvoked = true;\n                    sink.enqueue(chunk, size);\n                  },\n\n                  get desiredSize() {\n                    return sink.desiredSize;\n                  },\n\n                  get ready() {\n                    return sink.ready;\n                  }\n\n                };\n                self.getTextContent({\n                  stream: xobj,\n                  task: task,\n                  resources: xobj.dict.get('Resources') || resources,\n                  stateManager: xObjStateManager,\n                  normalizeWhitespace: normalizeWhitespace,\n                  combineTextItems: combineTextItems,\n                  sink: sinkWrapper,\n                  seenStyles: seenStyles\n                }).then(function () {\n                  if (!sinkWrapper.enqueueInvoked) {\n                    skipEmptyXObjs[name] = true;\n                  }\n\n                  resolveXObject();\n                }, rejectXObject);\n              }).catch(function (reason) {\n                if (reason instanceof _util.AbortException) {\n                  return;\n                }\n\n                if (self.options.ignoreErrors) {\n                  (0, _util.warn)(\"getTextContent - ignoring XObject: \\\"\".concat(reason, \"\\\".\"));\n                  return;\n                }\n\n                throw reason;\n              }));\n              return;\n\n            case _util.OPS.setGState:\n              flushTextContentItem();\n              var dictName = args[0];\n              var extGState = resources.get('ExtGState');\n\n              if (!(0, _primitives.isDict)(extGState) || !(0, _primitives.isName)(dictName)) {\n                break;\n              }\n\n              var gState = extGState.get(dictName.name);\n\n              if (!(0, _primitives.isDict)(gState)) {\n                break;\n              }\n\n              var gStateFont = gState.get('Font');\n\n              if (gStateFont) {\n                textState.fontName = null;\n                textState.fontSize = gStateFont[1];\n                next(handleSetFont(null, gStateFont[0]));\n                return;\n              }\n\n              break;\n          }\n\n          if (textContent.items.length >= sink.desiredSize) {\n            stop = true;\n            break;\n          }\n        }\n\n        if (stop) {\n          next(deferred);\n          return;\n        }\n\n        flushTextContentItem();\n        enqueueChunk();\n        resolve();\n      }).catch(function (reason) {\n        if (reason instanceof _util.AbortException) {\n          return;\n        }\n\n        if (_this8.options.ignoreErrors) {\n          (0, _util.warn)(\"getTextContent - ignoring errors during \\\"\".concat(task.name, \"\\\" \") + \"task: \\\"\".concat(reason, \"\\\".\"));\n          flushTextContentItem();\n          enqueueChunk();\n          return;\n        }\n\n        throw reason;\n      });\n    },\n    extractDataStructures: function PartialEvaluator_extractDataStructures(dict, baseDict, properties) {\n      var _this9 = this;\n\n      var xref = this.xref;\n      var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n      var toUnicodePromise = toUnicode ? this.readToUnicode(toUnicode) : Promise.resolve(undefined);\n\n      if (properties.composite) {\n        var cidSystemInfo = dict.get('CIDSystemInfo');\n\n        if ((0, _primitives.isDict)(cidSystemInfo)) {\n          properties.cidSystemInfo = {\n            registry: (0, _util.stringToPDFString)(cidSystemInfo.get('Registry')),\n            ordering: (0, _util.stringToPDFString)(cidSystemInfo.get('Ordering')),\n            supplement: cidSystemInfo.get('Supplement')\n          };\n        }\n\n        var cidToGidMap = dict.get('CIDToGIDMap');\n\n        if ((0, _primitives.isStream)(cidToGidMap)) {\n          properties.cidToGidMap = this.readCidToGidMap(cidToGidMap);\n        }\n      }\n\n      var differences = [];\n      var baseEncodingName = null;\n      var encoding;\n\n      if (dict.has('Encoding')) {\n        encoding = dict.get('Encoding');\n\n        if ((0, _primitives.isDict)(encoding)) {\n          baseEncodingName = encoding.get('BaseEncoding');\n          baseEncodingName = (0, _primitives.isName)(baseEncodingName) ? baseEncodingName.name : null;\n\n          if (encoding.has('Differences')) {\n            var diffEncoding = encoding.get('Differences');\n            var index = 0;\n\n            for (var j = 0, jj = diffEncoding.length; j < jj; j++) {\n              var data = xref.fetchIfRef(diffEncoding[j]);\n\n              if ((0, _util.isNum)(data)) {\n                index = data;\n              } else if ((0, _primitives.isName)(data)) {\n                differences[index++] = data.name;\n              } else {\n                throw new _util.FormatError(\"Invalid entry in 'Differences' array: \".concat(data));\n              }\n            }\n          }\n        } else if ((0, _primitives.isName)(encoding)) {\n          baseEncodingName = encoding.name;\n        } else {\n          throw new _util.FormatError('Encoding is not a Name nor a Dict');\n        }\n\n        if (baseEncodingName !== 'MacRomanEncoding' && baseEncodingName !== 'MacExpertEncoding' && baseEncodingName !== 'WinAnsiEncoding') {\n          baseEncodingName = null;\n        }\n      }\n\n      if (baseEncodingName) {\n        properties.defaultEncoding = (0, _encodings.getEncoding)(baseEncodingName).slice();\n      } else {\n        var isSymbolicFont = !!(properties.flags & _fonts.FontFlags.Symbolic);\n        var isNonsymbolicFont = !!(properties.flags & _fonts.FontFlags.Nonsymbolic);\n        encoding = _encodings.StandardEncoding;\n\n        if (properties.type === 'TrueType' && !isNonsymbolicFont) {\n          encoding = _encodings.WinAnsiEncoding;\n        }\n\n        if (isSymbolicFont) {\n          encoding = _encodings.MacRomanEncoding;\n\n          if (!properties.file) {\n            if (/Symbol/i.test(properties.name)) {\n              encoding = _encodings.SymbolSetEncoding;\n            } else if (/Dingbats/i.test(properties.name)) {\n              encoding = _encodings.ZapfDingbatsEncoding;\n            }\n          }\n        }\n\n        properties.defaultEncoding = encoding;\n      }\n\n      properties.differences = differences;\n      properties.baseEncodingName = baseEncodingName;\n      properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n      properties.dict = dict;\n      return toUnicodePromise.then(function (toUnicode) {\n        properties.toUnicode = toUnicode;\n        return _this9.buildToUnicode(properties);\n      }).then(function (toUnicode) {\n        properties.toUnicode = toUnicode;\n        return properties;\n      });\n    },\n    _buildSimpleFontToUnicode: function _buildSimpleFontToUnicode(properties) {\n      (0, _util.assert)(!properties.composite, 'Must be a simple font.');\n      var toUnicode = [],\n          charcode,\n          glyphName;\n      var encoding = properties.defaultEncoding.slice();\n      var baseEncodingName = properties.baseEncodingName;\n      var differences = properties.differences;\n\n      for (charcode in differences) {\n        glyphName = differences[charcode];\n\n        if (glyphName === '.notdef') {\n          continue;\n        }\n\n        encoding[charcode] = glyphName;\n      }\n\n      var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n      for (charcode in encoding) {\n        glyphName = encoding[charcode];\n\n        if (glyphName === '') {\n          continue;\n        } else if (glyphsUnicodeMap[glyphName] === undefined) {\n          var code = 0;\n\n          switch (glyphName[0]) {\n            case 'G':\n              if (glyphName.length === 3) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n\n              break;\n\n            case 'g':\n              if (glyphName.length === 5) {\n                code = parseInt(glyphName.substring(1), 16);\n              }\n\n              break;\n\n            case 'C':\n            case 'c':\n              if (glyphName.length >= 3) {\n                code = +glyphName.substring(1);\n              }\n\n              break;\n\n            default:\n              var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n              if (unicode !== -1) {\n                code = unicode;\n              }\n\n          }\n\n          if (code) {\n            if (baseEncodingName && code === +charcode) {\n              var baseEncoding = (0, _encodings.getEncoding)(baseEncodingName);\n\n              if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n                toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n                continue;\n              }\n            }\n\n            toUnicode[charcode] = String.fromCodePoint(code);\n          }\n\n          continue;\n        }\n\n        toUnicode[charcode] = String.fromCharCode(glyphsUnicodeMap[glyphName]);\n      }\n\n      return new _fonts.ToUnicodeMap(toUnicode);\n    },\n    buildToUnicode: function buildToUnicode(properties) {\n      properties.hasIncludedToUnicodeMap = !!properties.toUnicode && properties.toUnicode.length > 0;\n\n      if (properties.hasIncludedToUnicodeMap) {\n        if (!properties.composite && properties.hasEncoding) {\n          properties.fallbackToUnicode = this._buildSimpleFontToUnicode(properties);\n        }\n\n        return Promise.resolve(properties.toUnicode);\n      }\n\n      if (!properties.composite) {\n        return Promise.resolve(this._buildSimpleFontToUnicode(properties));\n      }\n\n      if (properties.composite && (properties.cMap.builtInCMap && !(properties.cMap instanceof _cmap.IdentityCMap) || properties.cidSystemInfo.registry === 'Adobe' && (properties.cidSystemInfo.ordering === 'GB1' || properties.cidSystemInfo.ordering === 'CNS1' || properties.cidSystemInfo.ordering === 'Japan1' || properties.cidSystemInfo.ordering === 'Korea1'))) {\n        var registry = properties.cidSystemInfo.registry;\n        var ordering = properties.cidSystemInfo.ordering;\n\n        var ucs2CMapName = _primitives.Name.get(registry + '-' + ordering + '-UCS2');\n\n        return _cmap.CMapFactory.create({\n          encoding: ucs2CMapName,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (ucs2CMap) {\n          var cMap = properties.cMap;\n          var toUnicode = [];\n          cMap.forEach(function (charcode, cid) {\n            if (cid > 0xffff) {\n              throw new _util.FormatError('Max size of CID is 65,535');\n            }\n\n            var ucs2 = ucs2CMap.lookup(cid);\n\n            if (ucs2) {\n              toUnicode[charcode] = String.fromCharCode((ucs2.charCodeAt(0) << 8) + ucs2.charCodeAt(1));\n            }\n          });\n          return new _fonts.ToUnicodeMap(toUnicode);\n        });\n      }\n\n      return Promise.resolve(new _fonts.IdentityToUnicodeMap(properties.firstChar, properties.lastChar));\n    },\n    readToUnicode: function PartialEvaluator_readToUnicode(toUnicode) {\n      var cmapObj = toUnicode;\n\n      if ((0, _primitives.isName)(cmapObj)) {\n        return _cmap.CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cmap) {\n          if (cmap instanceof _cmap.IdentityCMap) {\n            return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n          }\n\n          return new _fonts.ToUnicodeMap(cmap.getMap());\n        });\n      } else if ((0, _primitives.isStream)(cmapObj)) {\n        return _cmap.CMapFactory.create({\n          encoding: cmapObj,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cmap) {\n          if (cmap instanceof _cmap.IdentityCMap) {\n            return new _fonts.IdentityToUnicodeMap(0, 0xFFFF);\n          }\n\n          var map = new Array(cmap.length);\n          cmap.forEach(function (charCode, token) {\n            var str = [];\n\n            for (var k = 0; k < token.length; k += 2) {\n              var w1 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n\n              if ((w1 & 0xF800) !== 0xD800) {\n                str.push(w1);\n                continue;\n              }\n\n              k += 2;\n              var w2 = token.charCodeAt(k) << 8 | token.charCodeAt(k + 1);\n              str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n            }\n\n            map[charCode] = String.fromCodePoint.apply(String, str);\n          });\n          return new _fonts.ToUnicodeMap(map);\n        });\n      }\n\n      return Promise.resolve(null);\n    },\n    readCidToGidMap: function PartialEvaluator_readCidToGidMap(cidToGidStream) {\n      var glyphsData = cidToGidStream.getBytes();\n      var result = [];\n\n      for (var j = 0, jj = glyphsData.length; j < jj; j++) {\n        var glyphID = glyphsData[j++] << 8 | glyphsData[j];\n\n        if (glyphID === 0) {\n          continue;\n        }\n\n        var code = j >> 1;\n        result[code] = glyphID;\n      }\n\n      return result;\n    },\n    extractWidths: function PartialEvaluator_extractWidths(dict, descriptor, properties) {\n      var xref = this.xref;\n      var glyphsWidths = [];\n      var defaultWidth = 0;\n      var glyphsVMetrics = [];\n      var defaultVMetrics;\n      var i, ii, j, jj, start, code, widths;\n\n      if (properties.composite) {\n        defaultWidth = dict.has('DW') ? dict.get('DW') : 1000;\n        widths = dict.get('W');\n\n        if (widths) {\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            start = xref.fetchIfRef(widths[i++]);\n            code = xref.fetchIfRef(widths[i]);\n\n            if (Array.isArray(code)) {\n              for (j = 0, jj = code.length; j < jj; j++) {\n                glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n              }\n            } else {\n              var width = xref.fetchIfRef(widths[++i]);\n\n              for (j = start; j <= code; j++) {\n                glyphsWidths[j] = width;\n              }\n            }\n          }\n        }\n\n        if (properties.vertical) {\n          var vmetrics = dict.getArray('DW2') || [880, -1000];\n          defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n          vmetrics = dict.get('W2');\n\n          if (vmetrics) {\n            for (i = 0, ii = vmetrics.length; i < ii; i++) {\n              start = xref.fetchIfRef(vmetrics[i++]);\n              code = xref.fetchIfRef(vmetrics[i]);\n\n              if (Array.isArray(code)) {\n                for (j = 0, jj = code.length; j < jj; j++) {\n                  glyphsVMetrics[start++] = [xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j++]), xref.fetchIfRef(code[j])];\n                }\n              } else {\n                var vmetric = [xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i]), xref.fetchIfRef(vmetrics[++i])];\n\n                for (j = start; j <= code; j++) {\n                  glyphsVMetrics[j] = vmetric;\n                }\n              }\n            }\n          }\n        }\n      } else {\n        var firstChar = properties.firstChar;\n        widths = dict.get('Widths');\n\n        if (widths) {\n          j = firstChar;\n\n          for (i = 0, ii = widths.length; i < ii; i++) {\n            glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n          }\n\n          defaultWidth = parseFloat(descriptor.get('MissingWidth')) || 0;\n        } else {\n          var baseFontName = dict.get('BaseFont');\n\n          if ((0, _primitives.isName)(baseFontName)) {\n            var metrics = this.getBaseFontMetrics(baseFontName.name);\n            glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n            defaultWidth = metrics.defaultWidth;\n          }\n        }\n      }\n\n      var isMonospace = true;\n      var firstWidth = defaultWidth;\n\n      for (var glyph in glyphsWidths) {\n        var glyphWidth = glyphsWidths[glyph];\n\n        if (!glyphWidth) {\n          continue;\n        }\n\n        if (!firstWidth) {\n          firstWidth = glyphWidth;\n          continue;\n        }\n\n        if (firstWidth !== glyphWidth) {\n          isMonospace = false;\n          break;\n        }\n      }\n\n      if (isMonospace) {\n        properties.flags |= _fonts.FontFlags.FixedPitch;\n      }\n\n      properties.defaultWidth = defaultWidth;\n      properties.widths = glyphsWidths;\n      properties.defaultVMetrics = defaultVMetrics;\n      properties.vmetrics = glyphsVMetrics;\n    },\n    isSerifFont: function PartialEvaluator_isSerifFont(baseFontName) {\n      var fontNameWoStyle = baseFontName.split('-')[0];\n      return fontNameWoStyle in (0, _standard_fonts.getSerifFonts)() || fontNameWoStyle.search(/serif/gi) !== -1;\n    },\n    getBaseFontMetrics: function PartialEvaluator_getBaseFontMetrics(name) {\n      var defaultWidth = 0;\n      var widths = [];\n      var monospace = false;\n      var stdFontMap = (0, _standard_fonts.getStdFontMap)();\n      var lookupName = stdFontMap[name] || name;\n      var Metrics = (0, _metrics.getMetrics)();\n\n      if (!(lookupName in Metrics)) {\n        if (this.isSerifFont(name)) {\n          lookupName = 'Times-Roman';\n        } else {\n          lookupName = 'Helvetica';\n        }\n      }\n\n      var glyphWidths = Metrics[lookupName];\n\n      if ((0, _util.isNum)(glyphWidths)) {\n        defaultWidth = glyphWidths;\n        monospace = true;\n      } else {\n        widths = glyphWidths();\n      }\n\n      return {\n        defaultWidth: defaultWidth,\n        monospace: monospace,\n        widths: widths\n      };\n    },\n    buildCharCodeToWidth: function PartialEvaluator_bulildCharCodeToWidth(widthsByGlyphName, properties) {\n      var widths = Object.create(null);\n      var differences = properties.differences;\n      var encoding = properties.defaultEncoding;\n\n      for (var charCode = 0; charCode < 256; charCode++) {\n        if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n          widths[charCode] = widthsByGlyphName[differences[charCode]];\n          continue;\n        }\n\n        if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n          widths[charCode] = widthsByGlyphName[encoding[charCode]];\n          continue;\n        }\n      }\n\n      return widths;\n    },\n    preEvaluateFont: function PartialEvaluator_preEvaluateFont(dict) {\n      var baseDict = dict;\n      var type = dict.get('Subtype');\n\n      if (!(0, _primitives.isName)(type)) {\n        throw new _util.FormatError('invalid font Subtype');\n      }\n\n      var composite = false;\n      var uint8array;\n\n      if (type.name === 'Type0') {\n        var df = dict.get('DescendantFonts');\n\n        if (!df) {\n          throw new _util.FormatError('Descendant fonts are not specified');\n        }\n\n        dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n        type = dict.get('Subtype');\n\n        if (!(0, _primitives.isName)(type)) {\n          throw new _util.FormatError('invalid font Subtype');\n        }\n\n        composite = true;\n      }\n\n      var descriptor = dict.get('FontDescriptor');\n\n      if (descriptor) {\n        var hash = new _murmurhash.MurmurHash3_64();\n        var encoding = baseDict.getRaw('Encoding');\n\n        if ((0, _primitives.isName)(encoding)) {\n          hash.update(encoding.name);\n        } else if ((0, _primitives.isRef)(encoding)) {\n          hash.update(encoding.toString());\n        } else if ((0, _primitives.isDict)(encoding)) {\n          var keys = encoding.getKeys();\n\n          for (var i = 0, ii = keys.length; i < ii; i++) {\n            var entry = encoding.getRaw(keys[i]);\n\n            if ((0, _primitives.isName)(entry)) {\n              hash.update(entry.name);\n            } else if ((0, _primitives.isRef)(entry)) {\n              hash.update(entry.toString());\n            } else if (Array.isArray(entry)) {\n              var diffLength = entry.length,\n                  diffBuf = new Array(diffLength);\n\n              for (var j = 0; j < diffLength; j++) {\n                var diffEntry = entry[j];\n\n                if ((0, _primitives.isName)(diffEntry)) {\n                  diffBuf[j] = diffEntry.name;\n                } else if ((0, _util.isNum)(diffEntry) || (0, _primitives.isRef)(diffEntry)) {\n                  diffBuf[j] = diffEntry.toString();\n                }\n              }\n\n              hash.update(diffBuf.join());\n            }\n          }\n        }\n\n        var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');\n\n        if ((0, _primitives.isStream)(toUnicode)) {\n          var stream = toUnicode.str || toUnicode;\n          uint8array = stream.buffer ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength) : new Uint8Array(stream.bytes.buffer, stream.start, stream.end - stream.start);\n          hash.update(uint8array);\n        } else if ((0, _primitives.isName)(toUnicode)) {\n          hash.update(toUnicode.name);\n        }\n\n        var widths = dict.get('Widths') || baseDict.get('Widths');\n\n        if (widths) {\n          uint8array = new Uint8Array(new Uint32Array(widths).buffer);\n          hash.update(uint8array);\n        }\n      }\n\n      return {\n        descriptor: descriptor,\n        dict: dict,\n        baseDict: baseDict,\n        composite: composite,\n        type: type.name,\n        hash: hash ? hash.hexdigest() : ''\n      };\n    },\n    translateFont: function PartialEvaluator_translateFont(preEvaluatedFont) {\n      var _this10 = this;\n\n      var baseDict = preEvaluatedFont.baseDict;\n      var dict = preEvaluatedFont.dict;\n      var composite = preEvaluatedFont.composite;\n      var descriptor = preEvaluatedFont.descriptor;\n      var type = preEvaluatedFont.type;\n      var maxCharIndex = composite ? 0xFFFF : 0xFF;\n      var properties;\n\n      if (!descriptor) {\n        if (type === 'Type3') {\n          descriptor = new _primitives.Dict(null);\n          descriptor.set('FontName', _primitives.Name.get(type));\n          descriptor.set('FontBBox', dict.getArray('FontBBox'));\n        } else {\n          var baseFontName = dict.get('BaseFont');\n\n          if (!(0, _primitives.isName)(baseFontName)) {\n            throw new _util.FormatError('Base font is not specified');\n          }\n\n          baseFontName = baseFontName.name.replace(/[,_]/g, '-');\n          var metrics = this.getBaseFontMetrics(baseFontName);\n          var fontNameWoStyle = baseFontName.split('-')[0];\n          var flags = (this.isSerifFont(fontNameWoStyle) ? _fonts.FontFlags.Serif : 0) | (metrics.monospace ? _fonts.FontFlags.FixedPitch : 0) | ((0, _standard_fonts.getSymbolsFonts)()[fontNameWoStyle] ? _fonts.FontFlags.Symbolic : _fonts.FontFlags.Nonsymbolic);\n          properties = {\n            type: type,\n            name: baseFontName,\n            widths: metrics.widths,\n            defaultWidth: metrics.defaultWidth,\n            flags: flags,\n            firstChar: 0,\n            lastChar: maxCharIndex\n          };\n          return this.extractDataStructures(dict, dict, properties).then(function (properties) {\n            properties.widths = _this10.buildCharCodeToWidth(metrics.widths, properties);\n            return new _fonts.Font(baseFontName, null, properties);\n          });\n        }\n      }\n\n      var firstChar = dict.get('FirstChar') || 0;\n      var lastChar = dict.get('LastChar') || maxCharIndex;\n      var fontName = descriptor.get('FontName');\n      var baseFont = dict.get('BaseFont');\n\n      if ((0, _util.isString)(fontName)) {\n        fontName = _primitives.Name.get(fontName);\n      }\n\n      if ((0, _util.isString)(baseFont)) {\n        baseFont = _primitives.Name.get(baseFont);\n      }\n\n      if (type !== 'Type3') {\n        var fontNameStr = fontName && fontName.name;\n        var baseFontStr = baseFont && baseFont.name;\n\n        if (fontNameStr !== baseFontStr) {\n          (0, _util.info)(\"The FontDescriptor's FontName is \\\"\".concat(fontNameStr, \"\\\" but \") + \"should be the same as the Font's BaseFont \\\"\".concat(baseFontStr, \"\\\".\"));\n\n          if (fontNameStr && baseFontStr && baseFontStr.startsWith(fontNameStr)) {\n            fontName = baseFont;\n          }\n        }\n      }\n\n      fontName = fontName || baseFont;\n\n      if (!(0, _primitives.isName)(fontName)) {\n        throw new _util.FormatError('invalid font name');\n      }\n\n      var fontFile = descriptor.get('FontFile', 'FontFile2', 'FontFile3');\n\n      if (fontFile) {\n        if (fontFile.dict) {\n          var subtype = fontFile.dict.get('Subtype');\n\n          if (subtype) {\n            subtype = subtype.name;\n          }\n\n          var length1 = fontFile.dict.get('Length1');\n          var length2 = fontFile.dict.get('Length2');\n          var length3 = fontFile.dict.get('Length3');\n        }\n      }\n\n      properties = {\n        type: type,\n        name: fontName.name,\n        subtype: subtype,\n        file: fontFile,\n        length1: length1,\n        length2: length2,\n        length3: length3,\n        loadedName: baseDict.loadedName,\n        composite: composite,\n        wideChars: composite,\n        fixedPitch: false,\n        fontMatrix: dict.getArray('FontMatrix') || _util.FONT_IDENTITY_MATRIX,\n        firstChar: firstChar || 0,\n        lastChar: lastChar || maxCharIndex,\n        bbox: descriptor.getArray('FontBBox'),\n        ascent: descriptor.get('Ascent'),\n        descent: descriptor.get('Descent'),\n        xHeight: descriptor.get('XHeight'),\n        capHeight: descriptor.get('CapHeight'),\n        flags: descriptor.get('Flags'),\n        italicAngle: descriptor.get('ItalicAngle'),\n        isType3Font: false\n      };\n      var cMapPromise;\n\n      if (composite) {\n        var cidEncoding = baseDict.get('Encoding');\n\n        if ((0, _primitives.isName)(cidEncoding)) {\n          properties.cidEncoding = cidEncoding.name;\n        }\n\n        cMapPromise = _cmap.CMapFactory.create({\n          encoding: cidEncoding,\n          fetchBuiltInCMap: this.fetchBuiltInCMap,\n          useCMap: null\n        }).then(function (cMap) {\n          properties.cMap = cMap;\n          properties.vertical = properties.cMap.vertical;\n        });\n      } else {\n        cMapPromise = Promise.resolve(undefined);\n      }\n\n      return cMapPromise.then(function () {\n        return _this10.extractDataStructures(dict, baseDict, properties);\n      }).then(function (properties) {\n        _this10.extractWidths(dict, descriptor, properties);\n\n        if (type === 'Type3') {\n          properties.isType3Font = true;\n        }\n\n        return new _fonts.Font(fontName.name, fontFile, properties);\n      });\n    }\n  };\n\n  PartialEvaluator.buildFontPaths = function (font, glyphs, handler) {\n    function buildPath(fontChar) {\n      if (font.renderer.hasBuiltPath(fontChar)) {\n        return;\n      }\n\n      handler.send('commonobj', [\"\".concat(font.loadedName, \"_path_\").concat(fontChar), 'FontPath', font.renderer.getPathJs(fontChar)]);\n    }\n\n    var _iteratorNormalCompletion = true;\n    var _didIteratorError = false;\n    var _iteratorError = undefined;\n\n    try {\n      for (var _iterator = glyphs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n        var glyph = _step.value;\n        buildPath(glyph.fontChar);\n        var accent = glyph.accent;\n\n        if (accent && accent.fontChar) {\n          buildPath(accent.fontChar);\n        }\n      }\n    } catch (err) {\n      _didIteratorError = true;\n      _iteratorError = err;\n    } finally {\n      try {\n        if (!_iteratorNormalCompletion && _iterator.return != null) {\n          _iterator.return();\n        }\n      } finally {\n        if (_didIteratorError) {\n          throw _iteratorError;\n        }\n      }\n    }\n  };\n\n  return PartialEvaluator;\n}();\n\nexports.PartialEvaluator = PartialEvaluator;\n\nvar TranslatedFont = function TranslatedFontClosure() {\n  function TranslatedFont(loadedName, font, dict) {\n    this.loadedName = loadedName;\n    this.font = font;\n    this.dict = dict;\n    this.type3Loaded = null;\n    this.sent = false;\n  }\n\n  TranslatedFont.prototype = {\n    send: function send(handler) {\n      if (this.sent) {\n        return;\n      }\n\n      this.sent = true;\n      handler.send('commonobj', [this.loadedName, 'Font', this.font.exportData()]);\n    },\n    fallback: function fallback(handler) {\n      if (!this.font.data) {\n        return;\n      }\n\n      this.font.disableFontFace = true;\n      var glyphs = this.font.glyphCacheValues;\n      PartialEvaluator.buildFontPaths(this.font, glyphs, handler);\n    },\n    loadType3Data: function loadType3Data(evaluator, resources, parentOperatorList, task) {\n      if (!this.font.isType3Font) {\n        throw new Error('Must be a Type3 font.');\n      }\n\n      if (this.type3Loaded) {\n        return this.type3Loaded;\n      }\n\n      var type3Options = Object.create(evaluator.options);\n      type3Options.ignoreErrors = false;\n      var type3Evaluator = evaluator.clone(type3Options);\n      var translatedFont = this.font;\n      var loadCharProcsPromise = Promise.resolve();\n      var charProcs = this.dict.get('CharProcs');\n      var fontResources = this.dict.get('Resources') || resources;\n      var charProcKeys = charProcs.getKeys();\n      var charProcOperatorList = Object.create(null);\n\n      var _loop2 = function _loop2() {\n        var key = charProcKeys[i];\n        loadCharProcsPromise = loadCharProcsPromise.then(function () {\n          var glyphStream = charProcs.get(key);\n          var operatorList = new _operator_list.OperatorList();\n          return type3Evaluator.getOperatorList({\n            stream: glyphStream,\n            task: task,\n            resources: fontResources,\n            operatorList: operatorList\n          }).then(function () {\n            charProcOperatorList[key] = operatorList.getIR();\n            parentOperatorList.addDependencies(operatorList.dependencies);\n          }).catch(function (reason) {\n            (0, _util.warn)(\"Type3 font resource \\\"\".concat(key, \"\\\" is not available.\"));\n            var operatorList = new _operator_list.OperatorList();\n            charProcOperatorList[key] = operatorList.getIR();\n          });\n        });\n      };\n\n      for (var i = 0, n = charProcKeys.length; i < n; ++i) {\n        _loop2();\n      }\n\n      this.type3Loaded = loadCharProcsPromise.then(function () {\n        translatedFont.charProcOperatorList = charProcOperatorList;\n      });\n      return this.type3Loaded;\n    }\n  };\n  return TranslatedFont;\n}();\n\nvar StateManager = function StateManagerClosure() {\n  function StateManager(initialState) {\n    this.state = initialState;\n    this.stateStack = [];\n  }\n\n  StateManager.prototype = {\n    save: function save() {\n      var old = this.state;\n      this.stateStack.push(this.state);\n      this.state = old.clone();\n    },\n    restore: function restore() {\n      var prev = this.stateStack.pop();\n\n      if (prev) {\n        this.state = prev;\n      }\n    },\n    transform: function transform(args) {\n      this.state.ctm = _util.Util.transform(this.state.ctm, args);\n    }\n  };\n  return StateManager;\n}();\n\nvar TextState = function TextStateClosure() {\n  function TextState() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.fontName = null;\n    this.fontSize = 0;\n    this.font = null;\n    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n    this.textMatrix = _util.IDENTITY_MATRIX.slice();\n    this.textLineMatrix = _util.IDENTITY_MATRIX.slice();\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.leading = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n  }\n\n  TextState.prototype = {\n    setTextMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    setTextLineMatrix: function TextState_setTextMatrix(a, b, c, d, e, f) {\n      var m = this.textLineMatrix;\n      m[0] = a;\n      m[1] = b;\n      m[2] = c;\n      m[3] = d;\n      m[4] = e;\n      m[5] = f;\n    },\n    translateTextMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    translateTextLineMatrix: function TextState_translateTextMatrix(x, y) {\n      var m = this.textLineMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n    },\n    calcTextLineMatrixAdvance: function TextState_calcTextLineMatrixAdvance(a, b, c, d, e, f) {\n      var font = this.font;\n\n      if (!font) {\n        return null;\n      }\n\n      var m = this.textLineMatrix;\n\n      if (!(a === m[0] && b === m[1] && c === m[2] && d === m[3])) {\n        return null;\n      }\n\n      var txDiff = e - m[4],\n          tyDiff = f - m[5];\n\n      if (font.vertical && txDiff !== 0 || !font.vertical && tyDiff !== 0) {\n        return null;\n      }\n\n      var tx,\n          ty,\n          denominator = a * d - b * c;\n\n      if (font.vertical) {\n        tx = -tyDiff * c / denominator;\n        ty = tyDiff * a / denominator;\n      } else {\n        tx = txDiff * d / denominator;\n        ty = -txDiff * b / denominator;\n      }\n\n      return {\n        width: tx,\n        height: ty,\n        value: font.vertical ? ty : tx\n      };\n    },\n    calcRenderMatrix: function TextState_calcRendeMatrix(ctm) {\n      var tsm = [this.fontSize * this.textHScale, 0, 0, this.fontSize, 0, this.textRise];\n      return _util.Util.transform(ctm, _util.Util.transform(this.textMatrix, tsm));\n    },\n    carriageReturn: function TextState_carriageReturn() {\n      this.translateTextLineMatrix(0, -this.leading);\n      this.textMatrix = this.textLineMatrix.slice();\n    },\n    clone: function TextState_clone() {\n      var clone = Object.create(this);\n      clone.textMatrix = this.textMatrix.slice();\n      clone.textLineMatrix = this.textLineMatrix.slice();\n      clone.fontMatrix = this.fontMatrix.slice();\n      return clone;\n    }\n  };\n  return TextState;\n}();\n\nvar EvalState = function EvalStateClosure() {\n  function EvalState() {\n    this.ctm = new Float32Array(_util.IDENTITY_MATRIX);\n    this.font = null;\n    this.textRenderingMode = _util.TextRenderingMode.FILL;\n    this.fillColorSpace = _colorspace.ColorSpace.singletons.gray;\n    this.strokeColorSpace = _colorspace.ColorSpace.singletons.gray;\n  }\n\n  EvalState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    }\n  };\n  return EvalState;\n}();\n\nvar EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {\n  var getOPMap = (0, _util.getLookupTableFactory)(function (t) {\n    t['w'] = {\n      id: _util.OPS.setLineWidth,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['J'] = {\n      id: _util.OPS.setLineCap,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['j'] = {\n      id: _util.OPS.setLineJoin,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['M'] = {\n      id: _util.OPS.setMiterLimit,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['d'] = {\n      id: _util.OPS.setDash,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['ri'] = {\n      id: _util.OPS.setRenderingIntent,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['i'] = {\n      id: _util.OPS.setFlatness,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['gs'] = {\n      id: _util.OPS.setGState,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['q'] = {\n      id: _util.OPS.save,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Q'] = {\n      id: _util.OPS.restore,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['cm'] = {\n      id: _util.OPS.transform,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['m'] = {\n      id: _util.OPS.moveTo,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['l'] = {\n      id: _util.OPS.lineTo,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['c'] = {\n      id: _util.OPS.curveTo,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['v'] = {\n      id: _util.OPS.curveTo2,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['y'] = {\n      id: _util.OPS.curveTo3,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['h'] = {\n      id: _util.OPS.closePath,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['re'] = {\n      id: _util.OPS.rectangle,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['S'] = {\n      id: _util.OPS.stroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['s'] = {\n      id: _util.OPS.closeStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['f'] = {\n      id: _util.OPS.fill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['F'] = {\n      id: _util.OPS.fill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['f*'] = {\n      id: _util.OPS.eoFill,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['B'] = {\n      id: _util.OPS.fillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['B*'] = {\n      id: _util.OPS.eoFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['b'] = {\n      id: _util.OPS.closeFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['b*'] = {\n      id: _util.OPS.closeEOFillStroke,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['n'] = {\n      id: _util.OPS.endPath,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['W'] = {\n      id: _util.OPS.clip,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['W*'] = {\n      id: _util.OPS.eoClip,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BT'] = {\n      id: _util.OPS.beginText,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['ET'] = {\n      id: _util.OPS.endText,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Tc'] = {\n      id: _util.OPS.setCharSpacing,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tw'] = {\n      id: _util.OPS.setWordSpacing,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tz'] = {\n      id: _util.OPS.setHScale,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['TL'] = {\n      id: _util.OPS.setLeading,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Tf'] = {\n      id: _util.OPS.setFont,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['Tr'] = {\n      id: _util.OPS.setTextRenderingMode,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Ts'] = {\n      id: _util.OPS.setTextRise,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Td'] = {\n      id: _util.OPS.moveText,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['TD'] = {\n      id: _util.OPS.setLeadingMoveText,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['Tm'] = {\n      id: _util.OPS.setTextMatrix,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['T*'] = {\n      id: _util.OPS.nextLine,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['Tj'] = {\n      id: _util.OPS.showText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['TJ'] = {\n      id: _util.OPS.showSpacedText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['\\''] = {\n      id: _util.OPS.nextLineShowText,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['\"'] = {\n      id: _util.OPS.nextLineSetSpacingShowText,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['d0'] = {\n      id: _util.OPS.setCharWidth,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['d1'] = {\n      id: _util.OPS.setCharWidthAndBounds,\n      numArgs: 6,\n      variableArgs: false\n    };\n    t['CS'] = {\n      id: _util.OPS.setStrokeColorSpace,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['cs'] = {\n      id: _util.OPS.setFillColorSpace,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['SC'] = {\n      id: _util.OPS.setStrokeColor,\n      numArgs: 4,\n      variableArgs: true\n    };\n    t['SCN'] = {\n      id: _util.OPS.setStrokeColorN,\n      numArgs: 33,\n      variableArgs: true\n    };\n    t['sc'] = {\n      id: _util.OPS.setFillColor,\n      numArgs: 4,\n      variableArgs: true\n    };\n    t['scn'] = {\n      id: _util.OPS.setFillColorN,\n      numArgs: 33,\n      variableArgs: true\n    };\n    t['G'] = {\n      id: _util.OPS.setStrokeGray,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['g'] = {\n      id: _util.OPS.setFillGray,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['RG'] = {\n      id: _util.OPS.setStrokeRGBColor,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['rg'] = {\n      id: _util.OPS.setFillRGBColor,\n      numArgs: 3,\n      variableArgs: false\n    };\n    t['K'] = {\n      id: _util.OPS.setStrokeCMYKColor,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['k'] = {\n      id: _util.OPS.setFillCMYKColor,\n      numArgs: 4,\n      variableArgs: false\n    };\n    t['sh'] = {\n      id: _util.OPS.shadingFill,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['BI'] = {\n      id: _util.OPS.beginInlineImage,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['ID'] = {\n      id: _util.OPS.beginImageData,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['EI'] = {\n      id: _util.OPS.endInlineImage,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['Do'] = {\n      id: _util.OPS.paintXObject,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['MP'] = {\n      id: _util.OPS.markPoint,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['DP'] = {\n      id: _util.OPS.markPointProps,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['BMC'] = {\n      id: _util.OPS.beginMarkedContent,\n      numArgs: 1,\n      variableArgs: false\n    };\n    t['BDC'] = {\n      id: _util.OPS.beginMarkedContentProps,\n      numArgs: 2,\n      variableArgs: false\n    };\n    t['EMC'] = {\n      id: _util.OPS.endMarkedContent,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BX'] = {\n      id: _util.OPS.beginCompat,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['EX'] = {\n      id: _util.OPS.endCompat,\n      numArgs: 0,\n      variableArgs: false\n    };\n    t['BM'] = null;\n    t['BD'] = null;\n    t['true'] = null;\n    t['fa'] = null;\n    t['fal'] = null;\n    t['fals'] = null;\n    t['false'] = null;\n    t['nu'] = null;\n    t['nul'] = null;\n    t['null'] = null;\n  });\n  var MAX_INVALID_PATH_OPS = 20;\n\n  function EvaluatorPreprocessor(stream, xref, stateManager) {\n    this.opMap = getOPMap();\n    this.parser = new _parser.Parser(new _parser.Lexer(stream, this.opMap), false, xref);\n    this.stateManager = stateManager;\n    this.nonProcessedArgs = [];\n    this._numInvalidPathOPS = 0;\n  }\n\n  EvaluatorPreprocessor.prototype = {\n    get savedStatesDepth() {\n      return this.stateManager.stateStack.length;\n    },\n\n    read: function EvaluatorPreprocessor_read(operation) {\n      var args = operation.args;\n\n      while (true) {\n        var obj = this.parser.getObj();\n\n        if ((0, _primitives.isCmd)(obj)) {\n          var cmd = obj.cmd;\n          var opSpec = this.opMap[cmd];\n\n          if (!opSpec) {\n            (0, _util.warn)(\"Unknown command \\\"\".concat(cmd, \"\\\".\"));\n            continue;\n          }\n\n          var fn = opSpec.id;\n          var numArgs = opSpec.numArgs;\n          var argsLength = args !== null ? args.length : 0;\n\n          if (!opSpec.variableArgs) {\n            if (argsLength !== numArgs) {\n              var nonProcessedArgs = this.nonProcessedArgs;\n\n              while (argsLength > numArgs) {\n                nonProcessedArgs.push(args.shift());\n                argsLength--;\n              }\n\n              while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n                if (args === null) {\n                  args = [];\n                }\n\n                args.unshift(nonProcessedArgs.pop());\n                argsLength++;\n              }\n            }\n\n            if (argsLength < numArgs) {\n              var partialMsg = \"command \".concat(cmd, \": expected \").concat(numArgs, \" args, \") + \"but received \".concat(argsLength, \" args.\");\n\n              if (fn >= _util.OPS.moveTo && fn <= _util.OPS.endPath && ++this._numInvalidPathOPS > MAX_INVALID_PATH_OPS) {\n                throw new _util.FormatError(\"Invalid \".concat(partialMsg));\n              }\n\n              (0, _util.warn)(\"Skipping \".concat(partialMsg));\n\n              if (args !== null) {\n                args.length = 0;\n              }\n\n              continue;\n            }\n          } else if (argsLength > numArgs) {\n            (0, _util.info)(\"Command \".concat(cmd, \": expected [0, \").concat(numArgs, \"] args, \") + \"but received \".concat(argsLength, \" args.\"));\n          }\n\n          this.preprocessCommand(fn, args);\n          operation.fn = fn;\n          operation.args = args;\n          return true;\n        }\n\n        if ((0, _primitives.isEOF)(obj)) {\n          return false;\n        }\n\n        if (obj !== null) {\n          if (args === null) {\n            args = [];\n          }\n\n          args.push(obj);\n\n          if (args.length > 33) {\n            throw new _util.FormatError('Too many arguments');\n          }\n        }\n      }\n    },\n    preprocessCommand: function EvaluatorPreprocessor_preprocessCommand(fn, args) {\n      switch (fn | 0) {\n        case _util.OPS.save:\n          this.stateManager.save();\n          break;\n\n        case _util.OPS.restore:\n          this.stateManager.restore();\n          break;\n\n        case _util.OPS.transform:\n          this.stateManager.transform(args);\n          break;\n      }\n    }\n  };\n  return EvaluatorPreprocessor;\n}();\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CMapFactory = exports.IdentityCMap = exports.CMap = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _parser = __w_pdfjs_require__(156);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar BUILT_IN_CMAPS = ['Adobe-GB1-UCS2', 'Adobe-CNS1-UCS2', 'Adobe-Japan1-UCS2', 'Adobe-Korea1-UCS2', '78-EUC-H', '78-EUC-V', '78-H', '78-RKSJ-H', '78-RKSJ-V', '78-V', '78ms-RKSJ-H', '78ms-RKSJ-V', '83pv-RKSJ-H', '90ms-RKSJ-H', '90ms-RKSJ-V', '90msp-RKSJ-H', '90msp-RKSJ-V', '90pv-RKSJ-H', '90pv-RKSJ-V', 'Add-H', 'Add-RKSJ-H', 'Add-RKSJ-V', 'Add-V', 'Adobe-CNS1-0', 'Adobe-CNS1-1', 'Adobe-CNS1-2', 'Adobe-CNS1-3', 'Adobe-CNS1-4', 'Adobe-CNS1-5', 'Adobe-CNS1-6', 'Adobe-GB1-0', 'Adobe-GB1-1', 'Adobe-GB1-2', 'Adobe-GB1-3', 'Adobe-GB1-4', 'Adobe-GB1-5', 'Adobe-Japan1-0', 'Adobe-Japan1-1', 'Adobe-Japan1-2', 'Adobe-Japan1-3', 'Adobe-Japan1-4', 'Adobe-Japan1-5', 'Adobe-Japan1-6', 'Adobe-Korea1-0', 'Adobe-Korea1-1', 'Adobe-Korea1-2', 'B5-H', 'B5-V', 'B5pc-H', 'B5pc-V', 'CNS-EUC-H', 'CNS-EUC-V', 'CNS1-H', 'CNS1-V', 'CNS2-H', 'CNS2-V', 'ETHK-B5-H', 'ETHK-B5-V', 'ETen-B5-H', 'ETen-B5-V', 'ETenms-B5-H', 'ETenms-B5-V', 'EUC-H', 'EUC-V', 'Ext-H', 'Ext-RKSJ-H', 'Ext-RKSJ-V', 'Ext-V', 'GB-EUC-H', 'GB-EUC-V', 'GB-H', 'GB-V', 'GBK-EUC-H', 'GBK-EUC-V', 'GBK2K-H', 'GBK2K-V', 'GBKp-EUC-H', 'GBKp-EUC-V', 'GBT-EUC-H', 'GBT-EUC-V', 'GBT-H', 'GBT-V', 'GBTpc-EUC-H', 'GBTpc-EUC-V', 'GBpc-EUC-H', 'GBpc-EUC-V', 'H', 'HKdla-B5-H', 'HKdla-B5-V', 'HKdlb-B5-H', 'HKdlb-B5-V', 'HKgccs-B5-H', 'HKgccs-B5-V', 'HKm314-B5-H', 'HKm314-B5-V', 'HKm471-B5-H', 'HKm471-B5-V', 'HKscs-B5-H', 'HKscs-B5-V', 'Hankaku', 'Hiragana', 'KSC-EUC-H', 'KSC-EUC-V', 'KSC-H', 'KSC-Johab-H', 'KSC-Johab-V', 'KSC-V', 'KSCms-UHC-H', 'KSCms-UHC-HW-H', 'KSCms-UHC-HW-V', 'KSCms-UHC-V', 'KSCpc-EUC-H', 'KSCpc-EUC-V', 'Katakana', 'NWP-H', 'NWP-V', 'RKSJ-H', 'RKSJ-V', 'Roman', 'UniCNS-UCS2-H', 'UniCNS-UCS2-V', 'UniCNS-UTF16-H', 'UniCNS-UTF16-V', 'UniCNS-UTF32-H', 'UniCNS-UTF32-V', 'UniCNS-UTF8-H', 'UniCNS-UTF8-V', 'UniGB-UCS2-H', 'UniGB-UCS2-V', 'UniGB-UTF16-H', 'UniGB-UTF16-V', 'UniGB-UTF32-H', 'UniGB-UTF32-V', 'UniGB-UTF8-H', 'UniGB-UTF8-V', 'UniJIS-UCS2-H', 'UniJIS-UCS2-HW-H', 'UniJIS-UCS2-HW-V', 'UniJIS-UCS2-V', 'UniJIS-UTF16-H', 'UniJIS-UTF16-V', 'UniJIS-UTF32-H', 'UniJIS-UTF32-V', 'UniJIS-UTF8-H', 'UniJIS-UTF8-V', 'UniJIS2004-UTF16-H', 'UniJIS2004-UTF16-V', 'UniJIS2004-UTF32-H', 'UniJIS2004-UTF32-V', 'UniJIS2004-UTF8-H', 'UniJIS2004-UTF8-V', 'UniJISPro-UCS2-HW-V', 'UniJISPro-UCS2-V', 'UniJISPro-UTF8-V', 'UniJISX0213-UTF32-H', 'UniJISX0213-UTF32-V', 'UniJISX02132004-UTF32-H', 'UniJISX02132004-UTF32-V', 'UniKS-UCS2-H', 'UniKS-UCS2-V', 'UniKS-UTF16-H', 'UniKS-UTF16-V', 'UniKS-UTF32-H', 'UniKS-UTF32-V', 'UniKS-UTF8-H', 'UniKS-UTF8-V', 'V', 'WP-Symbol'];\n\nvar CMap =\n/*#__PURE__*/\nfunction () {\n  function CMap() {\n    var builtInCMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n    _classCallCheck(this, CMap);\n\n    this.codespaceRanges = [[], [], [], []];\n    this.numCodespaceRanges = 0;\n    this._map = [];\n    this.name = '';\n    this.vertical = false;\n    this.useCMap = null;\n    this.builtInCMap = builtInCMap;\n  }\n\n  _createClass(CMap, [{\n    key: \"addCodespaceRange\",\n    value: function addCodespaceRange(n, low, high) {\n      this.codespaceRanges[n - 1].push(low, high);\n      this.numCodespaceRanges++;\n    }\n  }, {\n    key: \"mapCidRange\",\n    value: function mapCidRange(low, high, dstLow) {\n      while (low <= high) {\n        this._map[low++] = dstLow++;\n      }\n    }\n  }, {\n    key: \"mapBfRange\",\n    value: function mapBfRange(low, high, dstLow) {\n      var lastByte = dstLow.length - 1;\n\n      while (low <= high) {\n        this._map[low++] = dstLow;\n        dstLow = dstLow.substring(0, lastByte) + String.fromCharCode(dstLow.charCodeAt(lastByte) + 1);\n      }\n    }\n  }, {\n    key: \"mapBfRangeToArray\",\n    value: function mapBfRangeToArray(low, high, array) {\n      var i = 0,\n          ii = array.length;\n\n      while (low <= high && i < ii) {\n        this._map[low] = array[i++];\n        ++low;\n      }\n    }\n  }, {\n    key: \"mapOne\",\n    value: function mapOne(src, dst) {\n      this._map[src] = dst;\n    }\n  }, {\n    key: \"lookup\",\n    value: function lookup(code) {\n      return this._map[code];\n    }\n  }, {\n    key: \"contains\",\n    value: function contains(code) {\n      return this._map[code] !== undefined;\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      var map = this._map;\n      var length = map.length;\n\n      if (length <= 0x10000) {\n        for (var i = 0; i < length; i++) {\n          if (map[i] !== undefined) {\n            callback(i, map[i]);\n          }\n        }\n      } else {\n        for (var _i in map) {\n          callback(_i, map[_i]);\n        }\n      }\n    }\n  }, {\n    key: \"charCodeOf\",\n    value: function charCodeOf(value) {\n      var map = this._map;\n\n      if (map.length <= 0x10000) {\n        return map.indexOf(value);\n      }\n\n      for (var charCode in map) {\n        if (map[charCode] === value) {\n          return charCode | 0;\n        }\n      }\n\n      return -1;\n    }\n  }, {\n    key: \"getMap\",\n    value: function getMap() {\n      return this._map;\n    }\n  }, {\n    key: \"readCharCode\",\n    value: function readCharCode(str, offset, out) {\n      var c = 0;\n      var codespaceRanges = this.codespaceRanges;\n\n      for (var n = 0, nn = codespaceRanges.length; n < nn; n++) {\n        c = (c << 8 | str.charCodeAt(offset + n)) >>> 0;\n        var codespaceRange = codespaceRanges[n];\n\n        for (var k = 0, kk = codespaceRange.length; k < kk;) {\n          var low = codespaceRange[k++];\n          var high = codespaceRange[k++];\n\n          if (c >= low && c <= high) {\n            out.charcode = c;\n            out.length = n + 1;\n            return;\n          }\n        }\n      }\n\n      out.charcode = 0;\n      out.length = 1;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._map.length;\n    }\n  }, {\n    key: \"isIdentityCMap\",\n    get: function get() {\n      if (!(this.name === 'Identity-H' || this.name === 'Identity-V')) {\n        return false;\n      }\n\n      if (this._map.length !== 0x10000) {\n        return false;\n      }\n\n      for (var i = 0; i < 0x10000; i++) {\n        if (this._map[i] !== i) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n  }]);\n\n  return CMap;\n}();\n\nexports.CMap = CMap;\n\nvar IdentityCMap =\n/*#__PURE__*/\nfunction (_CMap) {\n  _inherits(IdentityCMap, _CMap);\n\n  function IdentityCMap(vertical, n) {\n    var _this;\n\n    _classCallCheck(this, IdentityCMap);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(IdentityCMap).call(this));\n    _this.vertical = vertical;\n\n    _this.addCodespaceRange(n, 0, 0xffff);\n\n    return _this;\n  }\n\n  _createClass(IdentityCMap, [{\n    key: \"mapCidRange\",\n    value: function mapCidRange(low, high, dstLow) {\n      (0, _util.unreachable)('should not call mapCidRange');\n    }\n  }, {\n    key: \"mapBfRange\",\n    value: function mapBfRange(low, high, dstLow) {\n      (0, _util.unreachable)('should not call mapBfRange');\n    }\n  }, {\n    key: \"mapBfRangeToArray\",\n    value: function mapBfRangeToArray(low, high, array) {\n      (0, _util.unreachable)('should not call mapBfRangeToArray');\n    }\n  }, {\n    key: \"mapOne\",\n    value: function mapOne(src, dst) {\n      (0, _util.unreachable)('should not call mapCidOne');\n    }\n  }, {\n    key: \"lookup\",\n    value: function lookup(code) {\n      return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n    }\n  }, {\n    key: \"contains\",\n    value: function contains(code) {\n      return Number.isInteger(code) && code <= 0xffff;\n    }\n  }, {\n    key: \"forEach\",\n    value: function forEach(callback) {\n      for (var i = 0; i <= 0xffff; i++) {\n        callback(i, i);\n      }\n    }\n  }, {\n    key: \"charCodeOf\",\n    value: function charCodeOf(value) {\n      return Number.isInteger(value) && value <= 0xffff ? value : -1;\n    }\n  }, {\n    key: \"getMap\",\n    value: function getMap() {\n      var map = new Array(0x10000);\n\n      for (var i = 0; i <= 0xffff; i++) {\n        map[i] = i;\n      }\n\n      return map;\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return 0x10000;\n    }\n  }, {\n    key: \"isIdentityCMap\",\n    get: function get() {\n      (0, _util.unreachable)('should not access .isIdentityCMap');\n    }\n  }]);\n\n  return IdentityCMap;\n}(CMap);\n\nexports.IdentityCMap = IdentityCMap;\n\nvar BinaryCMapReader = function BinaryCMapReaderClosure() {\n  function hexToInt(a, size) {\n    var n = 0;\n\n    for (var i = 0; i <= size; i++) {\n      n = n << 8 | a[i];\n    }\n\n    return n >>> 0;\n  }\n\n  function hexToStr(a, size) {\n    if (size === 1) {\n      return String.fromCharCode(a[0], a[1]);\n    }\n\n    if (size === 3) {\n      return String.fromCharCode(a[0], a[1], a[2], a[3]);\n    }\n\n    return String.fromCharCode.apply(null, a.subarray(0, size + 1));\n  }\n\n  function addHex(a, b, size) {\n    var c = 0;\n\n    for (var i = size; i >= 0; i--) {\n      c += a[i] + b[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  function incHex(a, size) {\n    var c = 1;\n\n    for (var i = size; i >= 0 && c > 0; i--) {\n      c += a[i];\n      a[i] = c & 255;\n      c >>= 8;\n    }\n  }\n\n  var MAX_NUM_SIZE = 16;\n  var MAX_ENCODED_NUM_SIZE = 19;\n\n  function BinaryCMapStream(data) {\n    this.buffer = data;\n    this.pos = 0;\n    this.end = data.length;\n    this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n  }\n\n  BinaryCMapStream.prototype = {\n    readByte: function readByte() {\n      if (this.pos >= this.end) {\n        return -1;\n      }\n\n      return this.buffer[this.pos++];\n    },\n    readNumber: function readNumber() {\n      var n = 0;\n      var last;\n\n      do {\n        var b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError('unexpected EOF in bcmap');\n        }\n\n        last = !(b & 0x80);\n        n = n << 7 | b & 0x7F;\n      } while (!last);\n\n      return n;\n    },\n    readSigned: function readSigned() {\n      var n = this.readNumber();\n      return n & 1 ? ~(n >>> 1) : n >>> 1;\n    },\n    readHex: function readHex(num, size) {\n      num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n      this.pos += size + 1;\n    },\n    readHexNumber: function readHexNumber(num, size) {\n      var last;\n      var stack = this.tmpBuf,\n          sp = 0;\n\n      do {\n        var b = this.readByte();\n\n        if (b < 0) {\n          throw new _util.FormatError('unexpected EOF in bcmap');\n        }\n\n        last = !(b & 0x80);\n        stack[sp++] = b & 0x7F;\n      } while (!last);\n\n      var i = size,\n          buffer = 0,\n          bufferSize = 0;\n\n      while (i >= 0) {\n        while (bufferSize < 8 && stack.length > 0) {\n          buffer = stack[--sp] << bufferSize | buffer;\n          bufferSize += 7;\n        }\n\n        num[i] = buffer & 255;\n        i--;\n        buffer >>= 8;\n        bufferSize -= 8;\n      }\n    },\n    readHexSigned: function readHexSigned(num, size) {\n      this.readHexNumber(num, size);\n      var sign = num[size] & 1 ? 255 : 0;\n      var c = 0;\n\n      for (var i = 0; i <= size; i++) {\n        c = (c & 1) << 8 | num[i];\n        num[i] = c >> 1 ^ sign;\n      }\n    },\n    readString: function readString() {\n      var len = this.readNumber();\n      var s = '';\n\n      for (var i = 0; i < len; i++) {\n        s += String.fromCharCode(this.readNumber());\n      }\n\n      return s;\n    }\n  };\n\n  function processBinaryCMap(data, cMap, extend) {\n    return new Promise(function (resolve, reject) {\n      var stream = new BinaryCMapStream(data);\n      var header = stream.readByte();\n      cMap.vertical = !!(header & 1);\n      var useCMap = null;\n      var start = new Uint8Array(MAX_NUM_SIZE);\n      var end = new Uint8Array(MAX_NUM_SIZE);\n      var char = new Uint8Array(MAX_NUM_SIZE);\n      var charCode = new Uint8Array(MAX_NUM_SIZE);\n      var tmp = new Uint8Array(MAX_NUM_SIZE);\n      var code;\n      var b;\n\n      while ((b = stream.readByte()) >= 0) {\n        var type = b >> 5;\n\n        if (type === 7) {\n          switch (b & 0x1F) {\n            case 0:\n              stream.readString();\n              break;\n\n            case 1:\n              useCMap = stream.readString();\n              break;\n          }\n\n          continue;\n        }\n\n        var sequence = !!(b & 0x10);\n        var dataSize = b & 15;\n\n        if (dataSize + 1 > MAX_NUM_SIZE) {\n          throw new Error('processBinaryCMap: Invalid dataSize.');\n        }\n\n        var ucs2DataSize = 1;\n        var subitemsCount = stream.readNumber();\n        var i;\n\n        switch (type) {\n          case 0:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              cMap.addCodespaceRange(dataSize + 1, hexToInt(start, dataSize), hexToInt(end, dataSize));\n            }\n\n            break;\n\n          case 1:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            stream.readNumber();\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n              stream.readHexNumber(start, dataSize);\n              addHex(start, end, dataSize);\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              stream.readNumber();\n            }\n\n            break;\n\n          case 2:\n            stream.readHex(char, dataSize);\n            code = stream.readNumber();\n            cMap.mapOne(hexToInt(char, dataSize), code);\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, dataSize);\n                addHex(char, tmp, dataSize);\n              }\n\n              code = stream.readSigned() + (code + 1);\n              cMap.mapOne(hexToInt(char, dataSize), code);\n            }\n\n            break;\n\n          case 3:\n            stream.readHex(start, dataSize);\n            stream.readHexNumber(end, dataSize);\n            addHex(end, start, dataSize);\n            code = stream.readNumber();\n            cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, dataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, dataSize);\n                addHex(start, end, dataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, dataSize);\n              addHex(end, start, dataSize);\n              code = stream.readNumber();\n              cMap.mapCidRange(hexToInt(start, dataSize), hexToInt(end, dataSize), code);\n            }\n\n            break;\n\n          case 4:\n            stream.readHex(char, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(char, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(tmp, ucs2DataSize);\n                addHex(char, tmp, ucs2DataSize);\n              }\n\n              incHex(charCode, dataSize);\n              stream.readHexSigned(tmp, dataSize);\n              addHex(charCode, tmp, dataSize);\n              cMap.mapOne(hexToInt(char, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          case 5:\n            stream.readHex(start, ucs2DataSize);\n            stream.readHexNumber(end, ucs2DataSize);\n            addHex(end, start, ucs2DataSize);\n            stream.readHex(charCode, dataSize);\n            cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n\n            for (i = 1; i < subitemsCount; i++) {\n              incHex(end, ucs2DataSize);\n\n              if (!sequence) {\n                stream.readHexNumber(start, ucs2DataSize);\n                addHex(start, end, ucs2DataSize);\n              } else {\n                start.set(end);\n              }\n\n              stream.readHexNumber(end, ucs2DataSize);\n              addHex(end, start, ucs2DataSize);\n              stream.readHex(charCode, dataSize);\n              cMap.mapBfRange(hexToInt(start, ucs2DataSize), hexToInt(end, ucs2DataSize), hexToStr(charCode, dataSize));\n            }\n\n            break;\n\n          default:\n            reject(new Error('processBinaryCMap: Unknown type: ' + type));\n            return;\n        }\n      }\n\n      if (useCMap) {\n        resolve(extend(useCMap));\n        return;\n      }\n\n      resolve(cMap);\n    });\n  }\n\n  function BinaryCMapReader() {}\n\n  BinaryCMapReader.prototype = {\n    process: processBinaryCMap\n  };\n  return BinaryCMapReader;\n}();\n\nvar CMapFactory = function CMapFactoryClosure() {\n  function strToInt(str) {\n    var a = 0;\n\n    for (var i = 0; i < str.length; i++) {\n      a = a << 8 | str.charCodeAt(i);\n    }\n\n    return a >>> 0;\n  }\n\n  function expectString(obj) {\n    if (!(0, _util.isString)(obj)) {\n      throw new _util.FormatError('Malformed CMap: expected string.');\n    }\n  }\n\n  function expectInt(obj) {\n    if (!Number.isInteger(obj)) {\n      throw new _util.FormatError('Malformed CMap: expected int.');\n    }\n  }\n\n  function parseBfChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endbfchar')) {\n        return;\n      }\n\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseBfRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endbfrange')) {\n        return;\n      }\n\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (Number.isInteger(obj) || (0, _util.isString)(obj)) {\n        var dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n        cMap.mapBfRange(low, high, dstLow);\n      } else if ((0, _primitives.isCmd)(obj, '[')) {\n        obj = lexer.getObj();\n        var array = [];\n\n        while (!(0, _primitives.isCmd)(obj, ']') && !(0, _primitives.isEOF)(obj)) {\n          array.push(obj);\n          obj = lexer.getObj();\n        }\n\n        cMap.mapBfRangeToArray(low, high, array);\n      } else {\n        break;\n      }\n    }\n\n    throw new _util.FormatError('Invalid bf range.');\n  }\n\n  function parseCidChar(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcidchar')) {\n        return;\n      }\n\n      expectString(obj);\n      var src = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dst = obj;\n      cMap.mapOne(src, dst);\n    }\n  }\n\n  function parseCidRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcidrange')) {\n        return;\n      }\n\n      expectString(obj);\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n      expectString(obj);\n      var high = strToInt(obj);\n      obj = lexer.getObj();\n      expectInt(obj);\n      var dstLow = obj;\n      cMap.mapCidRange(low, high, dstLow);\n    }\n  }\n\n  function parseCodespaceRange(cMap, lexer) {\n    while (true) {\n      var obj = lexer.getObj();\n\n      if ((0, _primitives.isEOF)(obj)) {\n        break;\n      }\n\n      if ((0, _primitives.isCmd)(obj, 'endcodespacerange')) {\n        return;\n      }\n\n      if (!(0, _util.isString)(obj)) {\n        break;\n      }\n\n      var low = strToInt(obj);\n      obj = lexer.getObj();\n\n      if (!(0, _util.isString)(obj)) {\n        break;\n      }\n\n      var high = strToInt(obj);\n      cMap.addCodespaceRange(obj.length, low, high);\n    }\n\n    throw new _util.FormatError('Invalid codespace range.');\n  }\n\n  function parseWMode(cMap, lexer) {\n    var obj = lexer.getObj();\n\n    if (Number.isInteger(obj)) {\n      cMap.vertical = !!obj;\n    }\n  }\n\n  function parseCMapName(cMap, lexer) {\n    var obj = lexer.getObj();\n\n    if ((0, _primitives.isName)(obj) && (0, _util.isString)(obj.name)) {\n      cMap.name = obj.name;\n    }\n  }\n\n  function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n    var previous;\n    var embeddedUseCMap;\n\n    objLoop: while (true) {\n      try {\n        var obj = lexer.getObj();\n\n        if ((0, _primitives.isEOF)(obj)) {\n          break;\n        } else if ((0, _primitives.isName)(obj)) {\n          if (obj.name === 'WMode') {\n            parseWMode(cMap, lexer);\n          } else if (obj.name === 'CMapName') {\n            parseCMapName(cMap, lexer);\n          }\n\n          previous = obj;\n        } else if ((0, _primitives.isCmd)(obj)) {\n          switch (obj.cmd) {\n            case 'endcmap':\n              break objLoop;\n\n            case 'usecmap':\n              if ((0, _primitives.isName)(previous)) {\n                embeddedUseCMap = previous.name;\n              }\n\n              break;\n\n            case 'begincodespacerange':\n              parseCodespaceRange(cMap, lexer);\n              break;\n\n            case 'beginbfchar':\n              parseBfChar(cMap, lexer);\n              break;\n\n            case 'begincidchar':\n              parseCidChar(cMap, lexer);\n              break;\n\n            case 'beginbfrange':\n              parseBfRange(cMap, lexer);\n              break;\n\n            case 'begincidrange':\n              parseCidRange(cMap, lexer);\n              break;\n          }\n        }\n      } catch (ex) {\n        if (ex instanceof _util.MissingDataException) {\n          throw ex;\n        }\n\n        (0, _util.warn)('Invalid cMap data: ' + ex);\n        continue;\n      }\n    }\n\n    if (!useCMap && embeddedUseCMap) {\n      useCMap = embeddedUseCMap;\n    }\n\n    if (useCMap) {\n      return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n    }\n\n    return Promise.resolve(cMap);\n  }\n\n  function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n    return createBuiltInCMap(useCMap, fetchBuiltInCMap).then(function (newCMap) {\n      cMap.useCMap = newCMap;\n\n      if (cMap.numCodespaceRanges === 0) {\n        var useCodespaceRanges = cMap.useCMap.codespaceRanges;\n\n        for (var i = 0; i < useCodespaceRanges.length; i++) {\n          cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n        }\n\n        cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n      }\n\n      cMap.useCMap.forEach(function (key, value) {\n        if (!cMap.contains(key)) {\n          cMap.mapOne(key, cMap.useCMap.lookup(key));\n        }\n      });\n      return cMap;\n    });\n  }\n\n  function createBuiltInCMap(name, fetchBuiltInCMap) {\n    if (name === 'Identity-H') {\n      return Promise.resolve(new IdentityCMap(false, 2));\n    } else if (name === 'Identity-V') {\n      return Promise.resolve(new IdentityCMap(true, 2));\n    }\n\n    if (!BUILT_IN_CMAPS.includes(name)) {\n      return Promise.reject(new Error('Unknown CMap name: ' + name));\n    }\n\n    if (!fetchBuiltInCMap) {\n      return Promise.reject(new Error('Built-in CMap parameters are not provided.'));\n    }\n\n    return fetchBuiltInCMap(name).then(function (data) {\n      var cMapData = data.cMapData,\n          compressionType = data.compressionType;\n      var cMap = new CMap(true);\n\n      if (compressionType === _util.CMapCompressionType.BINARY) {\n        return new BinaryCMapReader().process(cMapData, cMap, function (useCMap) {\n          return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n        });\n      }\n\n      if (compressionType === _util.CMapCompressionType.NONE) {\n        var lexer = new _parser.Lexer(new _stream.Stream(cMapData));\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n      }\n\n      return Promise.reject(new Error('TODO: Only BINARY/NONE CMap compression is currently supported.'));\n    });\n  }\n\n  return {\n    create: function create(params) {\n      var encoding = params.encoding;\n      var fetchBuiltInCMap = params.fetchBuiltInCMap;\n      var useCMap = params.useCMap;\n\n      if ((0, _primitives.isName)(encoding)) {\n        return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n      } else if ((0, _primitives.isStream)(encoding)) {\n        var cMap = new CMap();\n        var lexer = new _parser.Lexer(encoding);\n        return parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap).then(function (parsedCMap) {\n          if (parsedCMap.isIdentityCMap) {\n            return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n          }\n\n          return parsedCMap;\n        });\n      }\n\n      return Promise.reject(new Error('Encoding required.'));\n    }\n  };\n}();\n\nexports.CMapFactory = CMapFactory;\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getFontType = getFontType;\nexports.IdentityToUnicodeMap = exports.ToUnicodeMap = exports.FontFlags = exports.Font = exports.ErrorFont = exports.SEAC_ANALYSIS_ENABLED = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cff_parser = __w_pdfjs_require__(174);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _standard_fonts = __w_pdfjs_require__(178);\n\nvar _unicode = __w_pdfjs_require__(179);\n\nvar _font_renderer = __w_pdfjs_require__(180);\n\nvar _cmap = __w_pdfjs_require__(172);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _type1_parser = __w_pdfjs_require__(181);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar PRIVATE_USE_AREAS = [[0xE000, 0xF8FF], [0x100000, 0x10FFFD]];\nvar PDF_GLYPH_SPACE_UNITS = 1000;\nvar SEAC_ANALYSIS_ENABLED = true;\nexports.SEAC_ANALYSIS_ENABLED = SEAC_ANALYSIS_ENABLED;\nvar FontFlags = {\n  FixedPitch: 1,\n  Serif: 2,\n  Symbolic: 4,\n  Script: 8,\n  Nonsymbolic: 32,\n  Italic: 64,\n  AllCap: 65536,\n  SmallCap: 131072,\n  ForceBold: 262144\n};\nexports.FontFlags = FontFlags;\nvar MacStandardGlyphOrdering = ['.notdef', '.null', 'nonmarkingreturn', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'nonbreakingspace', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Zcaron', 'zcaron', 'brokenbar', 'Eth', 'eth', 'Yacute', 'yacute', 'Thorn', 'thorn', 'minus', 'multiply', 'onesuperior', 'twosuperior', 'threesuperior', 'onehalf', 'onequarter', 'threequarters', 'franc', 'Gbreve', 'gbreve', 'Idotaccent', 'Scedilla', 'scedilla', 'Cacute', 'cacute', 'Ccaron', 'ccaron', 'dcroat'];\n\nfunction adjustWidths(properties) {\n  if (!properties.fontMatrix) {\n    return;\n  }\n\n  if (properties.fontMatrix[0] === _util.FONT_IDENTITY_MATRIX[0]) {\n    return;\n  }\n\n  var scale = 0.001 / properties.fontMatrix[0];\n  var glyphsWidths = properties.widths;\n\n  for (var glyph in glyphsWidths) {\n    glyphsWidths[glyph] *= scale;\n  }\n\n  properties.defaultWidth *= scale;\n}\n\nfunction adjustToUnicode(properties, builtInEncoding) {\n  if (properties.hasIncludedToUnicodeMap) {\n    return;\n  }\n\n  if (properties.hasEncoding) {\n    return;\n  }\n\n  if (builtInEncoding === properties.defaultEncoding) {\n    return;\n  }\n\n  if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n    return;\n  }\n\n  var toUnicode = [],\n      glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n  for (var charCode in builtInEncoding) {\n    var glyphName = builtInEncoding[charCode];\n    var unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n    if (unicode !== -1) {\n      toUnicode[charCode] = String.fromCharCode(unicode);\n    }\n  }\n\n  properties.toUnicode.amend(toUnicode);\n}\n\nfunction getFontType(type, subtype) {\n  switch (type) {\n    case 'Type1':\n      return subtype === 'Type1C' ? _util.FontType.TYPE1C : _util.FontType.TYPE1;\n\n    case 'CIDFontType0':\n      return subtype === 'CIDFontType0C' ? _util.FontType.CIDFONTTYPE0C : _util.FontType.CIDFONTTYPE0;\n\n    case 'OpenType':\n      return _util.FontType.OPENTYPE;\n\n    case 'TrueType':\n      return _util.FontType.TRUETYPE;\n\n    case 'CIDFontType2':\n      return _util.FontType.CIDFONTTYPE2;\n\n    case 'MMType1':\n      return _util.FontType.MMTYPE1;\n\n    case 'Type0':\n      return _util.FontType.TYPE0;\n\n    default:\n      return _util.FontType.UNKNOWN;\n  }\n}\n\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n  if (glyphsUnicodeMap[name] !== undefined) {\n    return name;\n  }\n\n  var unicode = (0, _unicode.getUnicodeForGlyph)(name, glyphsUnicodeMap);\n\n  if (unicode !== -1) {\n    for (var key in glyphsUnicodeMap) {\n      if (glyphsUnicodeMap[key] === unicode) {\n        return key;\n      }\n    }\n  }\n\n  (0, _util.info)('Unable to recover a standard glyph name for: ' + name);\n  return name;\n}\n\nvar Glyph = function GlyphClosure() {\n  function Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    this.fontChar = fontChar;\n    this.unicode = unicode;\n    this.accent = accent;\n    this.width = width;\n    this.vmetric = vmetric;\n    this.operatorListId = operatorListId;\n    this.isSpace = isSpace;\n    this.isInFont = isInFont;\n  }\n\n  Glyph.prototype.matchesForCache = function (fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont) {\n    return this.fontChar === fontChar && this.unicode === unicode && this.accent === accent && this.width === width && this.vmetric === vmetric && this.operatorListId === operatorListId && this.isSpace === isSpace && this.isInFont === isInFont;\n  };\n\n  return Glyph;\n}();\n\nvar ToUnicodeMap = function ToUnicodeMapClosure() {\n  function ToUnicodeMap() {\n    var cmap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    this._map = cmap;\n  }\n\n  ToUnicodeMap.prototype = {\n    get length() {\n      return this._map.length;\n    },\n\n    forEach: function forEach(callback) {\n      for (var charCode in this._map) {\n        callback(charCode, this._map[charCode].charCodeAt(0));\n      }\n    },\n    has: function has(i) {\n      return this._map[i] !== undefined;\n    },\n    get: function get(i) {\n      return this._map[i];\n    },\n    charCodeOf: function charCodeOf(value) {\n      var map = this._map;\n\n      if (map.length <= 0x10000) {\n        return map.indexOf(value);\n      }\n\n      for (var charCode in map) {\n        if (map[charCode] === value) {\n          return charCode | 0;\n        }\n      }\n\n      return -1;\n    },\n    amend: function amend(map) {\n      for (var charCode in map) {\n        this._map[charCode] = map[charCode];\n      }\n    }\n  };\n  return ToUnicodeMap;\n}();\n\nexports.ToUnicodeMap = ToUnicodeMap;\n\nvar IdentityToUnicodeMap = function IdentityToUnicodeMapClosure() {\n  function IdentityToUnicodeMap(firstChar, lastChar) {\n    this.firstChar = firstChar;\n    this.lastChar = lastChar;\n  }\n\n  IdentityToUnicodeMap.prototype = {\n    get length() {\n      return this.lastChar + 1 - this.firstChar;\n    },\n\n    forEach: function forEach(callback) {\n      for (var i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n        callback(i, i);\n      }\n    },\n    has: function has(i) {\n      return this.firstChar <= i && i <= this.lastChar;\n    },\n    get: function get(i) {\n      if (this.firstChar <= i && i <= this.lastChar) {\n        return String.fromCharCode(i);\n      }\n\n      return undefined;\n    },\n    charCodeOf: function charCodeOf(v) {\n      return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar ? v : -1;\n    },\n    amend: function amend(map) {\n      (0, _util.unreachable)('Should not call amend()');\n    }\n  };\n  return IdentityToUnicodeMap;\n}();\n\nexports.IdentityToUnicodeMap = IdentityToUnicodeMap;\n\nvar OpenTypeFileBuilder = function OpenTypeFileBuilderClosure() {\n  function writeInt16(dest, offset, num) {\n    dest[offset] = num >> 8 & 0xFF;\n    dest[offset + 1] = num & 0xFF;\n  }\n\n  function writeInt32(dest, offset, num) {\n    dest[offset] = num >> 24 & 0xFF;\n    dest[offset + 1] = num >> 16 & 0xFF;\n    dest[offset + 2] = num >> 8 & 0xFF;\n    dest[offset + 3] = num & 0xFF;\n  }\n\n  function writeData(dest, offset, data) {\n    var i, ii;\n\n    if (data instanceof Uint8Array) {\n      dest.set(data, offset);\n    } else if (typeof data === 'string') {\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data.charCodeAt(i) & 0xFF;\n      }\n    } else {\n      for (i = 0, ii = data.length; i < ii; i++) {\n        dest[offset++] = data[i] & 0xFF;\n      }\n    }\n  }\n\n  function OpenTypeFileBuilder(sfnt) {\n    this.sfnt = sfnt;\n    this.tables = Object.create(null);\n  }\n\n  OpenTypeFileBuilder.getSearchParams = function OpenTypeFileBuilder_getSearchParams(entriesCount, entrySize) {\n    var maxPower2 = 1,\n        log2 = 0;\n\n    while ((maxPower2 ^ entriesCount) > maxPower2) {\n      maxPower2 <<= 1;\n      log2++;\n    }\n\n    var searchRange = maxPower2 * entrySize;\n    return {\n      range: searchRange,\n      entry: log2,\n      rangeShift: entrySize * entriesCount - searchRange\n    };\n  };\n\n  var OTF_HEADER_SIZE = 12;\n  var OTF_TABLE_ENTRY_SIZE = 16;\n  OpenTypeFileBuilder.prototype = {\n    toArray: function OpenTypeFileBuilder_toArray() {\n      var sfnt = this.sfnt;\n      var tables = this.tables;\n      var tablesNames = Object.keys(tables);\n      tablesNames.sort();\n      var numTables = tablesNames.length;\n      var i, j, jj, table, tableName;\n      var offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n      var tableOffsets = [offset];\n\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        var paddedLength = (table.length + 3 & ~3) >>> 0;\n        offset += paddedLength;\n        tableOffsets.push(offset);\n      }\n\n      var file = new Uint8Array(offset);\n\n      for (i = 0; i < numTables; i++) {\n        table = tables[tablesNames[i]];\n        writeData(file, tableOffsets[i], table);\n      }\n\n      if (sfnt === 'true') {\n        sfnt = (0, _util.string32)(0x00010000);\n      }\n\n      file[0] = sfnt.charCodeAt(0) & 0xFF;\n      file[1] = sfnt.charCodeAt(1) & 0xFF;\n      file[2] = sfnt.charCodeAt(2) & 0xFF;\n      file[3] = sfnt.charCodeAt(3) & 0xFF;\n      writeInt16(file, 4, numTables);\n      var searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n      writeInt16(file, 6, searchParams.range);\n      writeInt16(file, 8, searchParams.entry);\n      writeInt16(file, 10, searchParams.rangeShift);\n      offset = OTF_HEADER_SIZE;\n\n      for (i = 0; i < numTables; i++) {\n        tableName = tablesNames[i];\n        file[offset] = tableName.charCodeAt(0) & 0xFF;\n        file[offset + 1] = tableName.charCodeAt(1) & 0xFF;\n        file[offset + 2] = tableName.charCodeAt(2) & 0xFF;\n        file[offset + 3] = tableName.charCodeAt(3) & 0xFF;\n        var checksum = 0;\n\n        for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n          var quad = (0, _util.readUint32)(file, j);\n          checksum = checksum + quad >>> 0;\n        }\n\n        writeInt32(file, offset + 4, checksum);\n        writeInt32(file, offset + 8, tableOffsets[i]);\n        writeInt32(file, offset + 12, tables[tableName].length);\n        offset += OTF_TABLE_ENTRY_SIZE;\n      }\n\n      return file;\n    },\n    addTable: function OpenTypeFileBuilder_addTable(tag, data) {\n      if (tag in this.tables) {\n        throw new Error('Table ' + tag + ' already exists');\n      }\n\n      this.tables[tag] = data;\n    }\n  };\n  return OpenTypeFileBuilder;\n}();\n\nvar Font = function FontClosure() {\n  function Font(name, file, properties) {\n    var charCode;\n    this.name = name;\n    this.loadedName = properties.loadedName;\n    this.isType3Font = properties.isType3Font;\n    this.sizes = [];\n    this.missingFile = false;\n    this.glyphCache = Object.create(null);\n    this.isSerifFont = !!(properties.flags & FontFlags.Serif);\n    this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n    this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n    var type = properties.type;\n    var subtype = properties.subtype;\n    this.type = type;\n    this.subtype = subtype;\n    this.fallbackName = this.isMonospace ? 'monospace' : this.isSerifFont ? 'serif' : 'sans-serif';\n    this.differences = properties.differences;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.composite = properties.composite;\n    this.wideChars = properties.wideChars;\n    this.cMap = properties.cMap;\n    this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n    this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n    this.fontMatrix = properties.fontMatrix;\n    this.bbox = properties.bbox;\n    this.defaultEncoding = properties.defaultEncoding;\n    this.toUnicode = properties.toUnicode;\n    this.fallbackToUnicode = properties.fallbackToUnicode || new ToUnicodeMap();\n    this.toFontChar = [];\n\n    if (properties.type === 'Type3') {\n      for (charCode = 0; charCode < 256; charCode++) {\n        this.toFontChar[charCode] = this.differences[charCode] || properties.defaultEncoding[charCode];\n      }\n\n      this.fontType = _util.FontType.TYPE3;\n      return;\n    }\n\n    this.cidEncoding = properties.cidEncoding;\n    this.vertical = properties.vertical;\n\n    if (this.vertical) {\n      this.vmetrics = properties.vmetrics;\n      this.defaultVMetrics = properties.defaultVMetrics;\n    }\n\n    if (!file || file.isEmpty) {\n      if (file) {\n        (0, _util.warn)('Font file is empty in \"' + name + '\" (' + this.loadedName + ')');\n      }\n\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    var _getFontFileType = getFontFileType(file, properties);\n\n    var _getFontFileType2 = _slicedToArray(_getFontFileType, 2);\n\n    type = _getFontFileType2[0];\n    subtype = _getFontFileType2[1];\n\n    if (type !== this.type || subtype !== this.subtype) {\n      (0, _util.info)('Inconsistent font file Type/SubType, expected: ' + \"\".concat(this.type, \"/\").concat(this.subtype, \" but found: \").concat(type, \"/\").concat(subtype, \".\"));\n    }\n\n    try {\n      var data;\n\n      switch (type) {\n        case 'MMType1':\n          (0, _util.info)('MMType1 font (' + name + '), falling back to Type1.');\n\n        case 'Type1':\n        case 'CIDFontType0':\n          this.mimetype = 'font/opentype';\n          var cff = subtype === 'Type1C' || subtype === 'CIDFontType0C' ? new CFFFont(file, properties) : new Type1Font(name, file, properties);\n          adjustWidths(properties);\n          data = this.convert(name, cff, properties);\n          break;\n\n        case 'OpenType':\n        case 'TrueType':\n        case 'CIDFontType2':\n          this.mimetype = 'font/opentype';\n          data = this.checkAndRepair(name, file, properties);\n\n          if (this.isOpenType) {\n            adjustWidths(properties);\n            type = 'OpenType';\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError(\"Font \".concat(type, \" is not supported\"));\n      }\n    } catch (e) {\n      (0, _util.warn)(e);\n      this.fallbackToSystemFont();\n      return;\n    }\n\n    this.data = data;\n    this.fontType = getFontType(type, subtype);\n    this.fontMatrix = properties.fontMatrix;\n    this.widths = properties.widths;\n    this.defaultWidth = properties.defaultWidth;\n    this.toUnicode = properties.toUnicode;\n    this.encoding = properties.baseEncoding;\n    this.seacMap = properties.seacMap;\n  }\n\n  Font.getFontID = function () {\n    var ID = 1;\n    return function Font_getFontID() {\n      return String(ID++);\n    };\n  }();\n\n  function int16(b0, b1) {\n    return (b0 << 8) + b1;\n  }\n\n  function writeSignedInt16(bytes, index, value) {\n    bytes[index + 1] = value;\n    bytes[index] = value >>> 8;\n  }\n\n  function signedInt16(b0, b1) {\n    var value = (b0 << 8) + b1;\n    return value & 1 << 15 ? value - 0x10000 : value;\n  }\n\n  function int32(b0, b1, b2, b3) {\n    return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n  }\n\n  function string16(value) {\n    return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n  }\n\n  function safeString16(value) {\n    value = value > 0x7FFF ? 0x7FFF : value < -0x8000 ? -0x8000 : value;\n    return String.fromCharCode(value >> 8 & 0xff, value & 0xff);\n  }\n\n  function isTrueTypeFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.readUint32)(header, 0) === 0x00010000 || (0, _util.bytesToString)(header) === 'true';\n  }\n\n  function isTrueTypeCollectionFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.bytesToString)(header) === 'ttcf';\n  }\n\n  function isOpenTypeFile(file) {\n    var header = file.peekBytes(4);\n    return (0, _util.bytesToString)(header) === 'OTTO';\n  }\n\n  function isType1File(file) {\n    var header = file.peekBytes(2);\n\n    if (header[0] === 0x25 && header[1] === 0x21) {\n      return true;\n    }\n\n    if (header[0] === 0x80 && header[1] === 0x01) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function isCFFFile(file) {\n    var header = file.peekBytes(4);\n\n    if (header[0] >= 1 && header[3] >= 1 && header[3] <= 4) {\n      return true;\n    }\n\n    return false;\n  }\n\n  function getFontFileType(file, _ref) {\n    var type = _ref.type,\n        subtype = _ref.subtype,\n        composite = _ref.composite;\n    var fileType, fileSubtype;\n\n    if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType2';\n      } else {\n        fileType = 'TrueType';\n      }\n    } else if (isOpenTypeFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType2';\n      } else {\n        fileType = 'OpenType';\n      }\n    } else if (isType1File(file)) {\n      if (composite) {\n        fileType = 'CIDFontType0';\n      } else {\n        fileType = type === 'MMType1' ? 'MMType1' : 'Type1';\n      }\n    } else if (isCFFFile(file)) {\n      if (composite) {\n        fileType = 'CIDFontType0';\n        fileSubtype = 'CIDFontType0C';\n      } else {\n        fileType = type === 'MMType1' ? 'MMType1' : 'Type1';\n        fileSubtype = 'Type1C';\n      }\n    } else {\n      (0, _util.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.');\n      fileType = type;\n      fileSubtype = subtype;\n    }\n\n    return [fileType, fileSubtype];\n  }\n\n  function buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n    var toFontChar = [],\n        unicode;\n\n    for (var i = 0, ii = encoding.length; i < ii; i++) {\n      unicode = (0, _unicode.getUnicodeForGlyph)(encoding[i], glyphsUnicodeMap);\n\n      if (unicode !== -1) {\n        toFontChar[i] = unicode;\n      }\n    }\n\n    for (var charCode in differences) {\n      unicode = (0, _unicode.getUnicodeForGlyph)(differences[charCode], glyphsUnicodeMap);\n\n      if (unicode !== -1) {\n        toFontChar[+charCode] = unicode;\n      }\n    }\n\n    return toFontChar;\n  }\n\n  function adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId) {\n    var newMap = Object.create(null);\n    var toFontChar = [];\n    var privateUseAreaIndex = 0;\n    var nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n    var privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n\n    for (var originalCharCode in charCodeToGlyphId) {\n      originalCharCode |= 0;\n      var glyphId = charCodeToGlyphId[originalCharCode];\n\n      if (!hasGlyph(glyphId)) {\n        continue;\n      }\n\n      if (nextAvailableFontCharCode > privateUseOffetEnd) {\n        privateUseAreaIndex++;\n\n        if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n          (0, _util.warn)('Ran out of space in font private use area.');\n          break;\n        }\n\n        nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n        privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n      }\n\n      var fontCharCode = nextAvailableFontCharCode++;\n\n      if (glyphId === 0) {\n        glyphId = newGlyphZeroId;\n      }\n\n      newMap[fontCharCode] = glyphId;\n      toFontChar[originalCharCode] = fontCharCode;\n    }\n\n    return {\n      toFontChar: toFontChar,\n      charCodeToGlyphId: newMap,\n      nextAvailableFontCharCode: nextAvailableFontCharCode\n    };\n  }\n\n  function getRanges(glyphs, numGlyphs) {\n    var codes = [];\n\n    for (var charCode in glyphs) {\n      if (glyphs[charCode] >= numGlyphs) {\n        continue;\n      }\n\n      codes.push({\n        fontCharCode: charCode | 0,\n        glyphId: glyphs[charCode]\n      });\n    }\n\n    if (codes.length === 0) {\n      codes.push({\n        fontCharCode: 0,\n        glyphId: 0\n      });\n    }\n\n    codes.sort(function fontGetRangesSort(a, b) {\n      return a.fontCharCode - b.fontCharCode;\n    });\n    var ranges = [];\n    var length = codes.length;\n\n    for (var n = 0; n < length;) {\n      var start = codes[n].fontCharCode;\n      var codeIndices = [codes[n].glyphId];\n      ++n;\n      var end = start;\n\n      while (n < length && end + 1 === codes[n].fontCharCode) {\n        codeIndices.push(codes[n].glyphId);\n        ++end;\n        ++n;\n\n        if (end === 0xFFFF) {\n          break;\n        }\n      }\n\n      ranges.push([start, end, codeIndices]);\n    }\n\n    return ranges;\n  }\n\n  function createCmapTable(glyphs, numGlyphs) {\n    var ranges = getRanges(glyphs, numGlyphs);\n    var numTables = ranges[ranges.length - 1][1] > 0xFFFF ? 2 : 1;\n    var cmap = '\\x00\\x00' + string16(numTables) + '\\x00\\x03' + '\\x00\\x01' + (0, _util.string32)(4 + numTables * 8);\n    var i, ii, j, jj;\n\n    for (i = ranges.length - 1; i >= 0; --i) {\n      if (ranges[i][0] <= 0xFFFF) {\n        break;\n      }\n    }\n\n    var bmpLength = i + 1;\n\n    if (ranges[i][0] < 0xFFFF && ranges[i][1] === 0xFFFF) {\n      ranges[i][1] = 0xFFFE;\n    }\n\n    var trailingRangesCount = ranges[i][1] < 0xFFFF ? 1 : 0;\n    var segCount = bmpLength + trailingRangesCount;\n    var searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n    var startCount = '';\n    var endCount = '';\n    var idDeltas = '';\n    var idRangeOffsets = '';\n    var glyphsIds = '';\n    var bias = 0;\n    var range, start, end, codes;\n\n    for (i = 0, ii = bmpLength; i < ii; i++) {\n      range = ranges[i];\n      start = range[0];\n      end = range[1];\n      startCount += string16(start);\n      endCount += string16(end);\n      codes = range[2];\n      var contiguous = true;\n\n      for (j = 1, jj = codes.length; j < jj; ++j) {\n        if (codes[j] !== codes[j - 1] + 1) {\n          contiguous = false;\n          break;\n        }\n      }\n\n      if (!contiguous) {\n        var offset = (segCount - i) * 2 + bias * 2;\n        bias += end - start + 1;\n        idDeltas += string16(0);\n        idRangeOffsets += string16(offset);\n\n        for (j = 0, jj = codes.length; j < jj; ++j) {\n          glyphsIds += string16(codes[j]);\n        }\n      } else {\n        var startCode = codes[0];\n        idDeltas += string16(startCode - start & 0xFFFF);\n        idRangeOffsets += string16(0);\n      }\n    }\n\n    if (trailingRangesCount > 0) {\n      endCount += '\\xFF\\xFF';\n      startCount += '\\xFF\\xFF';\n      idDeltas += '\\x00\\x01';\n      idRangeOffsets += '\\x00\\x00';\n    }\n\n    var format314 = '\\x00\\x00' + string16(2 * segCount) + string16(searchParams.range) + string16(searchParams.entry) + string16(searchParams.rangeShift) + endCount + '\\x00\\x00' + startCount + idDeltas + idRangeOffsets + glyphsIds;\n    var format31012 = '';\n    var header31012 = '';\n\n    if (numTables > 1) {\n      cmap += '\\x00\\x03' + '\\x00\\x0A' + (0, _util.string32)(4 + numTables * 8 + 4 + format314.length);\n      format31012 = '';\n\n      for (i = 0, ii = ranges.length; i < ii; i++) {\n        range = ranges[i];\n        start = range[0];\n        codes = range[2];\n        var code = codes[0];\n\n        for (j = 1, jj = codes.length; j < jj; ++j) {\n          if (codes[j] !== codes[j - 1] + 1) {\n            end = range[0] + j - 1;\n            format31012 += (0, _util.string32)(start) + (0, _util.string32)(end) + (0, _util.string32)(code);\n            start = end + 1;\n            code = codes[j];\n          }\n        }\n\n        format31012 += (0, _util.string32)(start) + (0, _util.string32)(range[1]) + (0, _util.string32)(code);\n      }\n\n      header31012 = '\\x00\\x0C' + '\\x00\\x00' + (0, _util.string32)(format31012.length + 16) + '\\x00\\x00\\x00\\x00' + (0, _util.string32)(format31012.length / 12);\n    }\n\n    return cmap + '\\x00\\x04' + string16(format314.length + 4) + format314 + header31012 + format31012;\n  }\n\n  function validateOS2Table(os2) {\n    var stream = new _stream.Stream(os2.data);\n    var version = stream.getUint16();\n    stream.getBytes(60);\n    var selection = stream.getUint16();\n\n    if (version < 4 && selection & 0x0300) {\n      return false;\n    }\n\n    var firstChar = stream.getUint16();\n    var lastChar = stream.getUint16();\n\n    if (firstChar > lastChar) {\n      return false;\n    }\n\n    stream.getBytes(6);\n    var usWinAscent = stream.getUint16();\n\n    if (usWinAscent === 0) {\n      return false;\n    }\n\n    os2.data[8] = os2.data[9] = 0;\n    return true;\n  }\n\n  function createOS2Table(properties, charstrings, override) {\n    override = override || {\n      unitsPerEm: 0,\n      yMax: 0,\n      yMin: 0,\n      ascent: 0,\n      descent: 0\n    };\n    var ulUnicodeRange1 = 0;\n    var ulUnicodeRange2 = 0;\n    var ulUnicodeRange3 = 0;\n    var ulUnicodeRange4 = 0;\n    var firstCharIndex = null;\n    var lastCharIndex = 0;\n\n    if (charstrings) {\n      for (var code in charstrings) {\n        code |= 0;\n\n        if (firstCharIndex > code || !firstCharIndex) {\n          firstCharIndex = code;\n        }\n\n        if (lastCharIndex < code) {\n          lastCharIndex = code;\n        }\n\n        var position = (0, _unicode.getUnicodeRangeFor)(code);\n\n        if (position < 32) {\n          ulUnicodeRange1 |= 1 << position;\n        } else if (position < 64) {\n          ulUnicodeRange2 |= 1 << position - 32;\n        } else if (position < 96) {\n          ulUnicodeRange3 |= 1 << position - 64;\n        } else if (position < 123) {\n          ulUnicodeRange4 |= 1 << position - 96;\n        } else {\n          throw new _util.FormatError('Unicode ranges Bits > 123 are reserved for internal usage');\n        }\n      }\n\n      if (lastCharIndex > 0xFFFF) {\n        lastCharIndex = 0xFFFF;\n      }\n    } else {\n      firstCharIndex = 0;\n      lastCharIndex = 255;\n    }\n\n    var bbox = properties.bbox || [0, 0, 0, 0];\n    var unitsPerEm = override.unitsPerEm || 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n    var scale = properties.ascentScaled ? 1.0 : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n    var typoAscent = override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n    var typoDescent = override.descent || Math.round(scale * (properties.descent || bbox[1]));\n\n    if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n      typoDescent = -typoDescent;\n    }\n\n    var winAscent = override.yMax || typoAscent;\n    var winDescent = -override.yMin || -typoDescent;\n    return '\\x00\\x03' + '\\x02\\x24' + '\\x01\\xF4' + '\\x00\\x05' + '\\x00\\x00' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x00\\x8C' + '\\x02\\x8A' + '\\x02\\xBB' + '\\x00\\x00' + '\\x01\\xDF' + '\\x00\\x31' + '\\x01\\x02' + '\\x00\\x00' + '\\x00\\x00\\x06' + String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) + '\\x00\\x00\\x00\\x00\\x00\\x00' + (0, _util.string32)(ulUnicodeRange1) + (0, _util.string32)(ulUnicodeRange2) + (0, _util.string32)(ulUnicodeRange3) + (0, _util.string32)(ulUnicodeRange4) + '\\x2A\\x32\\x31\\x2A' + string16(properties.italicAngle ? 1 : 0) + string16(firstCharIndex || properties.firstChar) + string16(lastCharIndex || properties.lastChar) + string16(typoAscent) + string16(typoDescent) + '\\x00\\x64' + string16(winAscent) + string16(winDescent) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + string16(properties.xHeight) + string16(properties.capHeight) + string16(0) + string16(firstCharIndex || properties.firstChar) + '\\x00\\x03';\n  }\n\n  function createPostTable(properties) {\n    var angle = Math.floor(properties.italicAngle * Math.pow(2, 16));\n    return '\\x00\\x03\\x00\\x00' + (0, _util.string32)(angle) + '\\x00\\x00' + '\\x00\\x00' + (0, _util.string32)(properties.fixedPitch) + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00' + '\\x00\\x00\\x00\\x00';\n  }\n\n  function createNameTable(name, proto) {\n    if (!proto) {\n      proto = [[], []];\n    }\n\n    var strings = [proto[0][0] || 'Original licence', proto[0][1] || name, proto[0][2] || 'Unknown', proto[0][3] || 'uniqueID', proto[0][4] || name, proto[0][5] || 'Version 0.11', proto[0][6] || '', proto[0][7] || 'Unknown', proto[0][8] || 'Unknown', proto[0][9] || 'Unknown'];\n    var stringsUnicode = [];\n    var i, ii, j, jj, str;\n\n    for (i = 0, ii = strings.length; i < ii; i++) {\n      str = proto[1][i] || strings[i];\n      var strBufUnicode = [];\n\n      for (j = 0, jj = str.length; j < jj; j++) {\n        strBufUnicode.push(string16(str.charCodeAt(j)));\n      }\n\n      stringsUnicode.push(strBufUnicode.join(''));\n    }\n\n    var names = [strings, stringsUnicode];\n    var platforms = ['\\x00\\x01', '\\x00\\x03'];\n    var encodings = ['\\x00\\x00', '\\x00\\x01'];\n    var languages = ['\\x00\\x00', '\\x04\\x09'];\n    var namesRecordCount = strings.length * platforms.length;\n    var nameTable = '\\x00\\x00' + string16(namesRecordCount) + string16(namesRecordCount * 12 + 6);\n    var strOffset = 0;\n\n    for (i = 0, ii = platforms.length; i < ii; i++) {\n      var strs = names[i];\n\n      for (j = 0, jj = strs.length; j < jj; j++) {\n        str = strs[j];\n        var nameRecord = platforms[i] + encodings[i] + languages[i] + string16(j) + string16(str.length) + string16(strOffset);\n        nameTable += nameRecord;\n        strOffset += str.length;\n      }\n    }\n\n    nameTable += strings.join('') + stringsUnicode.join('');\n    return nameTable;\n  }\n\n  Font.prototype = {\n    name: null,\n    font: null,\n    mimetype: null,\n    encoding: null,\n    disableFontFace: false,\n\n    get renderer() {\n      var renderer = _font_renderer.FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n\n      return (0, _util.shadow)(this, 'renderer', renderer);\n    },\n\n    exportData: function Font_exportData() {\n      var data = {};\n\n      for (var i in this) {\n        if (this.hasOwnProperty(i)) {\n          data[i] = this[i];\n        }\n      }\n\n      return data;\n    },\n    fallbackToSystemFont: function Font_fallbackToSystemFont() {\n      var _this = this;\n\n      this.missingFile = true;\n      var charCode, unicode;\n      var name = this.name;\n      var type = this.type;\n      var subtype = this.subtype;\n      var fontName = name.replace(/[,_]/g, '-');\n      var stdFontMap = (0, _standard_fonts.getStdFontMap)(),\n          nonStdFontMap = (0, _standard_fonts.getNonStdFontMap)();\n      var isStandardFont = !!stdFontMap[fontName] || !!(nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]);\n      fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n      this.bold = fontName.search(/bold/gi) !== -1;\n      this.italic = fontName.search(/oblique/gi) !== -1 || fontName.search(/italic/gi) !== -1;\n      this.black = name.search(/Black/g) !== -1;\n      this.remeasure = Object.keys(this.widths).length > 0;\n\n      if (isStandardFont && type === 'CIDFontType2' && this.cidEncoding.startsWith('Identity-')) {\n        var GlyphMapForStandardFonts = (0, _standard_fonts.getGlyphMapForStandardFonts)();\n        var map = [];\n\n        for (charCode in GlyphMapForStandardFonts) {\n          map[+charCode] = GlyphMapForStandardFonts[charCode];\n        }\n\n        if (/Arial-?Black/i.test(name)) {\n          var SupplementalGlyphMapForArialBlack = (0, _standard_fonts.getSupplementalGlyphMapForArialBlack)();\n\n          for (charCode in SupplementalGlyphMapForArialBlack) {\n            map[+charCode] = SupplementalGlyphMapForArialBlack[charCode];\n          }\n        } else if (/Calibri/i.test(name)) {\n          var SupplementalGlyphMapForCalibri = (0, _standard_fonts.getSupplementalGlyphMapForCalibri)();\n\n          for (charCode in SupplementalGlyphMapForCalibri) {\n            map[+charCode] = SupplementalGlyphMapForCalibri[charCode];\n          }\n        }\n\n        var isIdentityUnicode = this.toUnicode instanceof IdentityToUnicodeMap;\n\n        if (!isIdentityUnicode) {\n          this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n            map[+charCode] = unicodeCharCode;\n          });\n        }\n\n        this.toFontChar = map;\n        this.toUnicode = new ToUnicodeMap(map);\n      } else if (/Symbol/i.test(fontName)) {\n        this.toFontChar = buildToFontChar(_encodings.SymbolSetEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n      } else if (/Dingbats/i.test(fontName)) {\n        if (/Wingdings/i.test(name)) {\n          (0, _util.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.');\n        }\n\n        this.toFontChar = buildToFontChar(_encodings.ZapfDingbatsEncoding, (0, _glyphlist.getDingbatsGlyphsUnicode)(), this.differences);\n      } else if (isStandardFont) {\n        this.toFontChar = buildToFontChar(this.defaultEncoding, (0, _glyphlist.getGlyphsUnicode)(), this.differences);\n      } else {\n        var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n          if (!_this.composite) {\n            var glyphName = _this.differences[charCode] || _this.defaultEncoding[charCode];\n            unicode = (0, _unicode.getUnicodeForGlyph)(glyphName, glyphsUnicodeMap);\n\n            if (unicode !== -1) {\n              unicodeCharCode = unicode;\n            }\n          }\n\n          _this.toFontChar[charCode] = unicodeCharCode;\n        });\n      }\n\n      this.loadedName = fontName.split('-')[0];\n      this.fontType = getFontType(type, subtype);\n    },\n    checkAndRepair: function Font_checkAndRepair(name, font, properties) {\n      var VALID_TABLES = ['OS/2', 'cmap', 'head', 'hhea', 'hmtx', 'maxp', 'name', 'post', 'loca', 'glyf', 'fpgm', 'prep', 'cvt ', 'CFF '];\n\n      function readTables(file, numTables) {\n        var tables = Object.create(null);\n        tables['OS/2'] = null;\n        tables['cmap'] = null;\n        tables['head'] = null;\n        tables['hhea'] = null;\n        tables['hmtx'] = null;\n        tables['maxp'] = null;\n        tables['name'] = null;\n        tables['post'] = null;\n\n        for (var i = 0; i < numTables; i++) {\n          var table = readTableEntry(font);\n\n          if (!VALID_TABLES.includes(table.tag)) {\n            continue;\n          }\n\n          if (table.length === 0) {\n            continue;\n          }\n\n          tables[table.tag] = table;\n        }\n\n        return tables;\n      }\n\n      function readTableEntry(file) {\n        var tag = (0, _util.bytesToString)(file.getBytes(4));\n        var checksum = file.getInt32() >>> 0;\n        var offset = file.getInt32() >>> 0;\n        var length = file.getInt32() >>> 0;\n        var previousPosition = file.pos;\n        file.pos = file.start ? file.start : 0;\n        file.skip(offset);\n        var data = file.getBytes(length);\n        file.pos = previousPosition;\n\n        if (tag === 'head') {\n          data[8] = data[9] = data[10] = data[11] = 0;\n          data[17] |= 0x20;\n        }\n\n        return {\n          tag: tag,\n          checksum: checksum,\n          length: length,\n          offset: offset,\n          data: data\n        };\n      }\n\n      function readOpenTypeHeader(ttf) {\n        return {\n          version: (0, _util.bytesToString)(ttf.getBytes(4)),\n          numTables: ttf.getUint16(),\n          searchRange: ttf.getUint16(),\n          entrySelector: ttf.getUint16(),\n          rangeShift: ttf.getUint16()\n        };\n      }\n\n      function readTrueTypeCollectionHeader(ttc) {\n        var ttcTag = (0, _util.bytesToString)(ttc.getBytes(4));\n        (0, _util.assert)(ttcTag === 'ttcf', 'Must be a TrueType Collection font.');\n        var majorVersion = ttc.getUint16();\n        var minorVersion = ttc.getUint16();\n        var numFonts = ttc.getInt32() >>> 0;\n        var offsetTable = [];\n\n        for (var i = 0; i < numFonts; i++) {\n          offsetTable.push(ttc.getInt32() >>> 0);\n        }\n\n        var header = {\n          ttcTag: ttcTag,\n          majorVersion: majorVersion,\n          minorVersion: minorVersion,\n          numFonts: numFonts,\n          offsetTable: offsetTable\n        };\n\n        switch (majorVersion) {\n          case 1:\n            return header;\n\n          case 2:\n            header.dsigTag = ttc.getInt32() >>> 0;\n            header.dsigLength = ttc.getInt32() >>> 0;\n            header.dsigOffset = ttc.getInt32() >>> 0;\n            return header;\n        }\n\n        throw new _util.FormatError(\"Invalid TrueType Collection majorVersion: \".concat(majorVersion, \".\"));\n      }\n\n      function readTrueTypeCollectionData(ttc, fontName) {\n        var _readTrueTypeCollecti = readTrueTypeCollectionHeader(ttc),\n            numFonts = _readTrueTypeCollecti.numFonts,\n            offsetTable = _readTrueTypeCollecti.offsetTable;\n\n        for (var i = 0; i < numFonts; i++) {\n          ttc.pos = (ttc.start || 0) + offsetTable[i];\n          var potentialHeader = readOpenTypeHeader(ttc);\n          var potentialTables = readTables(ttc, potentialHeader.numTables);\n\n          if (!potentialTables['name']) {\n            throw new _util.FormatError('TrueType Collection font must contain a \"name\" table.');\n          }\n\n          var nameTable = readNameTable(potentialTables['name']);\n\n          for (var j = 0, jj = nameTable.length; j < jj; j++) {\n            for (var k = 0, kk = nameTable[j].length; k < kk; k++) {\n              var nameEntry = nameTable[j][k];\n\n              if (nameEntry && nameEntry.replace(/\\s/g, '') === fontName) {\n                return {\n                  header: potentialHeader,\n                  tables: potentialTables\n                };\n              }\n            }\n          }\n        }\n\n        throw new _util.FormatError(\"TrueType Collection does not contain \\\"\".concat(fontName, \"\\\" font.\"));\n      }\n\n      function readCmapTable(cmap, font, isSymbolicFont, hasEncoding) {\n        if (!cmap) {\n          (0, _util.warn)('No cmap table available.');\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        var segment;\n        var start = (font.start ? font.start : 0) + cmap.offset;\n        font.pos = start;\n        font.getUint16();\n        var numTables = font.getUint16();\n        var potentialTable;\n        var canBreak = false;\n\n        for (var i = 0; i < numTables; i++) {\n          var platformId = font.getUint16();\n          var encodingId = font.getUint16();\n          var offset = font.getInt32() >>> 0;\n          var useTable = false;\n\n          if (potentialTable && potentialTable.platformId === platformId && potentialTable.encodingId === encodingId) {\n            continue;\n          }\n\n          if (platformId === 0 && encodingId === 0) {\n            useTable = true;\n          } else if (platformId === 1 && encodingId === 0) {\n            useTable = true;\n          } else if (platformId === 3 && encodingId === 1 && (hasEncoding || !potentialTable)) {\n            useTable = true;\n\n            if (!isSymbolicFont) {\n              canBreak = true;\n            }\n          } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n            useTable = true;\n            canBreak = true;\n          }\n\n          if (useTable) {\n            potentialTable = {\n              platformId: platformId,\n              encodingId: encodingId,\n              offset: offset\n            };\n          }\n\n          if (canBreak) {\n            break;\n          }\n        }\n\n        if (potentialTable) {\n          font.pos = start + potentialTable.offset;\n        }\n\n        if (!potentialTable || font.peekByte() === -1) {\n          (0, _util.warn)('Could not find a preferred cmap table.');\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        var format = font.getUint16();\n        font.getUint16();\n        font.getUint16();\n        var hasShortCmap = false;\n        var mappings = [];\n        var j, glyphId;\n\n        if (format === 0) {\n          for (j = 0; j < 256; j++) {\n            var index = font.getByte();\n\n            if (!index) {\n              continue;\n            }\n\n            mappings.push({\n              charCode: j,\n              glyphId: index\n            });\n          }\n\n          hasShortCmap = true;\n        } else if (format === 4) {\n          var segCount = font.getUint16() >> 1;\n          font.getBytes(6);\n          var segIndex,\n              segments = [];\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments.push({\n              end: font.getUint16()\n            });\n          }\n\n          font.getUint16();\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].start = font.getUint16();\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segments[segIndex].delta = font.getUint16();\n          }\n\n          var offsetsCount = 0;\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            var rangeOffset = font.getUint16();\n\n            if (!rangeOffset) {\n              segment.offsetIndex = -1;\n              continue;\n            }\n\n            var offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n            segment.offsetIndex = offsetIndex;\n            offsetsCount = Math.max(offsetsCount, offsetIndex + segment.end - segment.start + 1);\n          }\n\n          var offsets = [];\n\n          for (j = 0; j < offsetsCount; j++) {\n            offsets.push(font.getUint16());\n          }\n\n          for (segIndex = 0; segIndex < segCount; segIndex++) {\n            segment = segments[segIndex];\n            start = segment.start;\n            var end = segment.end;\n            var delta = segment.delta;\n            offsetIndex = segment.offsetIndex;\n\n            for (j = start; j <= end; j++) {\n              if (j === 0xFFFF) {\n                continue;\n              }\n\n              glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n              glyphId = glyphId + delta & 0xFFFF;\n              mappings.push({\n                charCode: j,\n                glyphId: glyphId\n              });\n            }\n          }\n        } else if (format === 6) {\n          var firstCode = font.getUint16();\n          var entryCount = font.getUint16();\n\n          for (j = 0; j < entryCount; j++) {\n            glyphId = font.getUint16();\n            var charCode = firstCode + j;\n            mappings.push({\n              charCode: charCode,\n              glyphId: glyphId\n            });\n          }\n        } else {\n          (0, _util.warn)('cmap table has unsupported format: ' + format);\n          return {\n            platformId: -1,\n            encodingId: -1,\n            mappings: [],\n            hasShortCmap: false\n          };\n        }\n\n        mappings.sort(function (a, b) {\n          return a.charCode - b.charCode;\n        });\n\n        for (i = 1; i < mappings.length; i++) {\n          if (mappings[i - 1].charCode === mappings[i].charCode) {\n            mappings.splice(i, 1);\n            i--;\n          }\n        }\n\n        return {\n          platformId: potentialTable.platformId,\n          encodingId: potentialTable.encodingId,\n          mappings: mappings,\n          hasShortCmap: hasShortCmap\n        };\n      }\n\n      function sanitizeMetrics(font, header, metrics, numGlyphs) {\n        if (!header) {\n          if (metrics) {\n            metrics.data = null;\n          }\n\n          return;\n        }\n\n        font.pos = (font.start ? font.start : 0) + header.offset;\n        font.pos += 4;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 2;\n        font.pos += 8;\n        font.pos += 2;\n        var numOfMetrics = font.getUint16();\n\n        if (numOfMetrics > numGlyphs) {\n          (0, _util.info)('The numOfMetrics (' + numOfMetrics + ') should not be ' + 'greater than the numGlyphs (' + numGlyphs + ')');\n          numOfMetrics = numGlyphs;\n          header.data[34] = (numOfMetrics & 0xff00) >> 8;\n          header.data[35] = numOfMetrics & 0x00ff;\n        }\n\n        var numOfSidebearings = numGlyphs - numOfMetrics;\n        var numMissing = numOfSidebearings - (metrics.length - numOfMetrics * 4 >> 1);\n\n        if (numMissing > 0) {\n          var entries = new Uint8Array(metrics.length + numMissing * 2);\n          entries.set(metrics.data);\n          metrics.data = entries;\n        }\n      }\n\n      function sanitizeGlyph(source, sourceStart, sourceEnd, dest, destStart, hintsValid) {\n        var glyphProfile = {\n          length: 0,\n          sizeOfInstructions: 0\n        };\n\n        if (sourceEnd - sourceStart <= 12) {\n          return glyphProfile;\n        }\n\n        var glyf = source.subarray(sourceStart, sourceEnd);\n        var contoursCount = signedInt16(glyf[0], glyf[1]);\n\n        if (contoursCount < 0) {\n          contoursCount = -1;\n          writeSignedInt16(glyf, 0, contoursCount);\n          dest.set(glyf, destStart);\n          glyphProfile.length = glyf.length;\n          return glyphProfile;\n        }\n\n        var i,\n            j = 10,\n            flagsCount = 0;\n\n        for (i = 0; i < contoursCount; i++) {\n          var endPoint = glyf[j] << 8 | glyf[j + 1];\n          flagsCount = endPoint + 1;\n          j += 2;\n        }\n\n        var instructionsStart = j;\n        var instructionsLength = glyf[j] << 8 | glyf[j + 1];\n        glyphProfile.sizeOfInstructions = instructionsLength;\n        j += 2 + instructionsLength;\n        var instructionsEnd = j;\n        var coordinatesLength = 0;\n\n        for (i = 0; i < flagsCount; i++) {\n          var flag = glyf[j++];\n\n          if (flag & 0xC0) {\n            glyf[j - 1] = flag & 0x3F;\n          }\n\n          var xyLength = (flag & 2 ? 1 : flag & 16 ? 0 : 2) + (flag & 4 ? 1 : flag & 32 ? 0 : 2);\n          coordinatesLength += xyLength;\n\n          if (flag & 8) {\n            var repeat = glyf[j++];\n            i += repeat;\n            coordinatesLength += repeat * xyLength;\n          }\n        }\n\n        if (coordinatesLength === 0) {\n          return glyphProfile;\n        }\n\n        var glyphDataLength = j + coordinatesLength;\n\n        if (glyphDataLength > glyf.length) {\n          return glyphProfile;\n        }\n\n        if (!hintsValid && instructionsLength > 0) {\n          dest.set(glyf.subarray(0, instructionsStart), destStart);\n          dest.set([0, 0], destStart + instructionsStart);\n          dest.set(glyf.subarray(instructionsEnd, glyphDataLength), destStart + instructionsStart + 2);\n          glyphDataLength -= instructionsLength;\n\n          if (glyf.length - glyphDataLength > 3) {\n            glyphDataLength = glyphDataLength + 3 & ~3;\n          }\n\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n\n        if (glyf.length - glyphDataLength > 3) {\n          glyphDataLength = glyphDataLength + 3 & ~3;\n          dest.set(glyf.subarray(0, glyphDataLength), destStart);\n          glyphProfile.length = glyphDataLength;\n          return glyphProfile;\n        }\n\n        dest.set(glyf, destStart);\n        glyphProfile.length = glyf.length;\n        return glyphProfile;\n      }\n\n      function sanitizeHead(head, numGlyphs, locaLength) {\n        var data = head.data;\n        var version = int32(data[0], data[1], data[2], data[3]);\n\n        if (version >> 16 !== 1) {\n          (0, _util.info)('Attempting to fix invalid version in head table: ' + version);\n          data[0] = 0;\n          data[1] = 1;\n          data[2] = 0;\n          data[3] = 0;\n        }\n\n        var indexToLocFormat = int16(data[50], data[51]);\n\n        if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n          (0, _util.info)('Attempting to fix invalid indexToLocFormat in head table: ' + indexToLocFormat);\n          var numGlyphsPlusOne = numGlyphs + 1;\n\n          if (locaLength === numGlyphsPlusOne << 1) {\n            data[50] = 0;\n            data[51] = 0;\n          } else if (locaLength === numGlyphsPlusOne << 2) {\n            data[50] = 0;\n            data[51] = 1;\n          } else {\n            throw new _util.FormatError('Could not fix indexToLocFormat: ' + indexToLocFormat);\n          }\n        }\n      }\n\n      function sanitizeGlyphLocations(loca, glyf, numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions) {\n        var itemSize, itemDecode, itemEncode;\n\n        if (isGlyphLocationsLong) {\n          itemSize = 4;\n\n          itemDecode = function fontItemDecodeLong(data, offset) {\n            return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n          };\n\n          itemEncode = function fontItemEncodeLong(data, offset, value) {\n            data[offset] = value >>> 24 & 0xFF;\n            data[offset + 1] = value >> 16 & 0xFF;\n            data[offset + 2] = value >> 8 & 0xFF;\n            data[offset + 3] = value & 0xFF;\n          };\n        } else {\n          itemSize = 2;\n\n          itemDecode = function fontItemDecode(data, offset) {\n            return data[offset] << 9 | data[offset + 1] << 1;\n          };\n\n          itemEncode = function fontItemEncode(data, offset, value) {\n            data[offset] = value >> 9 & 0xFF;\n            data[offset + 1] = value >> 1 & 0xFF;\n          };\n        }\n\n        var numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n        var locaData = loca.data;\n        var locaDataSize = itemSize * (1 + numGlyphsOut);\n        locaData = new Uint8Array(locaDataSize);\n        locaData.set(loca.data.subarray(0, locaDataSize));\n        loca.data = locaData;\n        var oldGlyfData = glyf.data;\n        var oldGlyfDataLength = oldGlyfData.length;\n        var newGlyfData = new Uint8Array(oldGlyfDataLength);\n        var startOffset = itemDecode(locaData, 0);\n        var writeOffset = 0;\n        var missingGlyphs = Object.create(null);\n        itemEncode(locaData, 0, writeOffset);\n        var i, j;\n\n        for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n          var endOffset = itemDecode(locaData, j);\n\n          if (endOffset === 0) {\n            endOffset = startOffset;\n          }\n\n          if (endOffset > oldGlyfDataLength && (oldGlyfDataLength + 3 & ~3) === endOffset) {\n            endOffset = oldGlyfDataLength;\n          }\n\n          if (endOffset > oldGlyfDataLength) {\n            startOffset = endOffset;\n          }\n\n          var glyphProfile = sanitizeGlyph(oldGlyfData, startOffset, endOffset, newGlyfData, writeOffset, hintsValid);\n          var newLength = glyphProfile.length;\n\n          if (newLength === 0) {\n            missingGlyphs[i] = true;\n          }\n\n          if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n            maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n          }\n\n          writeOffset += newLength;\n          itemEncode(locaData, j, writeOffset);\n          startOffset = endOffset;\n        }\n\n        if (writeOffset === 0) {\n          var simpleGlyph = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);\n\n          for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n            itemEncode(locaData, j, simpleGlyph.length);\n          }\n\n          glyf.data = simpleGlyph;\n        } else if (dupFirstEntry) {\n          var firstEntryLength = itemDecode(locaData, itemSize);\n\n          if (newGlyfData.length > firstEntryLength + writeOffset) {\n            glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n          } else {\n            glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n            glyf.data.set(newGlyfData.subarray(0, writeOffset));\n          }\n\n          glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n          itemEncode(loca.data, locaData.length - itemSize, writeOffset + firstEntryLength);\n        } else {\n          glyf.data = newGlyfData.subarray(0, writeOffset);\n        }\n\n        return {\n          missingGlyphs: missingGlyphs,\n          maxSizeOfInstructions: maxSizeOfInstructions\n        };\n      }\n\n      function readPostScriptTable(post, properties, maxpNumGlyphs) {\n        var start = (font.start ? font.start : 0) + post.offset;\n        font.pos = start;\n        var length = post.length,\n            end = start + length;\n        var version = font.getInt32();\n        font.getBytes(28);\n        var glyphNames;\n        var valid = true;\n        var i;\n\n        switch (version) {\n          case 0x00010000:\n            glyphNames = MacStandardGlyphOrdering;\n            break;\n\n          case 0x00020000:\n            var numGlyphs = font.getUint16();\n\n            if (numGlyphs !== maxpNumGlyphs) {\n              valid = false;\n              break;\n            }\n\n            var glyphNameIndexes = [];\n\n            for (i = 0; i < numGlyphs; ++i) {\n              var index = font.getUint16();\n\n              if (index >= 32768) {\n                valid = false;\n                break;\n              }\n\n              glyphNameIndexes.push(index);\n            }\n\n            if (!valid) {\n              break;\n            }\n\n            var customNames = [];\n            var strBuf = [];\n\n            while (font.pos < end) {\n              var stringLength = font.getByte();\n              strBuf.length = stringLength;\n\n              for (i = 0; i < stringLength; ++i) {\n                strBuf[i] = String.fromCharCode(font.getByte());\n              }\n\n              customNames.push(strBuf.join(''));\n            }\n\n            glyphNames = [];\n\n            for (i = 0; i < numGlyphs; ++i) {\n              var j = glyphNameIndexes[i];\n\n              if (j < 258) {\n                glyphNames.push(MacStandardGlyphOrdering[j]);\n                continue;\n              }\n\n              glyphNames.push(customNames[j - 258]);\n            }\n\n            break;\n\n          case 0x00030000:\n            break;\n\n          default:\n            (0, _util.warn)('Unknown/unsupported post table version ' + version);\n            valid = false;\n\n            if (properties.defaultEncoding) {\n              glyphNames = properties.defaultEncoding;\n            }\n\n            break;\n        }\n\n        properties.glyphNames = glyphNames;\n        return valid;\n      }\n\n      function readNameTable(nameTable) {\n        var start = (font.start ? font.start : 0) + nameTable.offset;\n        font.pos = start;\n        var names = [[], []];\n        var length = nameTable.length,\n            end = start + length;\n        var format = font.getUint16();\n        var FORMAT_0_HEADER_LENGTH = 6;\n\n        if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n          return names;\n        }\n\n        var numRecords = font.getUint16();\n        var stringsStart = font.getUint16();\n        var records = [];\n        var NAME_RECORD_LENGTH = 12;\n        var i, ii;\n\n        for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n          var r = {\n            platform: font.getUint16(),\n            encoding: font.getUint16(),\n            language: font.getUint16(),\n            name: font.getUint16(),\n            length: font.getUint16(),\n            offset: font.getUint16()\n          };\n\n          if (r.platform === 1 && r.encoding === 0 && r.language === 0 || r.platform === 3 && r.encoding === 1 && r.language === 0x409) {\n            records.push(r);\n          }\n        }\n\n        for (i = 0, ii = records.length; i < ii; i++) {\n          var record = records[i];\n\n          if (record.length <= 0) {\n            continue;\n          }\n\n          var pos = start + stringsStart + record.offset;\n\n          if (pos + record.length > end) {\n            continue;\n          }\n\n          font.pos = pos;\n          var nameIndex = record.name;\n\n          if (record.encoding) {\n            var str = '';\n\n            for (var j = 0, jj = record.length; j < jj; j += 2) {\n              str += String.fromCharCode(font.getUint16());\n            }\n\n            names[1][nameIndex] = str;\n          } else {\n            names[0][nameIndex] = (0, _util.bytesToString)(font.getBytes(record.length));\n          }\n        }\n\n        return names;\n      }\n\n      var TTOpsStackDeltas = [0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n\n      function sanitizeTTProgram(table, ttContext) {\n        var data = table.data;\n        var i = 0,\n            j,\n            n,\n            b,\n            funcId,\n            pc,\n            lastEndf = 0,\n            lastDeff = 0;\n        var stack = [];\n        var callstack = [];\n        var functionsCalled = [];\n        var tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n        var inFDEF = false,\n            ifLevel = 0,\n            inELSE = 0;\n\n        for (var ii = data.length; i < ii;) {\n          var op = data[i++];\n\n          if (op === 0x40) {\n            n = data[i++];\n\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if (op === 0x41) {\n            n = data[i++];\n\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push(b << 8 | data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB0) {\n            n = op - 0xB0 + 1;\n\n            if (inFDEF || inELSE) {\n              i += n;\n            } else {\n              for (j = 0; j < n; j++) {\n                stack.push(data[i++]);\n              }\n            }\n          } else if ((op & 0xF8) === 0xB8) {\n            n = op - 0xB8 + 1;\n\n            if (inFDEF || inELSE) {\n              i += n * 2;\n            } else {\n              for (j = 0; j < n; j++) {\n                b = data[i++];\n                stack.push(b << 8 | data[i++]);\n              }\n            }\n          } else if (op === 0x2B && !tooComplexToFollowFunctions) {\n            if (!inFDEF && !inELSE) {\n              funcId = stack[stack.length - 1];\n\n              if (isNaN(funcId)) {\n                (0, _util.info)('TT: CALL empty stack (or invalid entry).');\n              } else {\n                ttContext.functionsUsed[funcId] = true;\n\n                if (funcId in ttContext.functionsStackDeltas) {\n                  var newStackLength = stack.length + ttContext.functionsStackDeltas[funcId];\n\n                  if (newStackLength < 0) {\n                    (0, _util.warn)('TT: CALL invalid functions stack delta.');\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n\n                  stack.length = newStackLength;\n                } else if (funcId in ttContext.functionsDefined && !functionsCalled.includes(funcId)) {\n                  callstack.push({\n                    data: data,\n                    i: i,\n                    stackTop: stack.length - 1\n                  });\n                  functionsCalled.push(funcId);\n                  pc = ttContext.functionsDefined[funcId];\n\n                  if (!pc) {\n                    (0, _util.warn)('TT: CALL non-existent function');\n                    ttContext.hintsValid = false;\n                    return;\n                  }\n\n                  data = pc.data;\n                  i = pc.i;\n                }\n              }\n            }\n          } else if (op === 0x2C && !tooComplexToFollowFunctions) {\n            if (inFDEF || inELSE) {\n              (0, _util.warn)('TT: nested FDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n\n            inFDEF = true;\n            lastDeff = i;\n            funcId = stack.pop();\n            ttContext.functionsDefined[funcId] = {\n              data: data,\n              i: i\n            };\n          } else if (op === 0x2D) {\n            if (inFDEF) {\n              inFDEF = false;\n              lastEndf = i;\n            } else {\n              pc = callstack.pop();\n\n              if (!pc) {\n                (0, _util.warn)('TT: ENDF bad stack');\n                ttContext.hintsValid = false;\n                return;\n              }\n\n              funcId = functionsCalled.pop();\n              data = pc.data;\n              i = pc.i;\n              ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n            }\n          } else if (op === 0x89) {\n            if (inFDEF || inELSE) {\n              (0, _util.warn)('TT: nested IDEFs not allowed');\n              tooComplexToFollowFunctions = true;\n            }\n\n            inFDEF = true;\n            lastDeff = i;\n          } else if (op === 0x58) {\n            ++ifLevel;\n          } else if (op === 0x1B) {\n            inELSE = ifLevel;\n          } else if (op === 0x59) {\n            if (inELSE === ifLevel) {\n              inELSE = 0;\n            }\n\n            --ifLevel;\n          } else if (op === 0x1C) {\n            if (!inFDEF && !inELSE) {\n              var offset = stack[stack.length - 1];\n\n              if (offset > 0) {\n                i += offset - 1;\n              }\n            }\n          }\n\n          if (!inFDEF && !inELSE) {\n            var stackDelta = op <= 0x8E ? TTOpsStackDeltas[op] : op >= 0xC0 && op <= 0xDF ? -1 : op >= 0xE0 ? -2 : 0;\n\n            if (op >= 0x71 && op <= 0x75) {\n              n = stack.pop();\n\n              if (!isNaN(n)) {\n                stackDelta = -n * 2;\n              }\n            }\n\n            while (stackDelta < 0 && stack.length > 0) {\n              stack.pop();\n              stackDelta++;\n            }\n\n            while (stackDelta > 0) {\n              stack.push(NaN);\n              stackDelta--;\n            }\n          }\n        }\n\n        ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n        var content = [data];\n\n        if (i > data.length) {\n          content.push(new Uint8Array(i - data.length));\n        }\n\n        if (lastDeff > lastEndf) {\n          (0, _util.warn)('TT: complementing a missing function tail');\n          content.push(new Uint8Array([0x22, 0x2D]));\n        }\n\n        foldTTTable(table, content);\n      }\n\n      function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n        if (ttContext.tooComplexToFollowFunctions) {\n          return;\n        }\n\n        if (ttContext.functionsDefined.length > maxFunctionDefs) {\n          (0, _util.warn)('TT: more functions defined than expected');\n          ttContext.hintsValid = false;\n          return;\n        }\n\n        for (var j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n          if (j > maxFunctionDefs) {\n            (0, _util.warn)('TT: invalid function id: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n\n          if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n            (0, _util.warn)('TT: undefined function: ' + j);\n            ttContext.hintsValid = false;\n            return;\n          }\n        }\n      }\n\n      function foldTTTable(table, content) {\n        if (content.length > 1) {\n          var newLength = 0;\n          var j, jj;\n\n          for (j = 0, jj = content.length; j < jj; j++) {\n            newLength += content[j].length;\n          }\n\n          newLength = newLength + 3 & ~3;\n          var result = new Uint8Array(newLength);\n          var pos = 0;\n\n          for (j = 0, jj = content.length; j < jj; j++) {\n            result.set(content[j], pos);\n            pos += content[j].length;\n          }\n\n          table.data = result;\n          table.length = newLength;\n        }\n      }\n\n      function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n        var ttContext = {\n          functionsDefined: [],\n          functionsUsed: [],\n          functionsStackDeltas: [],\n          tooComplexToFollowFunctions: false,\n          hintsValid: true\n        };\n\n        if (fpgm) {\n          sanitizeTTProgram(fpgm, ttContext);\n        }\n\n        if (prep) {\n          sanitizeTTProgram(prep, ttContext);\n        }\n\n        if (fpgm) {\n          checkInvalidFunctions(ttContext, maxFunctionDefs);\n        }\n\n        if (cvt && cvt.length & 1) {\n          var cvtData = new Uint8Array(cvt.length + 1);\n          cvtData.set(cvt.data);\n          cvt.data = cvtData;\n        }\n\n        return ttContext.hintsValid;\n      }\n\n      font = new _stream.Stream(new Uint8Array(font.getBytes()));\n      var header, tables;\n\n      if (isTrueTypeCollectionFile(font)) {\n        var ttcData = readTrueTypeCollectionData(font, this.name);\n        header = ttcData.header;\n        tables = ttcData.tables;\n      } else {\n        header = readOpenTypeHeader(font);\n        tables = readTables(font, header.numTables);\n      }\n\n      var cff, cffFile;\n      var isTrueType = !tables['CFF '];\n\n      if (!isTrueType) {\n        var isComposite = properties.composite && ((properties.cidToGidMap || []).length > 0 || !(properties.cMap instanceof _cmap.IdentityCMap));\n\n        if (header.version === 'OTTO' && !isComposite || !tables['head'] || !tables['hhea'] || !tables['maxp'] || !tables['post']) {\n          cffFile = new _stream.Stream(tables['CFF '].data);\n          cff = new CFFFont(cffFile, properties);\n          adjustWidths(properties);\n          return this.convert(name, cff, properties);\n        }\n\n        delete tables['glyf'];\n        delete tables['loca'];\n        delete tables['fpgm'];\n        delete tables['prep'];\n        delete tables['cvt '];\n        this.isOpenType = true;\n      } else {\n        if (!tables['loca']) {\n          throw new _util.FormatError('Required \"loca\" table is not found');\n        }\n\n        if (!tables['glyf']) {\n          (0, _util.warn)('Required \"glyf\" table is not found -- trying to recover.');\n          tables['glyf'] = {\n            tag: 'glyf',\n            data: new Uint8Array(0)\n          };\n        }\n\n        this.isOpenType = false;\n      }\n\n      if (!tables['maxp']) {\n        throw new _util.FormatError('Required \"maxp\" table is not found');\n      }\n\n      font.pos = (font.start || 0) + tables['maxp'].offset;\n      var version = font.getInt32();\n      var numGlyphs = font.getUint16();\n      var numGlyphsOut = numGlyphs + 1;\n      var dupFirstEntry = true;\n\n      if (numGlyphsOut > 0xFFFF) {\n        dupFirstEntry = false;\n        numGlyphsOut = numGlyphs;\n        (0, _util.warn)('Not enough space in glyfs to duplicate first glyph.');\n      }\n\n      var maxFunctionDefs = 0;\n      var maxSizeOfInstructions = 0;\n\n      if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n        font.pos += 8;\n        var maxZones = font.getUint16();\n\n        if (maxZones > 2) {\n          tables['maxp'].data[14] = 0;\n          tables['maxp'].data[15] = 2;\n        }\n\n        font.pos += 4;\n        maxFunctionDefs = font.getUint16();\n        font.pos += 4;\n        maxSizeOfInstructions = font.getUint16();\n      }\n\n      tables['maxp'].data[4] = numGlyphsOut >> 8;\n      tables['maxp'].data[5] = numGlyphsOut & 255;\n      var hintsValid = sanitizeTTPrograms(tables['fpgm'], tables['prep'], tables['cvt '], maxFunctionDefs);\n\n      if (!hintsValid) {\n        delete tables['fpgm'];\n        delete tables['prep'];\n        delete tables['cvt '];\n      }\n\n      sanitizeMetrics(font, tables['hhea'], tables['hmtx'], numGlyphsOut);\n\n      if (!tables['head']) {\n        throw new _util.FormatError('Required \"head\" table is not found');\n      }\n\n      sanitizeHead(tables['head'], numGlyphs, isTrueType ? tables['loca'].length : 0);\n      var missingGlyphs = Object.create(null);\n\n      if (isTrueType) {\n        var isGlyphLocationsLong = int16(tables['head'].data[50], tables['head'].data[51]);\n        var glyphsInfo = sanitizeGlyphLocations(tables['loca'], tables['glyf'], numGlyphs, isGlyphLocationsLong, hintsValid, dupFirstEntry, maxSizeOfInstructions);\n        missingGlyphs = glyphsInfo.missingGlyphs;\n\n        if (version >= 0x00010000 && tables['maxp'].length >= 22) {\n          tables['maxp'].data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n          tables['maxp'].data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n        }\n      }\n\n      if (!tables['hhea']) {\n        throw new _util.FormatError('Required \"hhea\" table is not found');\n      }\n\n      if (tables['hhea'].data[10] === 0 && tables['hhea'].data[11] === 0) {\n        tables['hhea'].data[10] = 0xFF;\n        tables['hhea'].data[11] = 0xFF;\n      }\n\n      var metricsOverride = {\n        unitsPerEm: int16(tables['head'].data[18], tables['head'].data[19]),\n        yMax: int16(tables['head'].data[42], tables['head'].data[43]),\n        yMin: signedInt16(tables['head'].data[38], tables['head'].data[39]),\n        ascent: int16(tables['hhea'].data[4], tables['hhea'].data[5]),\n        descent: signedInt16(tables['hhea'].data[6], tables['hhea'].data[7])\n      };\n      this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n      this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n\n      if (tables['post']) {\n        readPostScriptTable(tables['post'], properties, numGlyphs);\n      }\n\n      tables['post'] = {\n        tag: 'post',\n        data: createPostTable(properties)\n      };\n      var charCodeToGlyphId = [],\n          charCode;\n\n      function hasGlyph(glyphId) {\n        return !missingGlyphs[glyphId];\n      }\n\n      if (properties.composite) {\n        var cidToGidMap = properties.cidToGidMap || [];\n        var isCidToGidMapEmpty = cidToGidMap.length === 0;\n        properties.cMap.forEach(function (charCode, cid) {\n          if (cid > 0xffff) {\n            throw new _util.FormatError('Max size of CID is 65,535');\n          }\n\n          var glyphId = -1;\n\n          if (isCidToGidMapEmpty) {\n            glyphId = cid;\n          } else if (cidToGidMap[cid] !== undefined) {\n            glyphId = cidToGidMap[cid];\n          }\n\n          if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        });\n      } else {\n        var cmapTable = readCmapTable(tables['cmap'], font, this.isSymbolicFont, properties.hasEncoding);\n        var cmapPlatformId = cmapTable.platformId;\n        var cmapEncodingId = cmapTable.encodingId;\n        var cmapMappings = cmapTable.mappings;\n        var cmapMappingsLength = cmapMappings.length;\n\n        if (properties.hasEncoding && (cmapPlatformId === 3 && cmapEncodingId === 1 || cmapPlatformId === 1 && cmapEncodingId === 0) || cmapPlatformId === -1 && cmapEncodingId === -1 && !!(0, _encodings.getEncoding)(properties.baseEncodingName)) {\n          var baseEncoding = [];\n\n          if (properties.baseEncodingName === 'MacRomanEncoding' || properties.baseEncodingName === 'WinAnsiEncoding') {\n            baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n          }\n\n          var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n\n          for (charCode = 0; charCode < 256; charCode++) {\n            var glyphName, standardGlyphName;\n\n            if (this.differences && charCode in this.differences) {\n              glyphName = this.differences[charCode];\n            } else if (charCode in baseEncoding && baseEncoding[charCode] !== '') {\n              glyphName = baseEncoding[charCode];\n            } else {\n              glyphName = _encodings.StandardEncoding[charCode];\n            }\n\n            if (!glyphName) {\n              continue;\n            }\n\n            standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n            var unicodeOrCharCode;\n\n            if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n              unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n            } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n              unicodeOrCharCode = _encodings.MacRomanEncoding.indexOf(standardGlyphName);\n            }\n\n            var found = false;\n\n            for (var i = 0; i < cmapMappingsLength; ++i) {\n              if (cmapMappings[i].charCode !== unicodeOrCharCode) {\n                continue;\n              }\n\n              charCodeToGlyphId[charCode] = cmapMappings[i].glyphId;\n              found = true;\n              break;\n            }\n\n            if (!found && properties.glyphNames) {\n              var glyphId = properties.glyphNames.indexOf(glyphName);\n\n              if (glyphId === -1 && standardGlyphName !== glyphName) {\n                glyphId = properties.glyphNames.indexOf(standardGlyphName);\n              }\n\n              if (glyphId > 0 && hasGlyph(glyphId)) {\n                charCodeToGlyphId[charCode] = glyphId;\n              }\n            }\n          }\n        } else if (cmapPlatformId === 0 && cmapEncodingId === 0) {\n          for (var _i2 = 0; _i2 < cmapMappingsLength; ++_i2) {\n            charCodeToGlyphId[cmapMappings[_i2].charCode] = cmapMappings[_i2].glyphId;\n          }\n        } else {\n          for (var _i3 = 0; _i3 < cmapMappingsLength; ++_i3) {\n            charCode = cmapMappings[_i3].charCode;\n\n            if (cmapPlatformId === 3 && charCode >= 0xF000 && charCode <= 0xF0FF) {\n              charCode &= 0xFF;\n            }\n\n            charCodeToGlyphId[charCode] = cmapMappings[_i3].glyphId;\n          }\n        }\n      }\n\n      if (charCodeToGlyphId.length === 0) {\n        charCodeToGlyphId[0] = 0;\n      }\n\n      var glyphZeroId = numGlyphsOut - 1;\n\n      if (!dupFirstEntry) {\n        glyphZeroId = 0;\n      }\n\n      var newMapping = adjustMapping(charCodeToGlyphId, hasGlyph, glyphZeroId);\n      this.toFontChar = newMapping.toFontChar;\n      tables['cmap'] = {\n        tag: 'cmap',\n        data: createCmapTable(newMapping.charCodeToGlyphId, numGlyphsOut)\n      };\n\n      if (!tables['OS/2'] || !validateOS2Table(tables['OS/2'])) {\n        tables['OS/2'] = {\n          tag: 'OS/2',\n          data: createOS2Table(properties, newMapping.charCodeToGlyphId, metricsOverride)\n        };\n      }\n\n      if (!isTrueType) {\n        try {\n          cffFile = new _stream.Stream(tables['CFF '].data);\n          var parser = new _cff_parser.CFFParser(cffFile, properties, SEAC_ANALYSIS_ENABLED);\n          cff = parser.parse();\n          cff.duplicateFirstGlyph();\n          var compiler = new _cff_parser.CFFCompiler(cff);\n          tables['CFF '].data = compiler.compile();\n        } catch (e) {\n          (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n        }\n      }\n\n      if (!tables['name']) {\n        tables['name'] = {\n          tag: 'name',\n          data: createNameTable(this.name)\n        };\n      } else {\n        var namePrototype = readNameTable(tables['name']);\n        tables['name'].data = createNameTable(name, namePrototype);\n      }\n\n      var builder = new OpenTypeFileBuilder(header.version);\n\n      for (var tableTag in tables) {\n        builder.addTable(tableTag, tables[tableTag].data);\n      }\n\n      return builder.toArray();\n    },\n    convert: function Font_convert(fontName, font, properties) {\n      properties.fixedPitch = false;\n\n      if (properties.builtInEncoding) {\n        adjustToUnicode(properties, properties.builtInEncoding);\n      }\n\n      var glyphZeroId = 1;\n\n      if (font instanceof CFFFont) {\n        glyphZeroId = font.numGlyphs - 1;\n      }\n\n      var mapping = font.getGlyphMapping(properties);\n      var newMapping = adjustMapping(mapping, font.hasGlyphId.bind(font), glyphZeroId);\n      this.toFontChar = newMapping.toFontChar;\n      var numGlyphs = font.numGlyphs;\n\n      function getCharCodes(charCodeToGlyphId, glyphId) {\n        var charCodes = null;\n\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            if (!charCodes) {\n              charCodes = [];\n            }\n\n            charCodes.push(charCode | 0);\n          }\n        }\n\n        return charCodes;\n      }\n\n      function createCharCode(charCodeToGlyphId, glyphId) {\n        for (var charCode in charCodeToGlyphId) {\n          if (glyphId === charCodeToGlyphId[charCode]) {\n            return charCode | 0;\n          }\n        }\n\n        newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] = glyphId;\n        return newMapping.nextAvailableFontCharCode++;\n      }\n\n      var seacs = font.seacs;\n\n      if (SEAC_ANALYSIS_ENABLED && seacs && seacs.length) {\n        var matrix = properties.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n        var charset = font.getCharset();\n        var seacMap = Object.create(null);\n\n        for (var glyphId in seacs) {\n          glyphId |= 0;\n          var seac = seacs[glyphId];\n          var baseGlyphName = _encodings.StandardEncoding[seac[2]];\n          var accentGlyphName = _encodings.StandardEncoding[seac[3]];\n          var baseGlyphId = charset.indexOf(baseGlyphName);\n          var accentGlyphId = charset.indexOf(accentGlyphName);\n\n          if (baseGlyphId < 0 || accentGlyphId < 0) {\n            continue;\n          }\n\n          var accentOffset = {\n            x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n            y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5]\n          };\n          var charCodes = getCharCodes(mapping, glyphId);\n\n          if (!charCodes) {\n            continue;\n          }\n\n          for (var i = 0, ii = charCodes.length; i < ii; i++) {\n            var charCode = charCodes[i];\n            var charCodeToGlyphId = newMapping.charCodeToGlyphId;\n            var baseFontCharCode = createCharCode(charCodeToGlyphId, baseGlyphId);\n            var accentFontCharCode = createCharCode(charCodeToGlyphId, accentGlyphId);\n            seacMap[charCode] = {\n              baseFontCharCode: baseFontCharCode,\n              accentFontCharCode: accentFontCharCode,\n              accentOffset: accentOffset\n            };\n          }\n        }\n\n        properties.seacMap = seacMap;\n      }\n\n      var unitsPerEm = 1 / (properties.fontMatrix || _util.FONT_IDENTITY_MATRIX)[0];\n      var builder = new OpenTypeFileBuilder('\\x4F\\x54\\x54\\x4F');\n      builder.addTable('CFF ', font.data);\n      builder.addTable('OS/2', createOS2Table(properties, newMapping.charCodeToGlyphId));\n      builder.addTable('cmap', createCmapTable(newMapping.charCodeToGlyphId, numGlyphs));\n      builder.addTable('head', '\\x00\\x01\\x00\\x00' + '\\x00\\x00\\x10\\x00' + '\\x00\\x00\\x00\\x00' + '\\x5F\\x0F\\x3C\\xF5' + '\\x00\\x00' + safeString16(unitsPerEm) + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27' + '\\x00\\x00' + safeString16(properties.descent) + '\\x0F\\xFF' + safeString16(properties.ascent) + string16(properties.italicAngle ? 2 : 0) + '\\x00\\x11' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00');\n      builder.addTable('hhea', '\\x00\\x01\\x00\\x00' + safeString16(properties.ascent) + safeString16(properties.descent) + '\\x00\\x00' + '\\xFF\\xFF' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + safeString16(properties.capHeight) + safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + '\\x00\\x00' + string16(numGlyphs));\n      builder.addTable('hmtx', function fontFieldsHmtx() {\n        var charstrings = font.charstrings;\n        var cffWidths = font.cff ? font.cff.widths : null;\n        var hmtx = '\\x00\\x00\\x00\\x00';\n\n        for (var i = 1, ii = numGlyphs; i < ii; i++) {\n          var width = 0;\n\n          if (charstrings) {\n            var charstring = charstrings[i - 1];\n            width = 'width' in charstring ? charstring.width : 0;\n          } else if (cffWidths) {\n            width = Math.ceil(cffWidths[i] || 0);\n          }\n\n          hmtx += string16(width) + string16(0);\n        }\n\n        return hmtx;\n      }());\n      builder.addTable('maxp', '\\x00\\x00\\x50\\x00' + string16(numGlyphs));\n      builder.addTable('name', createNameTable(fontName));\n      builder.addTable('post', createPostTable(properties));\n      return builder.toArray();\n    },\n\n    get spaceWidth() {\n      if ('_shadowWidth' in this) {\n        return this._shadowWidth;\n      }\n\n      var possibleSpaceReplacements = ['space', 'minus', 'one', 'i', 'I'];\n      var width;\n\n      for (var i = 0, ii = possibleSpaceReplacements.length; i < ii; i++) {\n        var glyphName = possibleSpaceReplacements[i];\n\n        if (glyphName in this.widths) {\n          width = this.widths[glyphName];\n          break;\n        }\n\n        var glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        var glyphUnicode = glyphsUnicodeMap[glyphName];\n        var charcode = 0;\n\n        if (this.composite) {\n          if (this.cMap.contains(glyphUnicode)) {\n            charcode = this.cMap.lookup(glyphUnicode);\n          }\n        }\n\n        if (!charcode && this.toUnicode) {\n          charcode = this.toUnicode.charCodeOf(glyphUnicode);\n        }\n\n        if (charcode <= 0) {\n          charcode = glyphUnicode;\n        }\n\n        width = this.widths[charcode];\n\n        if (width) {\n          break;\n        }\n      }\n\n      width = width || this.defaultWidth;\n      this._shadowWidth = width;\n      return width;\n    },\n\n    charToGlyph: function Font_charToGlyph(charcode, isSpace) {\n      var fontCharCode, width, operatorListId;\n      var widthCode = charcode;\n\n      if (this.cMap && this.cMap.contains(charcode)) {\n        widthCode = this.cMap.lookup(charcode);\n      }\n\n      width = this.widths[widthCode];\n      width = (0, _util.isNum)(width) ? width : this.defaultWidth;\n      var vmetric = this.vmetrics && this.vmetrics[widthCode];\n      var unicode = this.toUnicode.get(charcode) || this.fallbackToUnicode.get(charcode) || charcode;\n\n      if (typeof unicode === 'number') {\n        unicode = String.fromCharCode(unicode);\n      }\n\n      var isInFont = charcode in this.toFontChar;\n      fontCharCode = this.toFontChar[charcode] || charcode;\n\n      if (this.missingFile) {\n        fontCharCode = (0, _unicode.mapSpecialUnicodeValues)(fontCharCode);\n      }\n\n      if (this.isType3Font) {\n        operatorListId = fontCharCode;\n      }\n\n      var accent = null;\n\n      if (this.seacMap && this.seacMap[charcode]) {\n        isInFont = true;\n        var seac = this.seacMap[charcode];\n        fontCharCode = seac.baseFontCharCode;\n        accent = {\n          fontChar: String.fromCodePoint(seac.accentFontCharCode),\n          offset: seac.accentOffset\n        };\n      }\n\n      var fontChar = typeof fontCharCode === 'number' ? String.fromCodePoint(fontCharCode) : '';\n      var glyph = this.glyphCache[charcode];\n\n      if (!glyph || !glyph.matchesForCache(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont)) {\n        glyph = new Glyph(fontChar, unicode, accent, width, vmetric, operatorListId, isSpace, isInFont);\n        this.glyphCache[charcode] = glyph;\n      }\n\n      return glyph;\n    },\n    charsToGlyphs: function Font_charsToGlyphs(chars) {\n      var charsCache = this.charsCache;\n      var glyphs, glyph, charcode;\n\n      if (charsCache) {\n        glyphs = charsCache[chars];\n\n        if (glyphs) {\n          return glyphs;\n        }\n      }\n\n      if (!charsCache) {\n        charsCache = this.charsCache = Object.create(null);\n      }\n\n      glyphs = [];\n      var charsCacheKey = chars;\n      var i = 0,\n          ii;\n\n      if (this.cMap) {\n        var c = Object.create(null);\n\n        while (i < chars.length) {\n          this.cMap.readCharCode(chars, i, c);\n          charcode = c.charcode;\n          var length = c.length;\n          i += length;\n          var isSpace = length === 1 && chars.charCodeAt(i - 1) === 0x20;\n          glyph = this.charToGlyph(charcode, isSpace);\n          glyphs.push(glyph);\n        }\n      } else {\n        for (i = 0, ii = chars.length; i < ii; ++i) {\n          charcode = chars.charCodeAt(i);\n          glyph = this.charToGlyph(charcode, charcode === 0x20);\n          glyphs.push(glyph);\n        }\n      }\n\n      return charsCache[charsCacheKey] = glyphs;\n    },\n\n    get glyphCacheValues() {\n      return Object.values(this.glyphCache);\n    }\n\n  };\n  return Font;\n}();\n\nexports.Font = Font;\n\nvar ErrorFont = function ErrorFontClosure() {\n  function ErrorFont(error) {\n    this.error = error;\n    this.loadedName = 'g_font_error';\n    this.missingFile = true;\n  }\n\n  ErrorFont.prototype = {\n    charsToGlyphs: function ErrorFont_charsToGlyphs() {\n      return [];\n    },\n    exportData: function ErrorFont_exportData() {\n      return {\n        error: this.error\n      };\n    }\n  };\n  return ErrorFont;\n}();\n\nexports.ErrorFont = ErrorFont;\n\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n  var charCodeToGlyphId = Object.create(null);\n  var glyphId, charCode, baseEncoding;\n  var isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n  if (properties.baseEncodingName) {\n    baseEncoding = (0, _encodings.getEncoding)(properties.baseEncodingName);\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  } else if (isSymbolicFont) {\n    for (charCode in builtInEncoding) {\n      charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n    }\n  } else {\n    baseEncoding = _encodings.StandardEncoding;\n\n    for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n      glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  var differences = properties.differences,\n      glyphsUnicodeMap;\n\n  if (differences) {\n    for (charCode in differences) {\n      var glyphName = differences[charCode];\n      glyphId = glyphNames.indexOf(glyphName);\n\n      if (glyphId === -1) {\n        if (!glyphsUnicodeMap) {\n          glyphsUnicodeMap = (0, _glyphlist.getGlyphsUnicode)();\n        }\n\n        var standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n\n        if (standardGlyphName !== glyphName) {\n          glyphId = glyphNames.indexOf(standardGlyphName);\n        }\n      }\n\n      if (glyphId >= 0) {\n        charCodeToGlyphId[charCode] = glyphId;\n      } else {\n        charCodeToGlyphId[charCode] = 0;\n      }\n    }\n  }\n\n  return charCodeToGlyphId;\n}\n\nvar Type1Font = function Type1FontClosure() {\n  function findBlock(streamBytes, signature, startIndex) {\n    var streamBytesLength = streamBytes.length;\n    var signatureLength = signature.length;\n    var scanLength = streamBytesLength - signatureLength;\n    var i = startIndex,\n        j,\n        found = false;\n\n    while (i < scanLength) {\n      j = 0;\n\n      while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n        j++;\n      }\n\n      if (j >= signatureLength) {\n        i += j;\n\n        while (i < streamBytesLength && (0, _util.isSpace)(streamBytes[i])) {\n          i++;\n        }\n\n        found = true;\n        break;\n      }\n\n      i++;\n    }\n\n    return {\n      found: found,\n      length: i\n    };\n  }\n\n  function getHeaderBlock(stream, suggestedLength) {\n    var EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n    var streamStartPos = stream.pos;\n    var headerBytes, headerBytesLength, block;\n\n    try {\n      headerBytes = stream.getBytes(suggestedLength);\n      headerBytesLength = headerBytes.length;\n    } catch (ex) {\n      if (ex instanceof _util.MissingDataException) {\n        throw ex;\n      }\n    }\n\n    if (headerBytesLength === suggestedLength) {\n      block = findBlock(headerBytes, EEXEC_SIGNATURE, suggestedLength - 2 * EEXEC_SIGNATURE.length);\n\n      if (block.found && block.length === suggestedLength) {\n        return {\n          stream: new _stream.Stream(headerBytes),\n          length: suggestedLength\n        };\n      }\n    }\n\n    (0, _util.warn)('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n    stream.pos = streamStartPos;\n    var SCAN_BLOCK_LENGTH = 2048;\n    var actualLength;\n\n    while (true) {\n      var scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n      block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n      if (block.length === 0) {\n        break;\n      }\n\n      stream.pos += block.length;\n\n      if (block.found) {\n        actualLength = stream.pos - streamStartPos;\n        break;\n      }\n    }\n\n    stream.pos = streamStartPos;\n\n    if (actualLength) {\n      return {\n        stream: new _stream.Stream(stream.getBytes(actualLength)),\n        length: actualLength\n      };\n    }\n\n    (0, _util.warn)('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n    return {\n      stream: new _stream.Stream(stream.getBytes(suggestedLength)),\n      length: suggestedLength\n    };\n  }\n\n  function getEexecBlock(stream, suggestedLength) {\n    var eexecBytes = stream.getBytes();\n    return {\n      stream: new _stream.Stream(eexecBytes),\n      length: eexecBytes.length\n    };\n  }\n\n  function Type1Font(name, file, properties) {\n    var PFB_HEADER_SIZE = 6;\n    var headerBlockLength = properties.length1;\n    var eexecBlockLength = properties.length2;\n    var pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n    var pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n\n    if (pfbHeaderPresent) {\n      file.skip(PFB_HEADER_SIZE);\n      headerBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    var headerBlock = getHeaderBlock(file, headerBlockLength);\n    var headerBlockParser = new _type1_parser.Type1Parser(headerBlock.stream, false, SEAC_ANALYSIS_ENABLED);\n    headerBlockParser.extractFontHeader(properties);\n\n    if (pfbHeaderPresent) {\n      pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n      eexecBlockLength = pfbHeader[5] << 24 | pfbHeader[4] << 16 | pfbHeader[3] << 8 | pfbHeader[2];\n    }\n\n    var eexecBlock = getEexecBlock(file, eexecBlockLength);\n    var eexecBlockParser = new _type1_parser.Type1Parser(eexecBlock.stream, true, SEAC_ANALYSIS_ENABLED);\n    var data = eexecBlockParser.extractFontProgram();\n\n    for (var info in data.properties) {\n      properties[info] = data.properties[info];\n    }\n\n    var charstrings = data.charstrings;\n    var type2Charstrings = this.getType2Charstrings(charstrings);\n    var subrs = this.getType2Subrs(data.subrs);\n    this.charstrings = charstrings;\n    this.data = this.wrap(name, type2Charstrings, this.charstrings, subrs, properties);\n    this.seacs = this.getSeacs(data.charstrings);\n  }\n\n  Type1Font.prototype = {\n    get numGlyphs() {\n      return this.charstrings.length + 1;\n    },\n\n    getCharset: function Type1Font_getCharset() {\n      var charset = ['.notdef'];\n      var charstrings = this.charstrings;\n\n      for (var glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        charset.push(charstrings[glyphId].glyphName);\n      }\n\n      return charset;\n    },\n    getGlyphMapping: function Type1Font_getGlyphMapping(properties) {\n      var charstrings = this.charstrings;\n      var glyphNames = ['.notdef'],\n          glyphId;\n\n      for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n        glyphNames.push(charstrings[glyphId].glyphName);\n      }\n\n      var encoding = properties.builtInEncoding;\n\n      if (encoding) {\n        var builtInEncoding = Object.create(null);\n\n        for (var charCode in encoding) {\n          glyphId = glyphNames.indexOf(encoding[charCode]);\n\n          if (glyphId >= 0) {\n            builtInEncoding[charCode] = glyphId;\n          }\n        }\n      }\n\n      return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n    },\n    hasGlyphId: function Type1Font_hasGlyphID(id) {\n      if (id < 0 || id >= this.numGlyphs) {\n        return false;\n      }\n\n      if (id === 0) {\n        return true;\n      }\n\n      var glyph = this.charstrings[id - 1];\n      return glyph.charstring.length > 0;\n    },\n    getSeacs: function Type1Font_getSeacs(charstrings) {\n      var i, ii;\n      var seacMap = [];\n\n      for (i = 0, ii = charstrings.length; i < ii; i++) {\n        var charstring = charstrings[i];\n\n        if (charstring.seac) {\n          seacMap[i + 1] = charstring.seac;\n        }\n      }\n\n      return seacMap;\n    },\n    getType2Charstrings: function Type1Font_getType2Charstrings(type1Charstrings) {\n      var type2Charstrings = [];\n\n      for (var i = 0, ii = type1Charstrings.length; i < ii; i++) {\n        type2Charstrings.push(type1Charstrings[i].charstring);\n      }\n\n      return type2Charstrings;\n    },\n    getType2Subrs: function Type1Font_getType2Subrs(type1Subrs) {\n      var bias = 0;\n      var count = type1Subrs.length;\n\n      if (count < 1133) {\n        bias = 107;\n      } else if (count < 33769) {\n        bias = 1131;\n      } else {\n        bias = 32768;\n      }\n\n      var type2Subrs = [];\n      var i;\n\n      for (i = 0; i < bias; i++) {\n        type2Subrs.push([0x0B]);\n      }\n\n      for (i = 0; i < count; i++) {\n        type2Subrs.push(type1Subrs[i]);\n      }\n\n      return type2Subrs;\n    },\n    wrap: function Type1Font_wrap(name, glyphs, charstrings, subrs, properties) {\n      var cff = new _cff_parser.CFF();\n      cff.header = new _cff_parser.CFFHeader(1, 0, 4, 4);\n      cff.names = [name];\n      var topDict = new _cff_parser.CFFTopDict();\n      topDict.setByName('version', 391);\n      topDict.setByName('Notice', 392);\n      topDict.setByName('FullName', 393);\n      topDict.setByName('FamilyName', 394);\n      topDict.setByName('Weight', 395);\n      topDict.setByName('Encoding', null);\n      topDict.setByName('FontMatrix', properties.fontMatrix);\n      topDict.setByName('FontBBox', properties.bbox);\n      topDict.setByName('charset', null);\n      topDict.setByName('CharStrings', null);\n      topDict.setByName('Private', null);\n      cff.topDict = topDict;\n      var strings = new _cff_parser.CFFStrings();\n      strings.add('Version 0.11');\n      strings.add('See original notice');\n      strings.add(name);\n      strings.add(name);\n      strings.add('Medium');\n      cff.strings = strings;\n      cff.globalSubrIndex = new _cff_parser.CFFIndex();\n      var count = glyphs.length;\n      var charsetArray = [0];\n      var i, ii;\n\n      for (i = 0; i < count; i++) {\n        var index = _cff_parser.CFFStandardStrings.indexOf(charstrings[i].glyphName);\n\n        if (index === -1) {\n          index = 0;\n        }\n\n        charsetArray.push(index >> 8 & 0xff, index & 0xff);\n      }\n\n      cff.charset = new _cff_parser.CFFCharset(false, 0, [], charsetArray);\n      var charStringsIndex = new _cff_parser.CFFIndex();\n      charStringsIndex.add([0x8B, 0x0E]);\n\n      for (i = 0; i < count; i++) {\n        charStringsIndex.add(glyphs[i]);\n      }\n\n      cff.charStrings = charStringsIndex;\n      var privateDict = new _cff_parser.CFFPrivateDict();\n      privateDict.setByName('Subrs', null);\n      var fields = ['BlueValues', 'OtherBlues', 'FamilyBlues', 'FamilyOtherBlues', 'StemSnapH', 'StemSnapV', 'BlueShift', 'BlueFuzz', 'BlueScale', 'LanguageGroup', 'ExpansionFactor', 'ForceBold', 'StdHW', 'StdVW'];\n\n      for (i = 0, ii = fields.length; i < ii; i++) {\n        var field = fields[i];\n\n        if (!(field in properties.privateData)) {\n          continue;\n        }\n\n        var value = properties.privateData[field];\n\n        if (Array.isArray(value)) {\n          for (var j = value.length - 1; j > 0; j--) {\n            value[j] -= value[j - 1];\n          }\n        }\n\n        privateDict.setByName(field, value);\n      }\n\n      cff.topDict.privateDict = privateDict;\n      var subrIndex = new _cff_parser.CFFIndex();\n\n      for (i = 0, ii = subrs.length; i < ii; i++) {\n        subrIndex.add(subrs[i]);\n      }\n\n      privateDict.subrsIndex = subrIndex;\n      var compiler = new _cff_parser.CFFCompiler(cff);\n      return compiler.compile();\n    }\n  };\n  return Type1Font;\n}();\n\nvar CFFFont = function CFFFontClosure() {\n  function CFFFont(file, properties) {\n    this.properties = properties;\n    var parser = new _cff_parser.CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n    this.cff = parser.parse();\n    this.cff.duplicateFirstGlyph();\n    var compiler = new _cff_parser.CFFCompiler(this.cff);\n    this.seacs = this.cff.seacs;\n\n    try {\n      this.data = compiler.compile();\n    } catch (e) {\n      (0, _util.warn)('Failed to compile font ' + properties.loadedName);\n      this.data = file;\n    }\n  }\n\n  CFFFont.prototype = {\n    get numGlyphs() {\n      return this.cff.charStrings.count;\n    },\n\n    getCharset: function CFFFont_getCharset() {\n      return this.cff.charset.charset;\n    },\n    getGlyphMapping: function CFFFont_getGlyphMapping() {\n      var cff = this.cff;\n      var properties = this.properties;\n      var charsets = cff.charset.charset;\n      var charCodeToGlyphId;\n      var glyphId;\n\n      if (properties.composite) {\n        charCodeToGlyphId = Object.create(null);\n\n        if (cff.isCIDFont) {\n          for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n            var cid = charsets[glyphId];\n            var charCode = properties.cMap.charCodeOf(cid);\n            charCodeToGlyphId[charCode] = glyphId;\n          }\n        } else {\n          for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n            charCodeToGlyphId[glyphId] = glyphId;\n          }\n        }\n\n        return charCodeToGlyphId;\n      }\n\n      var encoding = cff.encoding ? cff.encoding.encoding : null;\n      charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n      return charCodeToGlyphId;\n    },\n    hasGlyphId: function CFFFont_hasGlyphID(id) {\n      return this.cff.hasGlyphId(id);\n    }\n  };\n  return CFFFont;\n}();\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CFFFDSelect = exports.CFFCompiler = exports.CFFPrivateDict = exports.CFFTopDict = exports.CFFCharset = exports.CFFIndex = exports.CFFStrings = exports.CFFHeader = exports.CFF = exports.CFFParser = exports.CFFStandardStrings = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _charsets = __w_pdfjs_require__(175);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar MAX_SUBR_NESTING = 10;\nvar CFFStandardStrings = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall', '001.000', '001.001', '001.002', '001.003', 'Black', 'Bold', 'Book', 'Light', 'Medium', 'Regular', 'Roman', 'Semibold'];\nexports.CFFStandardStrings = CFFStandardStrings;\n\nvar CFFParser = function CFFParserClosure() {\n  var CharstringValidationData = [null, {\n    id: 'hstem',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, null, {\n    id: 'vstem',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'vmoveto',\n    min: 1,\n    stackClearing: true\n  }, {\n    id: 'rlineto',\n    min: 2,\n    resetStack: true\n  }, {\n    id: 'hlineto',\n    min: 1,\n    resetStack: true\n  }, {\n    id: 'vlineto',\n    min: 1,\n    resetStack: true\n  }, {\n    id: 'rrcurveto',\n    min: 6,\n    resetStack: true\n  }, null, {\n    id: 'callsubr',\n    min: 1,\n    undefStack: true\n  }, {\n    id: 'return',\n    min: 0,\n    undefStack: true\n  }, null, null, {\n    id: 'endchar',\n    min: 0,\n    stackClearing: true\n  }, null, null, null, {\n    id: 'hstemhm',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'hintmask',\n    min: 0,\n    stackClearing: true\n  }, {\n    id: 'cntrmask',\n    min: 0,\n    stackClearing: true\n  }, {\n    id: 'rmoveto',\n    min: 2,\n    stackClearing: true\n  }, {\n    id: 'hmoveto',\n    min: 1,\n    stackClearing: true\n  }, {\n    id: 'vstemhm',\n    min: 2,\n    stackClearing: true,\n    stem: true\n  }, {\n    id: 'rcurveline',\n    min: 8,\n    resetStack: true\n  }, {\n    id: 'rlinecurve',\n    min: 8,\n    resetStack: true\n  }, {\n    id: 'vvcurveto',\n    min: 4,\n    resetStack: true\n  }, {\n    id: 'hhcurveto',\n    min: 4,\n    resetStack: true\n  }, null, {\n    id: 'callgsubr',\n    min: 1,\n    undefStack: true\n  }, {\n    id: 'vhcurveto',\n    min: 4,\n    resetStack: true\n  }, {\n    id: 'hvcurveto',\n    min: 4,\n    resetStack: true\n  }];\n  var CharstringValidationData12 = [null, null, null, {\n    id: 'and',\n    min: 2,\n    stackDelta: -1\n  }, {\n    id: 'or',\n    min: 2,\n    stackDelta: -1\n  }, {\n    id: 'not',\n    min: 1,\n    stackDelta: 0\n  }, null, null, null, {\n    id: 'abs',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'add',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] + stack[index - 1];\n    }\n  }, {\n    id: 'sub',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] - stack[index - 1];\n    }\n  }, {\n    id: 'div',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] / stack[index - 1];\n    }\n  }, null, {\n    id: 'neg',\n    min: 1,\n    stackDelta: 0,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 1] = -stack[index - 1];\n    }\n  }, {\n    id: 'eq',\n    min: 2,\n    stackDelta: -1\n  }, null, null, {\n    id: 'drop',\n    min: 1,\n    stackDelta: -1\n  }, null, {\n    id: 'put',\n    min: 2,\n    stackDelta: -2\n  }, {\n    id: 'get',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'ifelse',\n    min: 4,\n    stackDelta: -3\n  }, {\n    id: 'random',\n    min: 0,\n    stackDelta: 1\n  }, {\n    id: 'mul',\n    min: 2,\n    stackDelta: -1,\n    stackFn: function stack_div(stack, index) {\n      stack[index - 2] = stack[index - 2] * stack[index - 1];\n    }\n  }, null, {\n    id: 'sqrt',\n    min: 1,\n    stackDelta: 0\n  }, {\n    id: 'dup',\n    min: 1,\n    stackDelta: 1\n  }, {\n    id: 'exch',\n    min: 2,\n    stackDelta: 0\n  }, {\n    id: 'index',\n    min: 2,\n    stackDelta: 0\n  }, {\n    id: 'roll',\n    min: 3,\n    stackDelta: -2\n  }, null, null, null, {\n    id: 'hflex',\n    min: 7,\n    resetStack: true\n  }, {\n    id: 'flex',\n    min: 13,\n    resetStack: true\n  }, {\n    id: 'hflex1',\n    min: 9,\n    resetStack: true\n  }, {\n    id: 'flex1',\n    min: 11,\n    resetStack: true\n  }];\n\n  function CFFParser(file, properties, seacAnalysisEnabled) {\n    this.bytes = file.getBytes();\n    this.properties = properties;\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n  }\n\n  CFFParser.prototype = {\n    parse: function CFFParser_parse() {\n      var properties = this.properties;\n      var cff = new CFF();\n      this.cff = cff;\n      var header = this.parseHeader();\n      var nameIndex = this.parseIndex(header.endPos);\n      var topDictIndex = this.parseIndex(nameIndex.endPos);\n      var stringIndex = this.parseIndex(topDictIndex.endPos);\n      var globalSubrIndex = this.parseIndex(stringIndex.endPos);\n      var topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n      var topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n      cff.header = header.obj;\n      cff.names = this.parseNameIndex(nameIndex.obj);\n      cff.strings = this.parseStringIndex(stringIndex.obj);\n      cff.topDict = topDict;\n      cff.globalSubrIndex = globalSubrIndex.obj;\n      this.parsePrivateDict(cff.topDict);\n      cff.isCIDFont = topDict.hasName('ROS');\n      var charStringOffset = topDict.getByName('CharStrings');\n      var charStringIndex = this.parseIndex(charStringOffset).obj;\n      var fontMatrix = topDict.getByName('FontMatrix');\n\n      if (fontMatrix) {\n        properties.fontMatrix = fontMatrix;\n      }\n\n      var fontBBox = topDict.getByName('FontBBox');\n\n      if (fontBBox) {\n        properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n        properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n        properties.ascentScaled = true;\n      }\n\n      var charset, encoding;\n\n      if (cff.isCIDFont) {\n        var fdArrayIndex = this.parseIndex(topDict.getByName('FDArray')).obj;\n\n        for (var i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n          var dictRaw = fdArrayIndex.get(i);\n          var fontDict = this.createDict(CFFTopDict, this.parseDict(dictRaw), cff.strings);\n          this.parsePrivateDict(fontDict);\n          cff.fdArray.push(fontDict);\n        }\n\n        encoding = null;\n        charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, true);\n        cff.fdSelect = this.parseFDSelect(topDict.getByName('FDSelect'), charStringIndex.count);\n      } else {\n        charset = this.parseCharsets(topDict.getByName('charset'), charStringIndex.count, cff.strings, false);\n        encoding = this.parseEncoding(topDict.getByName('Encoding'), properties, cff.strings, charset.charset);\n      }\n\n      cff.charset = charset;\n      cff.encoding = encoding;\n      var charStringsAndSeacs = this.parseCharStrings({\n        charStrings: charStringIndex,\n        localSubrIndex: topDict.privateDict.subrsIndex,\n        globalSubrIndex: globalSubrIndex.obj,\n        fdSelect: cff.fdSelect,\n        fdArray: cff.fdArray,\n        privateDict: topDict.privateDict\n      });\n      cff.charStrings = charStringsAndSeacs.charStrings;\n      cff.seacs = charStringsAndSeacs.seacs;\n      cff.widths = charStringsAndSeacs.widths;\n      return cff;\n    },\n    parseHeader: function CFFParser_parseHeader() {\n      var bytes = this.bytes;\n      var bytesLength = bytes.length;\n      var offset = 0;\n\n      while (offset < bytesLength && bytes[offset] !== 1) {\n        ++offset;\n      }\n\n      if (offset >= bytesLength) {\n        throw new _util.FormatError('Invalid CFF header');\n      }\n\n      if (offset !== 0) {\n        (0, _util.info)('cff data is shifted');\n        bytes = bytes.subarray(offset);\n        this.bytes = bytes;\n      }\n\n      var major = bytes[0];\n      var minor = bytes[1];\n      var hdrSize = bytes[2];\n      var offSize = bytes[3];\n      var header = new CFFHeader(major, minor, hdrSize, offSize);\n      return {\n        obj: header,\n        endPos: hdrSize\n      };\n    },\n    parseDict: function CFFParser_parseDict(dict) {\n      var pos = 0;\n\n      function parseOperand() {\n        var value = dict[pos++];\n\n        if (value === 30) {\n          return parseFloatOperand();\n        } else if (value === 28) {\n          value = dict[pos++];\n          value = (value << 24 | dict[pos++] << 16) >> 16;\n          return value;\n        } else if (value === 29) {\n          value = dict[pos++];\n          value = value << 8 | dict[pos++];\n          value = value << 8 | dict[pos++];\n          value = value << 8 | dict[pos++];\n          return value;\n        } else if (value >= 32 && value <= 246) {\n          return value - 139;\n        } else if (value >= 247 && value <= 250) {\n          return (value - 247) * 256 + dict[pos++] + 108;\n        } else if (value >= 251 && value <= 254) {\n          return -((value - 251) * 256) - dict[pos++] - 108;\n        }\n\n        (0, _util.warn)('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n        return NaN;\n      }\n\n      function parseFloatOperand() {\n        var str = '';\n        var eof = 15;\n        var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', 'E', 'E-', null, '-'];\n        var length = dict.length;\n\n        while (pos < length) {\n          var b = dict[pos++];\n          var b1 = b >> 4;\n          var b2 = b & 15;\n\n          if (b1 === eof) {\n            break;\n          }\n\n          str += lookup[b1];\n\n          if (b2 === eof) {\n            break;\n          }\n\n          str += lookup[b2];\n        }\n\n        return parseFloat(str);\n      }\n\n      var operands = [];\n      var entries = [];\n      pos = 0;\n      var end = dict.length;\n\n      while (pos < end) {\n        var b = dict[pos];\n\n        if (b <= 21) {\n          if (b === 12) {\n            b = b << 8 | dict[++pos];\n          }\n\n          entries.push([b, operands]);\n          operands = [];\n          ++pos;\n        } else {\n          operands.push(parseOperand());\n        }\n      }\n\n      return entries;\n    },\n    parseIndex: function CFFParser_parseIndex(pos) {\n      var cffIndex = new CFFIndex();\n      var bytes = this.bytes;\n      var count = bytes[pos++] << 8 | bytes[pos++];\n      var offsets = [];\n      var end = pos;\n      var i, ii;\n\n      if (count !== 0) {\n        var offsetSize = bytes[pos++];\n        var startPos = pos + (count + 1) * offsetSize - 1;\n\n        for (i = 0, ii = count + 1; i < ii; ++i) {\n          var offset = 0;\n\n          for (var j = 0; j < offsetSize; ++j) {\n            offset <<= 8;\n            offset += bytes[pos++];\n          }\n\n          offsets.push(startPos + offset);\n        }\n\n        end = offsets[count];\n      }\n\n      for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n        var offsetStart = offsets[i];\n        var offsetEnd = offsets[i + 1];\n        cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n      }\n\n      return {\n        obj: cffIndex,\n        endPos: end\n      };\n    },\n    parseNameIndex: function CFFParser_parseNameIndex(index) {\n      var names = [];\n\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var name = index.get(i);\n        names.push((0, _util.bytesToString)(name));\n      }\n\n      return names;\n    },\n    parseStringIndex: function CFFParser_parseStringIndex(index) {\n      var strings = new CFFStrings();\n\n      for (var i = 0, ii = index.count; i < ii; ++i) {\n        var data = index.get(i);\n        strings.add((0, _util.bytesToString)(data));\n      }\n\n      return strings;\n    },\n    createDict: function CFFParser_createDict(Type, dict, strings) {\n      var cffDict = new Type(strings);\n\n      for (var i = 0, ii = dict.length; i < ii; ++i) {\n        var pair = dict[i];\n        var key = pair[0];\n        var value = pair[1];\n        cffDict.setByKey(key, value);\n      }\n\n      return cffDict;\n    },\n    parseCharString: function CFFParser_parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n      if (!data || state.callDepth > MAX_SUBR_NESTING) {\n        return false;\n      }\n\n      var stackSize = state.stackSize;\n      var stack = state.stack;\n      var length = data.length;\n\n      for (var j = 0; j < length;) {\n        var value = data[j++];\n        var validationCommand = null;\n\n        if (value === 12) {\n          var q = data[j++];\n\n          if (q === 0) {\n            data[j - 2] = 139;\n            data[j - 1] = 22;\n            stackSize = 0;\n          } else {\n            validationCommand = CharstringValidationData12[q];\n          }\n        } else if (value === 28) {\n          stack[stackSize] = (data[j] << 24 | data[j + 1] << 16) >> 16;\n          j += 2;\n          stackSize++;\n        } else if (value === 14) {\n          if (stackSize >= 4) {\n            stackSize -= 4;\n\n            if (this.seacAnalysisEnabled) {\n              state.seac = stack.slice(stackSize, stackSize + 4);\n              return false;\n            }\n          }\n\n          validationCommand = CharstringValidationData[value];\n        } else if (value >= 32 && value <= 246) {\n          stack[stackSize] = value - 139;\n          stackSize++;\n        } else if (value >= 247 && value <= 254) {\n          stack[stackSize] = value < 251 ? (value - 247 << 8) + data[j] + 108 : -(value - 251 << 8) - data[j] - 108;\n          j++;\n          stackSize++;\n        } else if (value === 255) {\n          stack[stackSize] = (data[j] << 24 | data[j + 1] << 16 | data[j + 2] << 8 | data[j + 3]) / 65536;\n          j += 4;\n          stackSize++;\n        } else if (value === 19 || value === 20) {\n          state.hints += stackSize >> 1;\n          j += state.hints + 7 >> 3;\n          stackSize %= 2;\n          validationCommand = CharstringValidationData[value];\n        } else if (value === 10 || value === 29) {\n          var subrsIndex;\n\n          if (value === 10) {\n            subrsIndex = localSubrIndex;\n          } else {\n            subrsIndex = globalSubrIndex;\n          }\n\n          if (!subrsIndex) {\n            validationCommand = CharstringValidationData[value];\n            (0, _util.warn)('Missing subrsIndex for ' + validationCommand.id);\n            return false;\n          }\n\n          var bias = 32768;\n\n          if (subrsIndex.count < 1240) {\n            bias = 107;\n          } else if (subrsIndex.count < 33900) {\n            bias = 1131;\n          }\n\n          var subrNumber = stack[--stackSize] + bias;\n\n          if (subrNumber < 0 || subrNumber >= subrsIndex.count || isNaN(subrNumber)) {\n            validationCommand = CharstringValidationData[value];\n            (0, _util.warn)('Out of bounds subrIndex for ' + validationCommand.id);\n            return false;\n          }\n\n          state.stackSize = stackSize;\n          state.callDepth++;\n          var valid = this.parseCharString(state, subrsIndex.get(subrNumber), localSubrIndex, globalSubrIndex);\n\n          if (!valid) {\n            return false;\n          }\n\n          state.callDepth--;\n          stackSize = state.stackSize;\n          continue;\n        } else if (value === 11) {\n          state.stackSize = stackSize;\n          return true;\n        } else {\n          validationCommand = CharstringValidationData[value];\n        }\n\n        if (validationCommand) {\n          if (validationCommand.stem) {\n            state.hints += stackSize >> 1;\n\n            if (value === 3 || value === 23) {\n              state.hasVStems = true;\n            } else if (state.hasVStems && (value === 1 || value === 18)) {\n              (0, _util.warn)('CFF stem hints are in wrong order');\n              data[j - 1] = value === 1 ? 3 : 23;\n            }\n          }\n\n          if ('min' in validationCommand) {\n            if (!state.undefStack && stackSize < validationCommand.min) {\n              (0, _util.warn)('Not enough parameters for ' + validationCommand.id + '; actual: ' + stackSize + ', expected: ' + validationCommand.min);\n              return false;\n            }\n          }\n\n          if (state.firstStackClearing && validationCommand.stackClearing) {\n            state.firstStackClearing = false;\n            stackSize -= validationCommand.min;\n\n            if (stackSize >= 2 && validationCommand.stem) {\n              stackSize %= 2;\n            } else if (stackSize > 1) {\n              (0, _util.warn)('Found too many parameters for stack-clearing command');\n            }\n\n            if (stackSize > 0 && stack[stackSize - 1] >= 0) {\n              state.width = stack[stackSize - 1];\n            }\n          }\n\n          if ('stackDelta' in validationCommand) {\n            if ('stackFn' in validationCommand) {\n              validationCommand.stackFn(stack, stackSize);\n            }\n\n            stackSize += validationCommand.stackDelta;\n          } else if (validationCommand.stackClearing) {\n            stackSize = 0;\n          } else if (validationCommand.resetStack) {\n            stackSize = 0;\n            state.undefStack = false;\n          } else if (validationCommand.undefStack) {\n            stackSize = 0;\n            state.undefStack = true;\n            state.firstStackClearing = false;\n          }\n        }\n      }\n\n      state.stackSize = stackSize;\n      return true;\n    },\n    parseCharStrings: function parseCharStrings(_ref) {\n      var charStrings = _ref.charStrings,\n          localSubrIndex = _ref.localSubrIndex,\n          globalSubrIndex = _ref.globalSubrIndex,\n          fdSelect = _ref.fdSelect,\n          fdArray = _ref.fdArray,\n          privateDict = _ref.privateDict;\n      var seacs = [];\n      var widths = [];\n      var count = charStrings.count;\n\n      for (var i = 0; i < count; i++) {\n        var charstring = charStrings.get(i);\n        var state = {\n          callDepth: 0,\n          stackSize: 0,\n          stack: [],\n          undefStack: true,\n          hints: 0,\n          firstStackClearing: true,\n          seac: null,\n          width: null,\n          hasVStems: false\n        };\n        var valid = true;\n        var localSubrToUse = null;\n        var privateDictToUse = privateDict;\n\n        if (fdSelect && fdArray.length) {\n          var fdIndex = fdSelect.getFDIndex(i);\n\n          if (fdIndex === -1) {\n            (0, _util.warn)('Glyph index is not in fd select.');\n            valid = false;\n          }\n\n          if (fdIndex >= fdArray.length) {\n            (0, _util.warn)('Invalid fd index for glyph index.');\n            valid = false;\n          }\n\n          if (valid) {\n            privateDictToUse = fdArray[fdIndex].privateDict;\n            localSubrToUse = privateDictToUse.subrsIndex;\n          }\n        } else if (localSubrIndex) {\n          localSubrToUse = localSubrIndex;\n        }\n\n        if (valid) {\n          valid = this.parseCharString(state, charstring, localSubrToUse, globalSubrIndex);\n        }\n\n        if (state.width !== null) {\n          var nominalWidth = privateDictToUse.getByName('nominalWidthX');\n          widths[i] = nominalWidth + state.width;\n        } else {\n          var defaultWidth = privateDictToUse.getByName('defaultWidthX');\n          widths[i] = defaultWidth;\n        }\n\n        if (state.seac !== null) {\n          seacs[i] = state.seac;\n        }\n\n        if (!valid) {\n          charStrings.set(i, new Uint8Array([14]));\n        }\n      }\n\n      return {\n        charStrings: charStrings,\n        seacs: seacs,\n        widths: widths\n      };\n    },\n    emptyPrivateDictionary: function CFFParser_emptyPrivateDictionary(parentDict) {\n      var privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n      parentDict.setByKey(18, [0, 0]);\n      parentDict.privateDict = privateDict;\n    },\n    parsePrivateDict: function CFFParser_parsePrivateDict(parentDict) {\n      if (!parentDict.hasName('Private')) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateOffset = parentDict.getByName('Private');\n\n      if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n        parentDict.removeByName('Private');\n        return;\n      }\n\n      var size = privateOffset[0];\n      var offset = privateOffset[1];\n\n      if (size === 0 || offset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var privateDictEnd = offset + size;\n      var dictData = this.bytes.subarray(offset, privateDictEnd);\n      var dict = this.parseDict(dictData);\n      var privateDict = this.createDict(CFFPrivateDict, dict, parentDict.strings);\n      parentDict.privateDict = privateDict;\n\n      if (!privateDict.getByName('Subrs')) {\n        return;\n      }\n\n      var subrsOffset = privateDict.getByName('Subrs');\n      var relativeOffset = offset + subrsOffset;\n\n      if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n        this.emptyPrivateDictionary(parentDict);\n        return;\n      }\n\n      var subrsIndex = this.parseIndex(relativeOffset);\n      privateDict.subrsIndex = subrsIndex.obj;\n    },\n    parseCharsets: function CFFParser_parseCharsets(pos, length, strings, cid) {\n      if (pos === 0) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.ISO_ADOBE, _charsets.ISOAdobeCharset);\n      } else if (pos === 1) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT, _charsets.ExpertCharset);\n      } else if (pos === 2) {\n        return new CFFCharset(true, CFFCharsetPredefinedTypes.EXPERT_SUBSET, _charsets.ExpertSubsetCharset);\n      }\n\n      var bytes = this.bytes;\n      var start = pos;\n      var format = bytes[pos++];\n      var charset = ['.notdef'];\n      var id, count, i;\n      length -= 1;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; i++) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            charset.push(cid ? id : strings.get(id));\n          }\n\n          break;\n\n        case 1:\n          while (charset.length <= length) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            count = bytes[pos++];\n\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n\n          break;\n\n        case 2:\n          while (charset.length <= length) {\n            id = bytes[pos++] << 8 | bytes[pos++];\n            count = bytes[pos++] << 8 | bytes[pos++];\n\n            for (i = 0; i <= count; i++) {\n              charset.push(cid ? id++ : strings.get(id++));\n            }\n          }\n\n          break;\n\n        default:\n          throw new _util.FormatError('Unknown charset format');\n      }\n\n      var end = pos;\n      var raw = bytes.subarray(start, end);\n      return new CFFCharset(false, format, charset, raw);\n    },\n    parseEncoding: function CFFParser_parseEncoding(pos, properties, strings, charset) {\n      var encoding = Object.create(null);\n      var bytes = this.bytes;\n      var predefined = false;\n      var format, i, ii;\n      var raw = null;\n\n      function readSupplement() {\n        var supplementsCount = bytes[pos++];\n\n        for (i = 0; i < supplementsCount; i++) {\n          var code = bytes[pos++];\n          var sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n          encoding[code] = charset.indexOf(strings.get(sid));\n        }\n      }\n\n      if (pos === 0 || pos === 1) {\n        predefined = true;\n        format = pos;\n        var baseEncoding = pos ? _encodings.ExpertEncoding : _encodings.StandardEncoding;\n\n        for (i = 0, ii = charset.length; i < ii; i++) {\n          var index = baseEncoding.indexOf(charset[i]);\n\n          if (index !== -1) {\n            encoding[index] = i;\n          }\n        }\n      } else {\n        var dataStart = pos;\n        format = bytes[pos++];\n\n        switch (format & 0x7f) {\n          case 0:\n            var glyphsCount = bytes[pos++];\n\n            for (i = 1; i <= glyphsCount; i++) {\n              encoding[bytes[pos++]] = i;\n            }\n\n            break;\n\n          case 1:\n            var rangesCount = bytes[pos++];\n            var gid = 1;\n\n            for (i = 0; i < rangesCount; i++) {\n              var start = bytes[pos++];\n              var left = bytes[pos++];\n\n              for (var j = start; j <= start + left; j++) {\n                encoding[j] = gid++;\n              }\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(\"Unknown encoding format: \".concat(format, \" in CFF\"));\n        }\n\n        var dataEnd = pos;\n\n        if (format & 0x80) {\n          bytes[dataStart] &= 0x7f;\n          readSupplement();\n        }\n\n        raw = bytes.subarray(dataStart, dataEnd);\n      }\n\n      format = format & 0x7f;\n      return new CFFEncoding(predefined, format, encoding, raw);\n    },\n    parseFDSelect: function CFFParser_parseFDSelect(pos, length) {\n      var bytes = this.bytes;\n      var format = bytes[pos++];\n      var fdSelect = [];\n      var i;\n\n      switch (format) {\n        case 0:\n          for (i = 0; i < length; ++i) {\n            var id = bytes[pos++];\n            fdSelect.push(id);\n          }\n\n          break;\n\n        case 3:\n          var rangesCount = bytes[pos++] << 8 | bytes[pos++];\n\n          for (i = 0; i < rangesCount; ++i) {\n            var first = bytes[pos++] << 8 | bytes[pos++];\n\n            if (i === 0 && first !== 0) {\n              (0, _util.warn)('parseFDSelect: The first range must have a first GID of 0' + ' -- trying to recover.');\n              first = 0;\n            }\n\n            var fdIndex = bytes[pos++];\n            var next = bytes[pos] << 8 | bytes[pos + 1];\n\n            for (var j = first; j < next; ++j) {\n              fdSelect.push(fdIndex);\n            }\n          }\n\n          pos += 2;\n          break;\n\n        default:\n          throw new _util.FormatError(\"parseFDSelect: Unknown format \\\"\".concat(format, \"\\\".\"));\n      }\n\n      if (fdSelect.length !== length) {\n        throw new _util.FormatError('parseFDSelect: Invalid font data.');\n      }\n\n      return new CFFFDSelect(format, fdSelect);\n    }\n  };\n  return CFFParser;\n}();\n\nexports.CFFParser = CFFParser;\n\nvar CFF = function CFFClosure() {\n  function CFF() {\n    this.header = null;\n    this.names = [];\n    this.topDict = null;\n    this.strings = new CFFStrings();\n    this.globalSubrIndex = null;\n    this.encoding = null;\n    this.charset = null;\n    this.charStrings = null;\n    this.fdArray = [];\n    this.fdSelect = null;\n    this.isCIDFont = false;\n  }\n\n  CFF.prototype = {\n    duplicateFirstGlyph: function CFF_duplicateFirstGlyph() {\n      if (this.charStrings.count >= 65535) {\n        (0, _util.warn)('Not enough space in charstrings to duplicate first glyph.');\n        return;\n      }\n\n      var glyphZero = this.charStrings.get(0);\n      this.charStrings.add(glyphZero);\n\n      if (this.isCIDFont) {\n        this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n      }\n    },\n    hasGlyphId: function CFF_hasGlyphID(id) {\n      if (id < 0 || id >= this.charStrings.count) {\n        return false;\n      }\n\n      var glyph = this.charStrings.get(id);\n      return glyph.length > 0;\n    }\n  };\n  return CFF;\n}();\n\nexports.CFF = CFF;\n\nvar CFFHeader = function CFFHeaderClosure() {\n  function CFFHeader(major, minor, hdrSize, offSize) {\n    this.major = major;\n    this.minor = minor;\n    this.hdrSize = hdrSize;\n    this.offSize = offSize;\n  }\n\n  return CFFHeader;\n}();\n\nexports.CFFHeader = CFFHeader;\n\nvar CFFStrings = function CFFStringsClosure() {\n  function CFFStrings() {\n    this.strings = [];\n  }\n\n  CFFStrings.prototype = {\n    get: function CFFStrings_get(index) {\n      if (index >= 0 && index <= 390) {\n        return CFFStandardStrings[index];\n      }\n\n      if (index - 391 <= this.strings.length) {\n        return this.strings[index - 391];\n      }\n\n      return CFFStandardStrings[0];\n    },\n    add: function CFFStrings_add(value) {\n      this.strings.push(value);\n    },\n\n    get count() {\n      return this.strings.length;\n    }\n\n  };\n  return CFFStrings;\n}();\n\nexports.CFFStrings = CFFStrings;\n\nvar CFFIndex = function CFFIndexClosure() {\n  function CFFIndex() {\n    this.objects = [];\n    this.length = 0;\n  }\n\n  CFFIndex.prototype = {\n    add: function CFFIndex_add(data) {\n      this.length += data.length;\n      this.objects.push(data);\n    },\n    set: function CFFIndex_set(index, data) {\n      this.length += data.length - this.objects[index].length;\n      this.objects[index] = data;\n    },\n    get: function CFFIndex_get(index) {\n      return this.objects[index];\n    },\n\n    get count() {\n      return this.objects.length;\n    }\n\n  };\n  return CFFIndex;\n}();\n\nexports.CFFIndex = CFFIndex;\n\nvar CFFDict = function CFFDictClosure() {\n  function CFFDict(tables, strings) {\n    this.keyToNameMap = tables.keyToNameMap;\n    this.nameToKeyMap = tables.nameToKeyMap;\n    this.defaults = tables.defaults;\n    this.types = tables.types;\n    this.opcodes = tables.opcodes;\n    this.order = tables.order;\n    this.strings = strings;\n    this.values = Object.create(null);\n  }\n\n  CFFDict.prototype = {\n    setByKey: function CFFDict_setByKey(key, value) {\n      if (!(key in this.keyToNameMap)) {\n        return false;\n      }\n\n      var valueLength = value.length;\n\n      if (valueLength === 0) {\n        return true;\n      }\n\n      for (var i = 0; i < valueLength; i++) {\n        if (isNaN(value[i])) {\n          (0, _util.warn)('Invalid CFFDict value: \"' + value + '\" for key \"' + key + '\".');\n          return true;\n        }\n      }\n\n      var type = this.types[key];\n\n      if (type === 'num' || type === 'sid' || type === 'offset') {\n        value = value[0];\n      }\n\n      this.values[key] = value;\n      return true;\n    },\n    setByName: function CFFDict_setByName(name, value) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new _util.FormatError(\"Invalid dictionary name \\\"\".concat(name, \"\\\"\"));\n      }\n\n      this.values[this.nameToKeyMap[name]] = value;\n    },\n    hasName: function CFFDict_hasName(name) {\n      return this.nameToKeyMap[name] in this.values;\n    },\n    getByName: function CFFDict_getByName(name) {\n      if (!(name in this.nameToKeyMap)) {\n        throw new _util.FormatError(\"Invalid dictionary name \".concat(name, \"\\\"\"));\n      }\n\n      var key = this.nameToKeyMap[name];\n\n      if (!(key in this.values)) {\n        return this.defaults[key];\n      }\n\n      return this.values[key];\n    },\n    removeByName: function CFFDict_removeByName(name) {\n      delete this.values[this.nameToKeyMap[name]];\n    }\n  };\n\n  CFFDict.createTables = function CFFDict_createTables(layout) {\n    var tables = {\n      keyToNameMap: {},\n      nameToKeyMap: {},\n      defaults: {},\n      types: {},\n      opcodes: {},\n      order: []\n    };\n\n    for (var i = 0, ii = layout.length; i < ii; ++i) {\n      var entry = layout[i];\n      var key = Array.isArray(entry[0]) ? (entry[0][0] << 8) + entry[0][1] : entry[0];\n      tables.keyToNameMap[key] = entry[1];\n      tables.nameToKeyMap[entry[1]] = key;\n      tables.types[key] = entry[2];\n      tables.defaults[key] = entry[3];\n      tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n      tables.order.push(key);\n    }\n\n    return tables;\n  };\n\n  return CFFDict;\n}();\n\nvar CFFTopDict = function CFFTopDictClosure() {\n  var layout = [[[12, 30], 'ROS', ['sid', 'sid', 'num'], null], [[12, 20], 'SyntheticBase', 'num', null], [0, 'version', 'sid', null], [1, 'Notice', 'sid', null], [[12, 0], 'Copyright', 'sid', null], [2, 'FullName', 'sid', null], [3, 'FamilyName', 'sid', null], [4, 'Weight', 'sid', null], [[12, 1], 'isFixedPitch', 'num', 0], [[12, 2], 'ItalicAngle', 'num', 0], [[12, 3], 'UnderlinePosition', 'num', -100], [[12, 4], 'UnderlineThickness', 'num', 50], [[12, 5], 'PaintType', 'num', 0], [[12, 6], 'CharstringType', 'num', 2], [[12, 7], 'FontMatrix', ['num', 'num', 'num', 'num', 'num', 'num'], [0.001, 0, 0, 0.001, 0, 0]], [13, 'UniqueID', 'num', null], [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]], [[12, 8], 'StrokeWidth', 'num', 0], [14, 'XUID', 'array', null], [15, 'charset', 'offset', 0], [16, 'Encoding', 'offset', 0], [17, 'CharStrings', 'offset', 0], [18, 'Private', ['offset', 'offset'], null], [[12, 21], 'PostScript', 'sid', null], [[12, 22], 'BaseFontName', 'sid', null], [[12, 23], 'BaseFontBlend', 'delta', null], [[12, 31], 'CIDFontVersion', 'num', 0], [[12, 32], 'CIDFontRevision', 'num', 0], [[12, 33], 'CIDFontType', 'num', 0], [[12, 34], 'CIDCount', 'num', 8720], [[12, 35], 'UIDBase', 'num', null], [[12, 37], 'FDSelect', 'offset', null], [[12, 36], 'FDArray', 'offset', null], [[12, 38], 'FontName', 'sid', null]];\n  var tables = null;\n\n  function CFFTopDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n\n    CFFDict.call(this, tables, strings);\n    this.privateDict = null;\n  }\n\n  CFFTopDict.prototype = Object.create(CFFDict.prototype);\n  return CFFTopDict;\n}();\n\nexports.CFFTopDict = CFFTopDict;\n\nvar CFFPrivateDict = function CFFPrivateDictClosure() {\n  var layout = [[6, 'BlueValues', 'delta', null], [7, 'OtherBlues', 'delta', null], [8, 'FamilyBlues', 'delta', null], [9, 'FamilyOtherBlues', 'delta', null], [[12, 9], 'BlueScale', 'num', 0.039625], [[12, 10], 'BlueShift', 'num', 7], [[12, 11], 'BlueFuzz', 'num', 1], [10, 'StdHW', 'num', null], [11, 'StdVW', 'num', null], [[12, 12], 'StemSnapH', 'delta', null], [[12, 13], 'StemSnapV', 'delta', null], [[12, 14], 'ForceBold', 'num', 0], [[12, 17], 'LanguageGroup', 'num', 0], [[12, 18], 'ExpansionFactor', 'num', 0.06], [[12, 19], 'initialRandomSeed', 'num', 0], [20, 'defaultWidthX', 'num', 0], [21, 'nominalWidthX', 'num', 0], [19, 'Subrs', 'offset', null]];\n  var tables = null;\n\n  function CFFPrivateDict(strings) {\n    if (tables === null) {\n      tables = CFFDict.createTables(layout);\n    }\n\n    CFFDict.call(this, tables, strings);\n    this.subrsIndex = null;\n  }\n\n  CFFPrivateDict.prototype = Object.create(CFFDict.prototype);\n  return CFFPrivateDict;\n}();\n\nexports.CFFPrivateDict = CFFPrivateDict;\nvar CFFCharsetPredefinedTypes = {\n  ISO_ADOBE: 0,\n  EXPERT: 1,\n  EXPERT_SUBSET: 2\n};\n\nvar CFFCharset = function CFFCharsetClosure() {\n  function CFFCharset(predefined, format, charset, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.charset = charset;\n    this.raw = raw;\n  }\n\n  return CFFCharset;\n}();\n\nexports.CFFCharset = CFFCharset;\n\nvar CFFEncoding = function CFFEncodingClosure() {\n  function CFFEncoding(predefined, format, encoding, raw) {\n    this.predefined = predefined;\n    this.format = format;\n    this.encoding = encoding;\n    this.raw = raw;\n  }\n\n  return CFFEncoding;\n}();\n\nvar CFFFDSelect = function CFFFDSelectClosure() {\n  function CFFFDSelect(format, fdSelect) {\n    this.format = format;\n    this.fdSelect = fdSelect;\n  }\n\n  CFFFDSelect.prototype = {\n    getFDIndex: function CFFFDSelect_get(glyphIndex) {\n      if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n        return -1;\n      }\n\n      return this.fdSelect[glyphIndex];\n    }\n  };\n  return CFFFDSelect;\n}();\n\nexports.CFFFDSelect = CFFFDSelect;\n\nvar CFFOffsetTracker = function CFFOffsetTrackerClosure() {\n  function CFFOffsetTracker() {\n    this.offsets = Object.create(null);\n  }\n\n  CFFOffsetTracker.prototype = {\n    isTracking: function CFFOffsetTracker_isTracking(key) {\n      return key in this.offsets;\n    },\n    track: function CFFOffsetTracker_track(key, location) {\n      if (key in this.offsets) {\n        throw new _util.FormatError(\"Already tracking location of \".concat(key));\n      }\n\n      this.offsets[key] = location;\n    },\n    offset: function CFFOffsetTracker_offset(value) {\n      for (var key in this.offsets) {\n        this.offsets[key] += value;\n      }\n    },\n    setEntryLocation: function CFFOffsetTracker_setEntryLocation(key, values, output) {\n      if (!(key in this.offsets)) {\n        throw new _util.FormatError(\"Not tracking location of \".concat(key));\n      }\n\n      var data = output.data;\n      var dataOffset = this.offsets[key];\n      var size = 5;\n\n      for (var i = 0, ii = values.length; i < ii; ++i) {\n        var offset0 = i * size + dataOffset;\n        var offset1 = offset0 + 1;\n        var offset2 = offset0 + 2;\n        var offset3 = offset0 + 3;\n        var offset4 = offset0 + 4;\n\n        if (data[offset0] !== 0x1d || data[offset1] !== 0 || data[offset2] !== 0 || data[offset3] !== 0 || data[offset4] !== 0) {\n          throw new _util.FormatError('writing to an offset that is not empty');\n        }\n\n        var value = values[i];\n        data[offset0] = 0x1d;\n        data[offset1] = value >> 24 & 0xFF;\n        data[offset2] = value >> 16 & 0xFF;\n        data[offset3] = value >> 8 & 0xFF;\n        data[offset4] = value & 0xFF;\n      }\n    }\n  };\n  return CFFOffsetTracker;\n}();\n\nvar CFFCompiler = function CFFCompilerClosure() {\n  function CFFCompiler(cff) {\n    this.cff = cff;\n  }\n\n  CFFCompiler.prototype = {\n    compile: function CFFCompiler_compile() {\n      var cff = this.cff;\n      var output = {\n        data: [],\n        length: 0,\n        add: function CFFCompiler_add(data) {\n          this.data = this.data.concat(data);\n          this.length = this.data.length;\n        }\n      };\n      var header = this.compileHeader(cff.header);\n      output.add(header);\n      var nameIndex = this.compileNameIndex(cff.names);\n      output.add(nameIndex);\n\n      if (cff.isCIDFont) {\n        if (cff.topDict.hasName('FontMatrix')) {\n          var base = cff.topDict.getByName('FontMatrix');\n          cff.topDict.removeByName('FontMatrix');\n\n          for (var i = 0, ii = cff.fdArray.length; i < ii; i++) {\n            var subDict = cff.fdArray[i];\n            var matrix = base.slice(0);\n\n            if (subDict.hasName('FontMatrix')) {\n              matrix = _util.Util.transform(matrix, subDict.getByName('FontMatrix'));\n            }\n\n            subDict.setByName('FontMatrix', matrix);\n          }\n        }\n      }\n\n      cff.topDict.setByName('charset', 0);\n      var compiled = this.compileTopDicts([cff.topDict], output.length, cff.isCIDFont);\n      output.add(compiled.output);\n      var topDictTracker = compiled.trackers[0];\n      var stringIndex = this.compileStringIndex(cff.strings.strings);\n      output.add(stringIndex);\n      var globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n      output.add(globalSubrIndex);\n\n      if (cff.encoding && cff.topDict.hasName('Encoding')) {\n        if (cff.encoding.predefined) {\n          topDictTracker.setEntryLocation('Encoding', [cff.encoding.format], output);\n        } else {\n          var encoding = this.compileEncoding(cff.encoding);\n          topDictTracker.setEntryLocation('Encoding', [output.length], output);\n          output.add(encoding);\n        }\n      }\n\n      var charset = this.compileCharset(cff.charset);\n      topDictTracker.setEntryLocation('charset', [output.length], output);\n      output.add(charset);\n      var charStrings = this.compileCharStrings(cff.charStrings);\n      topDictTracker.setEntryLocation('CharStrings', [output.length], output);\n      output.add(charStrings);\n\n      if (cff.isCIDFont) {\n        topDictTracker.setEntryLocation('FDSelect', [output.length], output);\n        var fdSelect = this.compileFDSelect(cff.fdSelect);\n        output.add(fdSelect);\n        compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n        topDictTracker.setEntryLocation('FDArray', [output.length], output);\n        output.add(compiled.output);\n        var fontDictTrackers = compiled.trackers;\n        this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n      }\n\n      this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n      output.add([0]);\n      return output.data;\n    },\n    encodeNumber: function CFFCompiler_encodeNumber(value) {\n      if (parseFloat(value) === parseInt(value, 10) && !isNaN(value)) {\n        return this.encodeInteger(value);\n      }\n\n      return this.encodeFloat(value);\n    },\n    encodeFloat: function CFFCompiler_encodeFloat(num) {\n      var value = num.toString();\n      var m = /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/.exec(value);\n\n      if (m) {\n        var epsilon = parseFloat('1e' + ((m[2] ? +m[2] : 0) + m[1].length));\n        value = (Math.round(num * epsilon) / epsilon).toString();\n      }\n\n      var nibbles = '';\n      var i, ii;\n\n      for (i = 0, ii = value.length; i < ii; ++i) {\n        var a = value[i];\n\n        if (a === 'e') {\n          nibbles += value[++i] === '-' ? 'c' : 'b';\n        } else if (a === '.') {\n          nibbles += 'a';\n        } else if (a === '-') {\n          nibbles += 'e';\n        } else {\n          nibbles += a;\n        }\n      }\n\n      nibbles += nibbles.length & 1 ? 'f' : 'ff';\n      var out = [30];\n\n      for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n        out.push(parseInt(nibbles.substring(i, i + 2), 16));\n      }\n\n      return out;\n    },\n    encodeInteger: function CFFCompiler_encodeInteger(value) {\n      var code;\n\n      if (value >= -107 && value <= 107) {\n        code = [value + 139];\n      } else if (value >= 108 && value <= 1131) {\n        value = value - 108;\n        code = [(value >> 8) + 247, value & 0xFF];\n      } else if (value >= -1131 && value <= -108) {\n        value = -value - 108;\n        code = [(value >> 8) + 251, value & 0xFF];\n      } else if (value >= -32768 && value <= 32767) {\n        code = [0x1c, value >> 8 & 0xFF, value & 0xFF];\n      } else {\n        code = [0x1d, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF];\n      }\n\n      return code;\n    },\n    compileHeader: function CFFCompiler_compileHeader(header) {\n      return [header.major, header.minor, header.hdrSize, header.offSize];\n    },\n    compileNameIndex: function CFFCompiler_compileNameIndex(names) {\n      var nameIndex = new CFFIndex();\n\n      for (var i = 0, ii = names.length; i < ii; ++i) {\n        var name = names[i];\n        var length = Math.min(name.length, 127);\n        var sanitizedName = new Array(length);\n\n        for (var j = 0; j < length; j++) {\n          var char = name[j];\n\n          if (char < '!' || char > '~' || char === '[' || char === ']' || char === '(' || char === ')' || char === '{' || char === '}' || char === '<' || char === '>' || char === '/' || char === '%') {\n            char = '_';\n          }\n\n          sanitizedName[j] = char;\n        }\n\n        sanitizedName = sanitizedName.join('');\n\n        if (sanitizedName === '') {\n          sanitizedName = 'Bad_Font_Name';\n        }\n\n        nameIndex.add((0, _util.stringToBytes)(sanitizedName));\n      }\n\n      return this.compileIndex(nameIndex);\n    },\n    compileTopDicts: function CFFCompiler_compileTopDicts(dicts, length, removeCidKeys) {\n      var fontDictTrackers = [];\n      var fdArrayIndex = new CFFIndex();\n\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n\n        if (removeCidKeys) {\n          fontDict.removeByName('CIDFontVersion');\n          fontDict.removeByName('CIDFontRevision');\n          fontDict.removeByName('CIDFontType');\n          fontDict.removeByName('CIDCount');\n          fontDict.removeByName('UIDBase');\n        }\n\n        var fontDictTracker = new CFFOffsetTracker();\n        var fontDictData = this.compileDict(fontDict, fontDictTracker);\n        fontDictTrackers.push(fontDictTracker);\n        fdArrayIndex.add(fontDictData);\n        fontDictTracker.offset(length);\n      }\n\n      fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n      return {\n        trackers: fontDictTrackers,\n        output: fdArrayIndex\n      };\n    },\n    compilePrivateDicts: function CFFCompiler_compilePrivateDicts(dicts, trackers, output) {\n      for (var i = 0, ii = dicts.length; i < ii; ++i) {\n        var fontDict = dicts[i];\n        var privateDict = fontDict.privateDict;\n\n        if (!privateDict || !fontDict.hasName('Private')) {\n          throw new _util.FormatError('There must be a private dictionary.');\n        }\n\n        var privateDictTracker = new CFFOffsetTracker();\n        var privateDictData = this.compileDict(privateDict, privateDictTracker);\n        var outputLength = output.length;\n        privateDictTracker.offset(outputLength);\n\n        if (!privateDictData.length) {\n          outputLength = 0;\n        }\n\n        trackers[i].setEntryLocation('Private', [privateDictData.length, outputLength], output);\n        output.add(privateDictData);\n\n        if (privateDict.subrsIndex && privateDict.hasName('Subrs')) {\n          var subrs = this.compileIndex(privateDict.subrsIndex);\n          privateDictTracker.setEntryLocation('Subrs', [privateDictData.length], output);\n          output.add(subrs);\n        }\n      }\n    },\n    compileDict: function CFFCompiler_compileDict(dict, offsetTracker) {\n      var out = [];\n      var order = dict.order;\n\n      for (var i = 0; i < order.length; ++i) {\n        var key = order[i];\n\n        if (!(key in dict.values)) {\n          continue;\n        }\n\n        var values = dict.values[key];\n        var types = dict.types[key];\n\n        if (!Array.isArray(types)) {\n          types = [types];\n        }\n\n        if (!Array.isArray(values)) {\n          values = [values];\n        }\n\n        if (values.length === 0) {\n          continue;\n        }\n\n        for (var j = 0, jj = types.length; j < jj; ++j) {\n          var type = types[j];\n          var value = values[j];\n\n          switch (type) {\n            case 'num':\n            case 'sid':\n              out = out.concat(this.encodeNumber(value));\n              break;\n\n            case 'offset':\n              var name = dict.keyToNameMap[key];\n\n              if (!offsetTracker.isTracking(name)) {\n                offsetTracker.track(name, out.length);\n              }\n\n              out = out.concat([0x1d, 0, 0, 0, 0]);\n              break;\n\n            case 'array':\n            case 'delta':\n              out = out.concat(this.encodeNumber(value));\n\n              for (var k = 1, kk = values.length; k < kk; ++k) {\n                out = out.concat(this.encodeNumber(values[k]));\n              }\n\n              break;\n\n            default:\n              throw new _util.FormatError(\"Unknown data type of \".concat(type));\n          }\n        }\n\n        out = out.concat(dict.opcodes[key]);\n      }\n\n      return out;\n    },\n    compileStringIndex: function CFFCompiler_compileStringIndex(strings) {\n      var stringIndex = new CFFIndex();\n\n      for (var i = 0, ii = strings.length; i < ii; ++i) {\n        stringIndex.add((0, _util.stringToBytes)(strings[i]));\n      }\n\n      return this.compileIndex(stringIndex);\n    },\n    compileGlobalSubrIndex: function CFFCompiler_compileGlobalSubrIndex() {\n      var globalSubrIndex = this.cff.globalSubrIndex;\n      this.out.writeByteArray(this.compileIndex(globalSubrIndex));\n    },\n    compileCharStrings: function CFFCompiler_compileCharStrings(charStrings) {\n      var charStringsIndex = new CFFIndex();\n\n      for (var i = 0; i < charStrings.count; i++) {\n        var glyph = charStrings.get(i);\n\n        if (glyph.length === 0) {\n          charStringsIndex.add(new Uint8Array([0x8B, 0x0E]));\n          continue;\n        }\n\n        charStringsIndex.add(glyph);\n      }\n\n      return this.compileIndex(charStringsIndex);\n    },\n    compileCharset: function CFFCompiler_compileCharset(charset) {\n      var length = 1 + (this.cff.charStrings.count - 1) * 2;\n      var out = new Uint8Array(length);\n      return this.compileTypedArray(out);\n    },\n    compileEncoding: function CFFCompiler_compileEncoding(encoding) {\n      return this.compileTypedArray(encoding.raw);\n    },\n    compileFDSelect: function CFFCompiler_compileFDSelect(fdSelect) {\n      var format = fdSelect.format;\n      var out, i;\n\n      switch (format) {\n        case 0:\n          out = new Uint8Array(1 + fdSelect.fdSelect.length);\n          out[0] = format;\n\n          for (i = 0; i < fdSelect.fdSelect.length; i++) {\n            out[i + 1] = fdSelect.fdSelect[i];\n          }\n\n          break;\n\n        case 3:\n          var start = 0;\n          var lastFD = fdSelect.fdSelect[0];\n          var ranges = [format, 0, 0, start >> 8 & 0xFF, start & 0xFF, lastFD];\n\n          for (i = 1; i < fdSelect.fdSelect.length; i++) {\n            var currentFD = fdSelect.fdSelect[i];\n\n            if (currentFD !== lastFD) {\n              ranges.push(i >> 8 & 0xFF, i & 0xFF, currentFD);\n              lastFD = currentFD;\n            }\n          }\n\n          var numRanges = (ranges.length - 3) / 3;\n          ranges[1] = numRanges >> 8 & 0xFF;\n          ranges[2] = numRanges & 0xFF;\n          ranges.push(i >> 8 & 0xFF, i & 0xFF);\n          out = new Uint8Array(ranges);\n          break;\n      }\n\n      return this.compileTypedArray(out);\n    },\n    compileTypedArray: function CFFCompiler_compileTypedArray(data) {\n      var out = [];\n\n      for (var i = 0, ii = data.length; i < ii; ++i) {\n        out[i] = data[i];\n      }\n\n      return out;\n    },\n    compileIndex: function CFFCompiler_compileIndex(index, trackers) {\n      trackers = trackers || [];\n      var objects = index.objects;\n      var count = objects.length;\n\n      if (count === 0) {\n        return [0, 0, 0];\n      }\n\n      var data = [count >> 8 & 0xFF, count & 0xff];\n      var lastOffset = 1,\n          i;\n\n      for (i = 0; i < count; ++i) {\n        lastOffset += objects[i].length;\n      }\n\n      var offsetSize;\n\n      if (lastOffset < 0x100) {\n        offsetSize = 1;\n      } else if (lastOffset < 0x10000) {\n        offsetSize = 2;\n      } else if (lastOffset < 0x1000000) {\n        offsetSize = 3;\n      } else {\n        offsetSize = 4;\n      }\n\n      data.push(offsetSize);\n      var relativeOffset = 1;\n\n      for (i = 0; i < count + 1; i++) {\n        if (offsetSize === 1) {\n          data.push(relativeOffset & 0xFF);\n        } else if (offsetSize === 2) {\n          data.push(relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        } else if (offsetSize === 3) {\n          data.push(relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        } else {\n          data.push(relativeOffset >>> 24 & 0xFF, relativeOffset >> 16 & 0xFF, relativeOffset >> 8 & 0xFF, relativeOffset & 0xFF);\n        }\n\n        if (objects[i]) {\n          relativeOffset += objects[i].length;\n        }\n      }\n\n      for (i = 0; i < count; i++) {\n        if (trackers[i]) {\n          trackers[i].offset(data.length);\n        }\n\n        for (var j = 0, jj = objects[i].length; j < jj; j++) {\n          data.push(objects[i][j]);\n        }\n      }\n\n      return data;\n    }\n  };\n  return CFFCompiler;\n}();\n\nexports.CFFCompiler = CFFCompiler;\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ExpertSubsetCharset = exports.ExpertCharset = exports.ISOAdobeCharset = void 0;\nvar ISOAdobeCharset = ['.notdef', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'endash', 'dagger', 'daggerdbl', 'periodcentered', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', 'questiondown', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron', 'emdash', 'AE', 'ordfeminine', 'Lslash', 'Oslash', 'OE', 'ordmasculine', 'ae', 'dotlessi', 'lslash', 'oslash', 'oe', 'germandbls', 'onesuperior', 'logicalnot', 'mu', 'trademark', 'Eth', 'onehalf', 'plusminus', 'Thorn', 'onequarter', 'divide', 'brokenbar', 'degree', 'thorn', 'threequarters', 'twosuperior', 'registered', 'minus', 'eth', 'multiply', 'threesuperior', 'copyright', 'Aacute', 'Acircumflex', 'Adieresis', 'Agrave', 'Aring', 'Atilde', 'Ccedilla', 'Eacute', 'Ecircumflex', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Ntilde', 'Oacute', 'Ocircumflex', 'Odieresis', 'Ograve', 'Otilde', 'Scaron', 'Uacute', 'Ucircumflex', 'Udieresis', 'Ugrave', 'Yacute', 'Ydieresis', 'Zcaron', 'aacute', 'acircumflex', 'adieresis', 'agrave', 'aring', 'atilde', 'ccedilla', 'eacute', 'ecircumflex', 'edieresis', 'egrave', 'iacute', 'icircumflex', 'idieresis', 'igrave', 'ntilde', 'oacute', 'ocircumflex', 'odieresis', 'ograve', 'otilde', 'scaron', 'uacute', 'ucircumflex', 'udieresis', 'ugrave', 'yacute', 'ydieresis', 'zcaron'];\nexports.ISOAdobeCharset = ISOAdobeCharset;\nvar ExpertCharset = ['.notdef', 'space', 'exclamsmall', 'Hungarumlautsmall', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', 'Dotaccentsmall', 'Macronsmall', 'figuredash', 'hypheninferior', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\nexports.ExpertCharset = ExpertCharset;\nvar ExpertSubsetCharset = ['.notdef', 'space', 'dollaroldstyle', 'dollarsuperior', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', 'isuperior', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', 'rsuperior', 'ssuperior', 'tsuperior', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', 'parenrightinferior', 'hyphensuperior', 'colonmonetary', 'onefitted', 'rupiah', 'centoldstyle', 'figuredash', 'hypheninferior', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior'];\nexports.ExpertSubsetCharset = ExpertSubsetCharset;\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getEncoding = getEncoding;\nexports.ExpertEncoding = exports.ZapfDingbatsEncoding = exports.SymbolSetEncoding = exports.MacRomanEncoding = exports.StandardEncoding = exports.WinAnsiEncoding = void 0;\nvar ExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', '', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', 'commasuperior', 'threequartersemdash', 'periodsuperior', 'questionsmall', '', 'asuperior', 'bsuperior', 'centsuperior', 'dsuperior', 'esuperior', '', '', '', 'isuperior', '', '', 'lsuperior', 'msuperior', 'nsuperior', 'osuperior', '', '', 'rsuperior', 'ssuperior', 'tsuperior', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hyphensuperior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdownsmall', 'centoldstyle', 'Lslashsmall', '', '', 'Scaronsmall', 'Zcaronsmall', 'Dieresissmall', 'Brevesmall', 'Caronsmall', '', 'Dotaccentsmall', '', '', 'Macronsmall', '', '', 'figuredash', 'hypheninferior', '', '', 'Ogoneksmall', 'Ringsmall', 'Cedillasmall', '', '', '', 'onequarter', 'onehalf', 'threequarters', 'questiondownsmall', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', 'zerosuperior', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'eightsuperior', 'ninesuperior', 'zeroinferior', 'oneinferior', 'twoinferior', 'threeinferior', 'fourinferior', 'fiveinferior', 'sixinferior', 'seveninferior', 'eightinferior', 'nineinferior', 'centinferior', 'dollarinferior', 'periodinferior', 'commainferior', 'Agravesmall', 'Aacutesmall', 'Acircumflexsmall', 'Atildesmall', 'Adieresissmall', 'Aringsmall', 'AEsmall', 'Ccedillasmall', 'Egravesmall', 'Eacutesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Igravesmall', 'Iacutesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ethsmall', 'Ntildesmall', 'Ogravesmall', 'Oacutesmall', 'Ocircumflexsmall', 'Otildesmall', 'Odieresissmall', 'OEsmall', 'Oslashsmall', 'Ugravesmall', 'Uacutesmall', 'Ucircumflexsmall', 'Udieresissmall', 'Yacutesmall', 'Thornsmall', 'Ydieresissmall'];\nexports.ExpertEncoding = ExpertEncoding;\nvar MacExpertEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclamsmall', 'Hungarumlautsmall', 'centoldstyle', 'dollaroldstyle', 'dollarsuperior', 'ampersandsmall', 'Acutesmall', 'parenleftsuperior', 'parenrightsuperior', 'twodotenleader', 'onedotenleader', 'comma', 'hyphen', 'period', 'fraction', 'zerooldstyle', 'oneoldstyle', 'twooldstyle', 'threeoldstyle', 'fouroldstyle', 'fiveoldstyle', 'sixoldstyle', 'sevenoldstyle', 'eightoldstyle', 'nineoldstyle', 'colon', 'semicolon', '', 'threequartersemdash', '', 'questionsmall', '', '', '', '', 'Ethsmall', '', '', 'onequarter', 'onehalf', 'threequarters', 'oneeighth', 'threeeighths', 'fiveeighths', 'seveneighths', 'onethird', 'twothirds', '', '', '', '', '', '', 'ff', 'fi', 'fl', 'ffi', 'ffl', 'parenleftinferior', '', 'parenrightinferior', 'Circumflexsmall', 'hypheninferior', 'Gravesmall', 'Asmall', 'Bsmall', 'Csmall', 'Dsmall', 'Esmall', 'Fsmall', 'Gsmall', 'Hsmall', 'Ismall', 'Jsmall', 'Ksmall', 'Lsmall', 'Msmall', 'Nsmall', 'Osmall', 'Psmall', 'Qsmall', 'Rsmall', 'Ssmall', 'Tsmall', 'Usmall', 'Vsmall', 'Wsmall', 'Xsmall', 'Ysmall', 'Zsmall', 'colonmonetary', 'onefitted', 'rupiah', 'Tildesmall', '', '', 'asuperior', 'centsuperior', '', '', '', '', 'Aacutesmall', 'Agravesmall', 'Acircumflexsmall', 'Adieresissmall', 'Atildesmall', 'Aringsmall', 'Ccedillasmall', 'Eacutesmall', 'Egravesmall', 'Ecircumflexsmall', 'Edieresissmall', 'Iacutesmall', 'Igravesmall', 'Icircumflexsmall', 'Idieresissmall', 'Ntildesmall', 'Oacutesmall', 'Ogravesmall', 'Ocircumflexsmall', 'Odieresissmall', 'Otildesmall', 'Uacutesmall', 'Ugravesmall', 'Ucircumflexsmall', 'Udieresissmall', '', 'eightsuperior', 'fourinferior', 'threeinferior', 'sixinferior', 'eightinferior', 'seveninferior', 'Scaronsmall', '', 'centinferior', 'twoinferior', '', 'Dieresissmall', '', 'Caronsmall', 'osuperior', 'fiveinferior', '', 'commainferior', 'periodinferior', 'Yacutesmall', '', 'dollarinferior', '', '', 'Thornsmall', '', 'nineinferior', 'zeroinferior', 'Zcaronsmall', 'AEsmall', 'Oslashsmall', 'questiondownsmall', 'oneinferior', 'Lslashsmall', '', '', '', '', '', '', 'Cedillasmall', '', '', '', '', '', 'OEsmall', 'figuredash', 'hyphensuperior', '', '', '', '', 'exclamdownsmall', '', 'Ydieresissmall', '', 'onesuperior', 'twosuperior', 'threesuperior', 'foursuperior', 'fivesuperior', 'sixsuperior', 'sevensuperior', 'ninesuperior', 'zerosuperior', '', 'esuperior', 'rsuperior', 'tsuperior', '', '', 'isuperior', 'ssuperior', 'dsuperior', '', '', '', '', '', 'lsuperior', 'Ogoneksmall', 'Brevesmall', 'Macronsmall', 'bsuperior', 'nsuperior', 'msuperior', 'commasuperior', 'periodsuperior', 'Dotaccentsmall', 'Ringsmall', '', '', '', ''];\nvar MacRomanEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', 'Adieresis', 'Aring', 'Ccedilla', 'Eacute', 'Ntilde', 'Odieresis', 'Udieresis', 'aacute', 'agrave', 'acircumflex', 'adieresis', 'atilde', 'aring', 'ccedilla', 'eacute', 'egrave', 'ecircumflex', 'edieresis', 'iacute', 'igrave', 'icircumflex', 'idieresis', 'ntilde', 'oacute', 'ograve', 'ocircumflex', 'odieresis', 'otilde', 'uacute', 'ugrave', 'ucircumflex', 'udieresis', 'dagger', 'degree', 'cent', 'sterling', 'section', 'bullet', 'paragraph', 'germandbls', 'registered', 'copyright', 'trademark', 'acute', 'dieresis', 'notequal', 'AE', 'Oslash', 'infinity', 'plusminus', 'lessequal', 'greaterequal', 'yen', 'mu', 'partialdiff', 'summation', 'product', 'pi', 'integral', 'ordfeminine', 'ordmasculine', 'Omega', 'ae', 'oslash', 'questiondown', 'exclamdown', 'logicalnot', 'radical', 'florin', 'approxequal', 'Delta', 'guillemotleft', 'guillemotright', 'ellipsis', 'space', 'Agrave', 'Atilde', 'Otilde', 'OE', 'oe', 'endash', 'emdash', 'quotedblleft', 'quotedblright', 'quoteleft', 'quoteright', 'divide', 'lozenge', 'ydieresis', 'Ydieresis', 'fraction', 'currency', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', 'daggerdbl', 'periodcentered', 'quotesinglbase', 'quotedblbase', 'perthousand', 'Acircumflex', 'Ecircumflex', 'Aacute', 'Edieresis', 'Egrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Igrave', 'Oacute', 'Ocircumflex', 'apple', 'Ograve', 'Uacute', 'Ucircumflex', 'Ugrave', 'dotlessi', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'ring', 'cedilla', 'hungarumlaut', 'ogonek', 'caron'];\nexports.MacRomanEncoding = MacRomanEncoding;\nvar StandardEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'exclamdown', 'cent', 'sterling', 'fraction', 'yen', 'florin', 'section', 'currency', 'quotesingle', 'quotedblleft', 'guillemotleft', 'guilsinglleft', 'guilsinglright', 'fi', 'fl', '', 'endash', 'dagger', 'daggerdbl', 'periodcentered', '', 'paragraph', 'bullet', 'quotesinglbase', 'quotedblbase', 'quotedblright', 'guillemotright', 'ellipsis', 'perthousand', '', 'questiondown', '', 'grave', 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent', 'dieresis', '', 'ring', 'cedilla', '', 'hungarumlaut', 'ogonek', 'caron', 'emdash', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'AE', '', 'ordfeminine', '', '', '', '', 'Lslash', 'Oslash', 'OE', 'ordmasculine', '', '', '', '', '', 'ae', '', '', '', 'dotlessi', '', '', 'lslash', 'oslash', 'oe', 'germandbls', '', '', '', ''];\nexports.StandardEncoding = StandardEncoding;\nvar WinAnsiEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'quotedbl', 'numbersign', 'dollar', 'percent', 'ampersand', 'quotesingle', 'parenleft', 'parenright', 'asterisk', 'plus', 'comma', 'hyphen', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright', 'asciicircum', 'underscore', 'grave', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright', 'asciitilde', 'bullet', 'Euro', 'bullet', 'quotesinglbase', 'florin', 'quotedblbase', 'ellipsis', 'dagger', 'daggerdbl', 'circumflex', 'perthousand', 'Scaron', 'guilsinglleft', 'OE', 'bullet', 'Zcaron', 'bullet', 'bullet', 'quoteleft', 'quoteright', 'quotedblleft', 'quotedblright', 'bullet', 'endash', 'emdash', 'tilde', 'trademark', 'scaron', 'guilsinglright', 'oe', 'bullet', 'zcaron', 'Ydieresis', 'space', 'exclamdown', 'cent', 'sterling', 'currency', 'yen', 'brokenbar', 'section', 'dieresis', 'copyright', 'ordfeminine', 'guillemotleft', 'logicalnot', 'hyphen', 'registered', 'macron', 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', 'mu', 'paragraph', 'periodcentered', 'cedilla', 'onesuperior', 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf', 'threequarters', 'questiondown', 'Agrave', 'Aacute', 'Acircumflex', 'Atilde', 'Adieresis', 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute', 'Ecircumflex', 'Edieresis', 'Igrave', 'Iacute', 'Icircumflex', 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 'Oacute', 'Ocircumflex', 'Otilde', 'Odieresis', 'multiply', 'Oslash', 'Ugrave', 'Uacute', 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 'germandbls', 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 'aring', 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis', 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde', 'ograve', 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide', 'oslash', 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute', 'thorn', 'ydieresis'];\nexports.WinAnsiEncoding = WinAnsiEncoding;\nvar SymbolSetEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'exclam', 'universal', 'numbersign', 'existential', 'percent', 'ampersand', 'suchthat', 'parenleft', 'parenright', 'asteriskmath', 'plus', 'comma', 'minus', 'period', 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal', 'greater', 'question', 'congruent', 'Alpha', 'Beta', 'Chi', 'Delta', 'Epsilon', 'Phi', 'Gamma', 'Eta', 'Iota', 'theta1', 'Kappa', 'Lambda', 'Mu', 'Nu', 'Omicron', 'Pi', 'Theta', 'Rho', 'Sigma', 'Tau', 'Upsilon', 'sigma1', 'Omega', 'Xi', 'Psi', 'Zeta', 'bracketleft', 'therefore', 'bracketright', 'perpendicular', 'underscore', 'radicalex', 'alpha', 'beta', 'chi', 'delta', 'epsilon', 'phi', 'gamma', 'eta', 'iota', 'phi1', 'kappa', 'lambda', 'mu', 'nu', 'omicron', 'pi', 'theta', 'rho', 'sigma', 'tau', 'upsilon', 'omega1', 'omega', 'xi', 'psi', 'zeta', 'braceleft', 'bar', 'braceright', 'similar', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'Euro', 'Upsilon1', 'minute', 'lessequal', 'fraction', 'infinity', 'florin', 'club', 'diamond', 'heart', 'spade', 'arrowboth', 'arrowleft', 'arrowup', 'arrowright', 'arrowdown', 'degree', 'plusminus', 'second', 'greaterequal', 'multiply', 'proportional', 'partialdiff', 'bullet', 'divide', 'notequal', 'equivalence', 'approxequal', 'ellipsis', 'arrowvertex', 'arrowhorizex', 'carriagereturn', 'aleph', 'Ifraktur', 'Rfraktur', 'weierstrass', 'circlemultiply', 'circleplus', 'emptyset', 'intersection', 'union', 'propersuperset', 'reflexsuperset', 'notsubset', 'propersubset', 'reflexsubset', 'element', 'notelement', 'angle', 'gradient', 'registerserif', 'copyrightserif', 'trademarkserif', 'product', 'radical', 'dotmath', 'logicalnot', 'logicaland', 'logicalor', 'arrowdblboth', 'arrowdblleft', 'arrowdblup', 'arrowdblright', 'arrowdbldown', 'lozenge', 'angleleft', 'registersans', 'copyrightsans', 'trademarksans', 'summation', 'parenlefttp', 'parenleftex', 'parenleftbt', 'bracketlefttp', 'bracketleftex', 'bracketleftbt', 'bracelefttp', 'braceleftmid', 'braceleftbt', 'braceex', '', 'angleright', 'integral', 'integraltp', 'integralex', 'integralbt', 'parenrighttp', 'parenrightex', 'parenrightbt', 'bracketrighttp', 'bracketrightex', 'bracketrightbt', 'bracerighttp', 'bracerightmid', 'bracerightbt', ''];\nexports.SymbolSetEncoding = SymbolSetEncoding;\nvar ZapfDingbatsEncoding = ['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'space', 'a1', 'a2', 'a202', 'a3', 'a4', 'a5', 'a119', 'a118', 'a117', 'a11', 'a12', 'a13', 'a14', 'a15', 'a16', 'a105', 'a17', 'a18', 'a19', 'a20', 'a21', 'a22', 'a23', 'a24', 'a25', 'a26', 'a27', 'a28', 'a6', 'a7', 'a8', 'a9', 'a10', 'a29', 'a30', 'a31', 'a32', 'a33', 'a34', 'a35', 'a36', 'a37', 'a38', 'a39', 'a40', 'a41', 'a42', 'a43', 'a44', 'a45', 'a46', 'a47', 'a48', 'a49', 'a50', 'a51', 'a52', 'a53', 'a54', 'a55', 'a56', 'a57', 'a58', 'a59', 'a60', 'a61', 'a62', 'a63', 'a64', 'a65', 'a66', 'a67', 'a68', 'a69', 'a70', 'a71', 'a72', 'a73', 'a74', 'a203', 'a75', 'a204', 'a76', 'a77', 'a78', 'a79', 'a81', 'a82', 'a83', 'a84', 'a97', 'a98', 'a99', 'a100', '', 'a89', 'a90', 'a93', 'a94', 'a91', 'a92', 'a205', 'a85', 'a206', 'a86', 'a87', 'a88', 'a95', 'a96', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'a101', 'a102', 'a103', 'a104', 'a106', 'a107', 'a108', 'a112', 'a111', 'a110', 'a109', 'a120', 'a121', 'a122', 'a123', 'a124', 'a125', 'a126', 'a127', 'a128', 'a129', 'a130', 'a131', 'a132', 'a133', 'a134', 'a135', 'a136', 'a137', 'a138', 'a139', 'a140', 'a141', 'a142', 'a143', 'a144', 'a145', 'a146', 'a147', 'a148', 'a149', 'a150', 'a151', 'a152', 'a153', 'a154', 'a155', 'a156', 'a157', 'a158', 'a159', 'a160', 'a161', 'a163', 'a164', 'a196', 'a165', 'a192', 'a166', 'a167', 'a168', 'a169', 'a170', 'a171', 'a172', 'a173', 'a162', 'a174', 'a175', 'a176', 'a177', 'a178', 'a179', 'a193', 'a180', 'a199', 'a181', 'a200', 'a182', '', 'a201', 'a183', 'a184', 'a197', 'a185', 'a194', 'a198', 'a186', 'a195', 'a187', 'a188', 'a189', 'a190', 'a191', ''];\nexports.ZapfDingbatsEncoding = ZapfDingbatsEncoding;\n\nfunction getEncoding(encodingName) {\n  switch (encodingName) {\n    case 'WinAnsiEncoding':\n      return WinAnsiEncoding;\n\n    case 'StandardEncoding':\n      return StandardEncoding;\n\n    case 'MacRomanEncoding':\n      return MacRomanEncoding;\n\n    case 'SymbolSetEncoding':\n      return SymbolSetEncoding;\n\n    case 'ZapfDingbatsEncoding':\n      return ZapfDingbatsEncoding;\n\n    case 'ExpertEncoding':\n      return ExpertEncoding;\n\n    case 'MacExpertEncoding':\n      return MacExpertEncoding;\n\n    default:\n      return null;\n  }\n}\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;\nvar getGlyphsUnicode = getLookupTableFactory(function (t) {\n t['A'] = 0x0041;\n t['AE'] = 0x00C6;\n t['AEacute'] = 0x01FC;\n t['AEmacron'] = 0x01E2;\n t['AEsmall'] = 0xF7E6;\n t['Aacute'] = 0x00C1;\n t['Aacutesmall'] = 0xF7E1;\n t['Abreve'] = 0x0102;\n t['Abreveacute'] = 0x1EAE;\n t['Abrevecyrillic'] = 0x04D0;\n t['Abrevedotbelow'] = 0x1EB6;\n t['Abrevegrave'] = 0x1EB0;\n t['Abrevehookabove'] = 0x1EB2;\n t['Abrevetilde'] = 0x1EB4;\n t['Acaron'] = 0x01CD;\n t['Acircle'] = 0x24B6;\n t['Acircumflex'] = 0x00C2;\n t['Acircumflexacute'] = 0x1EA4;\n t['Acircumflexdotbelow'] = 0x1EAC;\n t['Acircumflexgrave'] = 0x1EA6;\n t['Acircumflexhookabove'] = 0x1EA8;\n t['Acircumflexsmall'] = 0xF7E2;\n t['Acircumflextilde'] = 0x1EAA;\n t['Acute'] = 0xF6C9;\n t['Acutesmall'] = 0xF7B4;\n t['Acyrillic'] = 0x0410;\n t['Adblgrave'] = 0x0200;\n t['Adieresis'] = 0x00C4;\n t['Adieresiscyrillic'] = 0x04D2;\n t['Adieresismacron'] = 0x01DE;\n t['Adieresissmall'] = 0xF7E4;\n t['Adotbelow'] = 0x1EA0;\n t['Adotmacron'] = 0x01E0;\n t['Agrave'] = 0x00C0;\n t['Agravesmall'] = 0xF7E0;\n t['Ahookabove'] = 0x1EA2;\n t['Aiecyrillic'] = 0x04D4;\n t['Ainvertedbreve'] = 0x0202;\n t['Alpha'] = 0x0391;\n t['Alphatonos'] = 0x0386;\n t['Amacron'] = 0x0100;\n t['Amonospace'] = 0xFF21;\n t['Aogonek'] = 0x0104;\n t['Aring'] = 0x00C5;\n t['Aringacute'] = 0x01FA;\n t['Aringbelow'] = 0x1E00;\n t['Aringsmall'] = 0xF7E5;\n t['Asmall'] = 0xF761;\n t['Atilde'] = 0x00C3;\n t['Atildesmall'] = 0xF7E3;\n t['Aybarmenian'] = 0x0531;\n t['B'] = 0x0042;\n t['Bcircle'] = 0x24B7;\n t['Bdotaccent'] = 0x1E02;\n t['Bdotbelow'] = 0x1E04;\n t['Becyrillic'] = 0x0411;\n t['Benarmenian'] = 0x0532;\n t['Beta'] = 0x0392;\n t['Bhook'] = 0x0181;\n t['Blinebelow'] = 0x1E06;\n t['Bmonospace'] = 0xFF22;\n t['Brevesmall'] = 0xF6F4;\n t['Bsmall'] = 0xF762;\n t['Btopbar'] = 0x0182;\n t['C'] = 0x0043;\n t['Caarmenian'] = 0x053E;\n t['Cacute'] = 0x0106;\n t['Caron'] = 0xF6CA;\n t['Caronsmall'] = 0xF6F5;\n t['Ccaron'] = 0x010C;\n t['Ccedilla'] = 0x00C7;\n t['Ccedillaacute'] = 0x1E08;\n t['Ccedillasmall'] = 0xF7E7;\n t['Ccircle'] = 0x24B8;\n t['Ccircumflex'] = 0x0108;\n t['Cdot'] = 0x010A;\n t['Cdotaccent'] = 0x010A;\n t['Cedillasmall'] = 0xF7B8;\n t['Chaarmenian'] = 0x0549;\n t['Cheabkhasiancyrillic'] = 0x04BC;\n t['Checyrillic'] = 0x0427;\n t['Chedescenderabkhasiancyrillic'] = 0x04BE;\n t['Chedescendercyrillic'] = 0x04B6;\n t['Chedieresiscyrillic'] = 0x04F4;\n t['Cheharmenian'] = 0x0543;\n t['Chekhakassiancyrillic'] = 0x04CB;\n t['Cheverticalstrokecyrillic'] = 0x04B8;\n t['Chi'] = 0x03A7;\n t['Chook'] = 0x0187;\n t['Circumflexsmall'] = 0xF6F6;\n t['Cmonospace'] = 0xFF23;\n t['Coarmenian'] = 0x0551;\n t['Csmall'] = 0xF763;\n t['D'] = 0x0044;\n t['DZ'] = 0x01F1;\n t['DZcaron'] = 0x01C4;\n t['Daarmenian'] = 0x0534;\n t['Dafrican'] = 0x0189;\n t['Dcaron'] = 0x010E;\n t['Dcedilla'] = 0x1E10;\n t['Dcircle'] = 0x24B9;\n t['Dcircumflexbelow'] = 0x1E12;\n t['Dcroat'] = 0x0110;\n t['Ddotaccent'] = 0x1E0A;\n t['Ddotbelow'] = 0x1E0C;\n t['Decyrillic'] = 0x0414;\n t['Deicoptic'] = 0x03EE;\n t['Delta'] = 0x2206;\n t['Deltagreek'] = 0x0394;\n t['Dhook'] = 0x018A;\n t['Dieresis'] = 0xF6CB;\n t['DieresisAcute'] = 0xF6CC;\n t['DieresisGrave'] = 0xF6CD;\n t['Dieresissmall'] = 0xF7A8;\n t['Digammagreek'] = 0x03DC;\n t['Djecyrillic'] = 0x0402;\n t['Dlinebelow'] = 0x1E0E;\n t['Dmonospace'] = 0xFF24;\n t['Dotaccentsmall'] = 0xF6F7;\n t['Dslash'] = 0x0110;\n t['Dsmall'] = 0xF764;\n t['Dtopbar'] = 0x018B;\n t['Dz'] = 0x01F2;\n t['Dzcaron'] = 0x01C5;\n t['Dzeabkhasiancyrillic'] = 0x04E0;\n t['Dzecyrillic'] = 0x0405;\n t['Dzhecyrillic'] = 0x040F;\n t['E'] = 0x0045;\n t['Eacute'] = 0x00C9;\n t['Eacutesmall'] = 0xF7E9;\n t['Ebreve'] = 0x0114;\n t['Ecaron'] = 0x011A;\n t['Ecedillabreve'] = 0x1E1C;\n t['Echarmenian'] = 0x0535;\n t['Ecircle'] = 0x24BA;\n t['Ecircumflex'] = 0x00CA;\n t['Ecircumflexacute'] = 0x1EBE;\n t['Ecircumflexbelow'] = 0x1E18;\n t['Ecircumflexdotbelow'] = 0x1EC6;\n t['Ecircumflexgrave'] = 0x1EC0;\n t['Ecircumflexhookabove'] = 0x1EC2;\n t['Ecircumflexsmall'] = 0xF7EA;\n t['Ecircumflextilde'] = 0x1EC4;\n t['Ecyrillic'] = 0x0404;\n t['Edblgrave'] = 0x0204;\n t['Edieresis'] = 0x00CB;\n t['Edieresissmall'] = 0xF7EB;\n t['Edot'] = 0x0116;\n t['Edotaccent'] = 0x0116;\n t['Edotbelow'] = 0x1EB8;\n t['Efcyrillic'] = 0x0424;\n t['Egrave'] = 0x00C8;\n t['Egravesmall'] = 0xF7E8;\n t['Eharmenian'] = 0x0537;\n t['Ehookabove'] = 0x1EBA;\n t['Eightroman'] = 0x2167;\n t['Einvertedbreve'] = 0x0206;\n t['Eiotifiedcyrillic'] = 0x0464;\n t['Elcyrillic'] = 0x041B;\n t['Elevenroman'] = 0x216A;\n t['Emacron'] = 0x0112;\n t['Emacronacute'] = 0x1E16;\n t['Emacrongrave'] = 0x1E14;\n t['Emcyrillic'] = 0x041C;\n t['Emonospace'] = 0xFF25;\n t['Encyrillic'] = 0x041D;\n t['Endescendercyrillic'] = 0x04A2;\n t['Eng'] = 0x014A;\n t['Enghecyrillic'] = 0x04A4;\n t['Enhookcyrillic'] = 0x04C7;\n t['Eogonek'] = 0x0118;\n t['Eopen'] = 0x0190;\n t['Epsilon'] = 0x0395;\n t['Epsilontonos'] = 0x0388;\n t['Ercyrillic'] = 0x0420;\n t['Ereversed'] = 0x018E;\n t['Ereversedcyrillic'] = 0x042D;\n t['Escyrillic'] = 0x0421;\n t['Esdescendercyrillic'] = 0x04AA;\n t['Esh'] = 0x01A9;\n t['Esmall'] = 0xF765;\n t['Eta'] = 0x0397;\n t['Etarmenian'] = 0x0538;\n t['Etatonos'] = 0x0389;\n t['Eth'] = 0x00D0;\n t['Ethsmall'] = 0xF7F0;\n t['Etilde'] = 0x1EBC;\n t['Etildebelow'] = 0x1E1A;\n t['Euro'] = 0x20AC;\n t['Ezh'] = 0x01B7;\n t['Ezhcaron'] = 0x01EE;\n t['Ezhreversed'] = 0x01B8;\n t['F'] = 0x0046;\n t['Fcircle'] = 0x24BB;\n t['Fdotaccent'] = 0x1E1E;\n t['Feharmenian'] = 0x0556;\n t['Feicoptic'] = 0x03E4;\n t['Fhook'] = 0x0191;\n t['Fitacyrillic'] = 0x0472;\n t['Fiveroman'] = 0x2164;\n t['Fmonospace'] = 0xFF26;\n t['Fourroman'] = 0x2163;\n t['Fsmall'] = 0xF766;\n t['G'] = 0x0047;\n t['GBsquare'] = 0x3387;\n t['Gacute'] = 0x01F4;\n t['Gamma'] = 0x0393;\n t['Gammaafrican'] = 0x0194;\n t['Gangiacoptic'] = 0x03EA;\n t['Gbreve'] = 0x011E;\n t['Gcaron'] = 0x01E6;\n t['Gcedilla'] = 0x0122;\n t['Gcircle'] = 0x24BC;\n t['Gcircumflex'] = 0x011C;\n t['Gcommaaccent'] = 0x0122;\n t['Gdot'] = 0x0120;\n t['Gdotaccent'] = 0x0120;\n t['Gecyrillic'] = 0x0413;\n t['Ghadarmenian'] = 0x0542;\n t['Ghemiddlehookcyrillic'] = 0x0494;\n t['Ghestrokecyrillic'] = 0x0492;\n t['Gheupturncyrillic'] = 0x0490;\n t['Ghook'] = 0x0193;\n t['Gimarmenian'] = 0x0533;\n t['Gjecyrillic'] = 0x0403;\n t['Gmacron'] = 0x1E20;\n t['Gmonospace'] = 0xFF27;\n t['Grave'] = 0xF6CE;\n t['Gravesmall'] = 0xF760;\n t['Gsmall'] = 0xF767;\n t['Gsmallhook'] = 0x029B;\n t['Gstroke'] = 0x01E4;\n t['H'] = 0x0048;\n t['H18533'] = 0x25CF;\n t['H18543'] = 0x25AA;\n t['H18551'] = 0x25AB;\n t['H22073'] = 0x25A1;\n t['HPsquare'] = 0x33CB;\n t['Haabkhasiancyrillic'] = 0x04A8;\n t['Hadescendercyrillic'] = 0x04B2;\n t['Hardsigncyrillic'] = 0x042A;\n t['Hbar'] = 0x0126;\n t['Hbrevebelow'] = 0x1E2A;\n t['Hcedilla'] = 0x1E28;\n t['Hcircle'] = 0x24BD;\n t['Hcircumflex'] = 0x0124;\n t['Hdieresis'] = 0x1E26;\n t['Hdotaccent'] = 0x1E22;\n t['Hdotbelow'] = 0x1E24;\n t['Hmonospace'] = 0xFF28;\n t['Hoarmenian'] = 0x0540;\n t['Horicoptic'] = 0x03E8;\n t['Hsmall'] = 0xF768;\n t['Hungarumlaut'] = 0xF6CF;\n t['Hungarumlautsmall'] = 0xF6F8;\n t['Hzsquare'] = 0x3390;\n t['I'] = 0x0049;\n t['IAcyrillic'] = 0x042F;\n t['IJ'] = 0x0132;\n t['IUcyrillic'] = 0x042E;\n t['Iacute'] = 0x00CD;\n t['Iacutesmall'] = 0xF7ED;\n t['Ibreve'] = 0x012C;\n t['Icaron'] = 0x01CF;\n t['Icircle'] = 0x24BE;\n t['Icircumflex'] = 0x00CE;\n t['Icircumflexsmall'] = 0xF7EE;\n t['Icyrillic'] = 0x0406;\n t['Idblgrave'] = 0x0208;\n t['Idieresis'] = 0x00CF;\n t['Idieresisacute'] = 0x1E2E;\n t['Idieresiscyrillic'] = 0x04E4;\n t['Idieresissmall'] = 0xF7EF;\n t['Idot'] = 0x0130;\n t['Idotaccent'] = 0x0130;\n t['Idotbelow'] = 0x1ECA;\n t['Iebrevecyrillic'] = 0x04D6;\n t['Iecyrillic'] = 0x0415;\n t['Ifraktur'] = 0x2111;\n t['Igrave'] = 0x00CC;\n t['Igravesmall'] = 0xF7EC;\n t['Ihookabove'] = 0x1EC8;\n t['Iicyrillic'] = 0x0418;\n t['Iinvertedbreve'] = 0x020A;\n t['Iishortcyrillic'] = 0x0419;\n t['Imacron'] = 0x012A;\n t['Imacroncyrillic'] = 0x04E2;\n t['Imonospace'] = 0xFF29;\n t['Iniarmenian'] = 0x053B;\n t['Iocyrillic'] = 0x0401;\n t['Iogonek'] = 0x012E;\n t['Iota'] = 0x0399;\n t['Iotaafrican'] = 0x0196;\n t['Iotadieresis'] = 0x03AA;\n t['Iotatonos'] = 0x038A;\n t['Ismall'] = 0xF769;\n t['Istroke'] = 0x0197;\n t['Itilde'] = 0x0128;\n t['Itildebelow'] = 0x1E2C;\n t['Izhitsacyrillic'] = 0x0474;\n t['Izhitsadblgravecyrillic'] = 0x0476;\n t['J'] = 0x004A;\n t['Jaarmenian'] = 0x0541;\n t['Jcircle'] = 0x24BF;\n t['Jcircumflex'] = 0x0134;\n t['Jecyrillic'] = 0x0408;\n t['Jheharmenian'] = 0x054B;\n t['Jmonospace'] = 0xFF2A;\n t['Jsmall'] = 0xF76A;\n t['K'] = 0x004B;\n t['KBsquare'] = 0x3385;\n t['KKsquare'] = 0x33CD;\n t['Kabashkircyrillic'] = 0x04A0;\n t['Kacute'] = 0x1E30;\n t['Kacyrillic'] = 0x041A;\n t['Kadescendercyrillic'] = 0x049A;\n t['Kahookcyrillic'] = 0x04C3;\n t['Kappa'] = 0x039A;\n t['Kastrokecyrillic'] = 0x049E;\n t['Kaverticalstrokecyrillic'] = 0x049C;\n t['Kcaron'] = 0x01E8;\n t['Kcedilla'] = 0x0136;\n t['Kcircle'] = 0x24C0;\n t['Kcommaaccent'] = 0x0136;\n t['Kdotbelow'] = 0x1E32;\n t['Keharmenian'] = 0x0554;\n t['Kenarmenian'] = 0x053F;\n t['Khacyrillic'] = 0x0425;\n t['Kheicoptic'] = 0x03E6;\n t['Khook'] = 0x0198;\n t['Kjecyrillic'] = 0x040C;\n t['Klinebelow'] = 0x1E34;\n t['Kmonospace'] = 0xFF2B;\n t['Koppacyrillic'] = 0x0480;\n t['Koppagreek'] = 0x03DE;\n t['Ksicyrillic'] = 0x046E;\n t['Ksmall'] = 0xF76B;\n t['L'] = 0x004C;\n t['LJ'] = 0x01C7;\n t['LL'] = 0xF6BF;\n t['Lacute'] = 0x0139;\n t['Lambda'] = 0x039B;\n t['Lcaron'] = 0x013D;\n t['Lcedilla'] = 0x013B;\n t['Lcircle'] = 0x24C1;\n t['Lcircumflexbelow'] = 0x1E3C;\n t['Lcommaaccent'] = 0x013B;\n t['Ldot'] = 0x013F;\n t['Ldotaccent'] = 0x013F;\n t['Ldotbelow'] = 0x1E36;\n t['Ldotbelowmacron'] = 0x1E38;\n t['Liwnarmenian'] = 0x053C;\n t['Lj'] = 0x01C8;\n t['Ljecyrillic'] = 0x0409;\n t['Llinebelow'] = 0x1E3A;\n t['Lmonospace'] = 0xFF2C;\n t['Lslash'] = 0x0141;\n t['Lslashsmall'] = 0xF6F9;\n t['Lsmall'] = 0xF76C;\n t['M'] = 0x004D;\n t['MBsquare'] = 0x3386;\n t['Macron'] = 0xF6D0;\n t['Macronsmall'] = 0xF7AF;\n t['Macute'] = 0x1E3E;\n t['Mcircle'] = 0x24C2;\n t['Mdotaccent'] = 0x1E40;\n t['Mdotbelow'] = 0x1E42;\n t['Menarmenian'] = 0x0544;\n t['Mmonospace'] = 0xFF2D;\n t['Msmall'] = 0xF76D;\n t['Mturned'] = 0x019C;\n t['Mu'] = 0x039C;\n t['N'] = 0x004E;\n t['NJ'] = 0x01CA;\n t['Nacute'] = 0x0143;\n t['Ncaron'] = 0x0147;\n t['Ncedilla'] = 0x0145;\n t['Ncircle'] = 0x24C3;\n t['Ncircumflexbelow'] = 0x1E4A;\n t['Ncommaaccent'] = 0x0145;\n t['Ndotaccent'] = 0x1E44;\n t['Ndotbelow'] = 0x1E46;\n t['Nhookleft'] = 0x019D;\n t['Nineroman'] = 0x2168;\n t['Nj'] = 0x01CB;\n t['Njecyrillic'] = 0x040A;\n t['Nlinebelow'] = 0x1E48;\n t['Nmonospace'] = 0xFF2E;\n t['Nowarmenian'] = 0x0546;\n t['Nsmall'] = 0xF76E;\n t['Ntilde'] = 0x00D1;\n t['Ntildesmall'] = 0xF7F1;\n t['Nu'] = 0x039D;\n t['O'] = 0x004F;\n t['OE'] = 0x0152;\n t['OEsmall'] = 0xF6FA;\n t['Oacute'] = 0x00D3;\n t['Oacutesmall'] = 0xF7F3;\n t['Obarredcyrillic'] = 0x04E8;\n t['Obarreddieresiscyrillic'] = 0x04EA;\n t['Obreve'] = 0x014E;\n t['Ocaron'] = 0x01D1;\n t['Ocenteredtilde'] = 0x019F;\n t['Ocircle'] = 0x24C4;\n t['Ocircumflex'] = 0x00D4;\n t['Ocircumflexacute'] = 0x1ED0;\n t['Ocircumflexdotbelow'] = 0x1ED8;\n t['Ocircumflexgrave'] = 0x1ED2;\n t['Ocircumflexhookabove'] = 0x1ED4;\n t['Ocircumflexsmall'] = 0xF7F4;\n t['Ocircumflextilde'] = 0x1ED6;\n t['Ocyrillic'] = 0x041E;\n t['Odblacute'] = 0x0150;\n t['Odblgrave'] = 0x020C;\n t['Odieresis'] = 0x00D6;\n t['Odieresiscyrillic'] = 0x04E6;\n t['Odieresissmall'] = 0xF7F6;\n t['Odotbelow'] = 0x1ECC;\n t['Ogoneksmall'] = 0xF6FB;\n t['Ograve'] = 0x00D2;\n t['Ogravesmall'] = 0xF7F2;\n t['Oharmenian'] = 0x0555;\n t['Ohm'] = 0x2126;\n t['Ohookabove'] = 0x1ECE;\n t['Ohorn'] = 0x01A0;\n t['Ohornacute'] = 0x1EDA;\n t['Ohorndotbelow'] = 0x1EE2;\n t['Ohorngrave'] = 0x1EDC;\n t['Ohornhookabove'] = 0x1EDE;\n t['Ohorntilde'] = 0x1EE0;\n t['Ohungarumlaut'] = 0x0150;\n t['Oi'] = 0x01A2;\n t['Oinvertedbreve'] = 0x020E;\n t['Omacron'] = 0x014C;\n t['Omacronacute'] = 0x1E52;\n t['Omacrongrave'] = 0x1E50;\n t['Omega'] = 0x2126;\n t['Omegacyrillic'] = 0x0460;\n t['Omegagreek'] = 0x03A9;\n t['Omegaroundcyrillic'] = 0x047A;\n t['Omegatitlocyrillic'] = 0x047C;\n t['Omegatonos'] = 0x038F;\n t['Omicron'] = 0x039F;\n t['Omicrontonos'] = 0x038C;\n t['Omonospace'] = 0xFF2F;\n t['Oneroman'] = 0x2160;\n t['Oogonek'] = 0x01EA;\n t['Oogonekmacron'] = 0x01EC;\n t['Oopen'] = 0x0186;\n t['Oslash'] = 0x00D8;\n t['Oslashacute'] = 0x01FE;\n t['Oslashsmall'] = 0xF7F8;\n t['Osmall'] = 0xF76F;\n t['Ostrokeacute'] = 0x01FE;\n t['Otcyrillic'] = 0x047E;\n t['Otilde'] = 0x00D5;\n t['Otildeacute'] = 0x1E4C;\n t['Otildedieresis'] = 0x1E4E;\n t['Otildesmall'] = 0xF7F5;\n t['P'] = 0x0050;\n t['Pacute'] = 0x1E54;\n t['Pcircle'] = 0x24C5;\n t['Pdotaccent'] = 0x1E56;\n t['Pecyrillic'] = 0x041F;\n t['Peharmenian'] = 0x054A;\n t['Pemiddlehookcyrillic'] = 0x04A6;\n t['Phi'] = 0x03A6;\n t['Phook'] = 0x01A4;\n t['Pi'] = 0x03A0;\n t['Piwrarmenian'] = 0x0553;\n t['Pmonospace'] = 0xFF30;\n t['Psi'] = 0x03A8;\n t['Psicyrillic'] = 0x0470;\n t['Psmall'] = 0xF770;\n t['Q'] = 0x0051;\n t['Qcircle'] = 0x24C6;\n t['Qmonospace'] = 0xFF31;\n t['Qsmall'] = 0xF771;\n t['R'] = 0x0052;\n t['Raarmenian'] = 0x054C;\n t['Racute'] = 0x0154;\n t['Rcaron'] = 0x0158;\n t['Rcedilla'] = 0x0156;\n t['Rcircle'] = 0x24C7;\n t['Rcommaaccent'] = 0x0156;\n t['Rdblgrave'] = 0x0210;\n t['Rdotaccent'] = 0x1E58;\n t['Rdotbelow'] = 0x1E5A;\n t['Rdotbelowmacron'] = 0x1E5C;\n t['Reharmenian'] = 0x0550;\n t['Rfraktur'] = 0x211C;\n t['Rho'] = 0x03A1;\n t['Ringsmall'] = 0xF6FC;\n t['Rinvertedbreve'] = 0x0212;\n t['Rlinebelow'] = 0x1E5E;\n t['Rmonospace'] = 0xFF32;\n t['Rsmall'] = 0xF772;\n t['Rsmallinverted'] = 0x0281;\n t['Rsmallinvertedsuperior'] = 0x02B6;\n t['S'] = 0x0053;\n t['SF010000'] = 0x250C;\n t['SF020000'] = 0x2514;\n t['SF030000'] = 0x2510;\n t['SF040000'] = 0x2518;\n t['SF050000'] = 0x253C;\n t['SF060000'] = 0x252C;\n t['SF070000'] = 0x2534;\n t['SF080000'] = 0x251C;\n t['SF090000'] = 0x2524;\n t['SF100000'] = 0x2500;\n t['SF110000'] = 0x2502;\n t['SF190000'] = 0x2561;\n t['SF200000'] = 0x2562;\n t['SF210000'] = 0x2556;\n t['SF220000'] = 0x2555;\n t['SF230000'] = 0x2563;\n t['SF240000'] = 0x2551;\n t['SF250000'] = 0x2557;\n t['SF260000'] = 0x255D;\n t['SF270000'] = 0x255C;\n t['SF280000'] = 0x255B;\n t['SF360000'] = 0x255E;\n t['SF370000'] = 0x255F;\n t['SF380000'] = 0x255A;\n t['SF390000'] = 0x2554;\n t['SF400000'] = 0x2569;\n t['SF410000'] = 0x2566;\n t['SF420000'] = 0x2560;\n t['SF430000'] = 0x2550;\n t['SF440000'] = 0x256C;\n t['SF450000'] = 0x2567;\n t['SF460000'] = 0x2568;\n t['SF470000'] = 0x2564;\n t['SF480000'] = 0x2565;\n t['SF490000'] = 0x2559;\n t['SF500000'] = 0x2558;\n t['SF510000'] = 0x2552;\n t['SF520000'] = 0x2553;\n t['SF530000'] = 0x256B;\n t['SF540000'] = 0x256A;\n t['Sacute'] = 0x015A;\n t['Sacutedotaccent'] = 0x1E64;\n t['Sampigreek'] = 0x03E0;\n t['Scaron'] = 0x0160;\n t['Scarondotaccent'] = 0x1E66;\n t['Scaronsmall'] = 0xF6FD;\n t['Scedilla'] = 0x015E;\n t['Schwa'] = 0x018F;\n t['Schwacyrillic'] = 0x04D8;\n t['Schwadieresiscyrillic'] = 0x04DA;\n t['Scircle'] = 0x24C8;\n t['Scircumflex'] = 0x015C;\n t['Scommaaccent'] = 0x0218;\n t['Sdotaccent'] = 0x1E60;\n t['Sdotbelow'] = 0x1E62;\n t['Sdotbelowdotaccent'] = 0x1E68;\n t['Seharmenian'] = 0x054D;\n t['Sevenroman'] = 0x2166;\n t['Shaarmenian'] = 0x0547;\n t['Shacyrillic'] = 0x0428;\n t['Shchacyrillic'] = 0x0429;\n t['Sheicoptic'] = 0x03E2;\n t['Shhacyrillic'] = 0x04BA;\n t['Shimacoptic'] = 0x03EC;\n t['Sigma'] = 0x03A3;\n t['Sixroman'] = 0x2165;\n t['Smonospace'] = 0xFF33;\n t['Softsigncyrillic'] = 0x042C;\n t['Ssmall'] = 0xF773;\n t['Stigmagreek'] = 0x03DA;\n t['T'] = 0x0054;\n t['Tau'] = 0x03A4;\n t['Tbar'] = 0x0166;\n t['Tcaron'] = 0x0164;\n t['Tcedilla'] = 0x0162;\n t['Tcircle'] = 0x24C9;\n t['Tcircumflexbelow'] = 0x1E70;\n t['Tcommaaccent'] = 0x0162;\n t['Tdotaccent'] = 0x1E6A;\n t['Tdotbelow'] = 0x1E6C;\n t['Tecyrillic'] = 0x0422;\n t['Tedescendercyrillic'] = 0x04AC;\n t['Tenroman'] = 0x2169;\n t['Tetsecyrillic'] = 0x04B4;\n t['Theta'] = 0x0398;\n t['Thook'] = 0x01AC;\n t['Thorn'] = 0x00DE;\n t['Thornsmall'] = 0xF7FE;\n t['Threeroman'] = 0x2162;\n t['Tildesmall'] = 0xF6FE;\n t['Tiwnarmenian'] = 0x054F;\n t['Tlinebelow'] = 0x1E6E;\n t['Tmonospace'] = 0xFF34;\n t['Toarmenian'] = 0x0539;\n t['Tonefive'] = 0x01BC;\n t['Tonesix'] = 0x0184;\n t['Tonetwo'] = 0x01A7;\n t['Tretroflexhook'] = 0x01AE;\n t['Tsecyrillic'] = 0x0426;\n t['Tshecyrillic'] = 0x040B;\n t['Tsmall'] = 0xF774;\n t['Twelveroman'] = 0x216B;\n t['Tworoman'] = 0x2161;\n t['U'] = 0x0055;\n t['Uacute'] = 0x00DA;\n t['Uacutesmall'] = 0xF7FA;\n t['Ubreve'] = 0x016C;\n t['Ucaron'] = 0x01D3;\n t['Ucircle'] = 0x24CA;\n t['Ucircumflex'] = 0x00DB;\n t['Ucircumflexbelow'] = 0x1E76;\n t['Ucircumflexsmall'] = 0xF7FB;\n t['Ucyrillic'] = 0x0423;\n t['Udblacute'] = 0x0170;\n t['Udblgrave'] = 0x0214;\n t['Udieresis'] = 0x00DC;\n t['Udieresisacute'] = 0x01D7;\n t['Udieresisbelow'] = 0x1E72;\n t['Udieresiscaron'] = 0x01D9;\n t['Udieresiscyrillic'] = 0x04F0;\n t['Udieresisgrave'] = 0x01DB;\n t['Udieresismacron'] = 0x01D5;\n t['Udieresissmall'] = 0xF7FC;\n t['Udotbelow'] = 0x1EE4;\n t['Ugrave'] = 0x00D9;\n t['Ugravesmall'] = 0xF7F9;\n t['Uhookabove'] = 0x1EE6;\n t['Uhorn'] = 0x01AF;\n t['Uhornacute'] = 0x1EE8;\n t['Uhorndotbelow'] = 0x1EF0;\n t['Uhorngrave'] = 0x1EEA;\n t['Uhornhookabove'] = 0x1EEC;\n t['Uhorntilde'] = 0x1EEE;\n t['Uhungarumlaut'] = 0x0170;\n t['Uhungarumlautcyrillic'] = 0x04F2;\n t['Uinvertedbreve'] = 0x0216;\n t['Ukcyrillic'] = 0x0478;\n t['Umacron'] = 0x016A;\n t['Umacroncyrillic'] = 0x04EE;\n t['Umacrondieresis'] = 0x1E7A;\n t['Umonospace'] = 0xFF35;\n t['Uogonek'] = 0x0172;\n t['Upsilon'] = 0x03A5;\n t['Upsilon1'] = 0x03D2;\n t['Upsilonacutehooksymbolgreek'] = 0x03D3;\n t['Upsilonafrican'] = 0x01B1;\n t['Upsilondieresis'] = 0x03AB;\n t['Upsilondieresishooksymbolgreek'] = 0x03D4;\n t['Upsilonhooksymbol'] = 0x03D2;\n t['Upsilontonos'] = 0x038E;\n t['Uring'] = 0x016E;\n t['Ushortcyrillic'] = 0x040E;\n t['Usmall'] = 0xF775;\n t['Ustraightcyrillic'] = 0x04AE;\n t['Ustraightstrokecyrillic'] = 0x04B0;\n t['Utilde'] = 0x0168;\n t['Utildeacute'] = 0x1E78;\n t['Utildebelow'] = 0x1E74;\n t['V'] = 0x0056;\n t['Vcircle'] = 0x24CB;\n t['Vdotbelow'] = 0x1E7E;\n t['Vecyrillic'] = 0x0412;\n t['Vewarmenian'] = 0x054E;\n t['Vhook'] = 0x01B2;\n t['Vmonospace'] = 0xFF36;\n t['Voarmenian'] = 0x0548;\n t['Vsmall'] = 0xF776;\n t['Vtilde'] = 0x1E7C;\n t['W'] = 0x0057;\n t['Wacute'] = 0x1E82;\n t['Wcircle'] = 0x24CC;\n t['Wcircumflex'] = 0x0174;\n t['Wdieresis'] = 0x1E84;\n t['Wdotaccent'] = 0x1E86;\n t['Wdotbelow'] = 0x1E88;\n t['Wgrave'] = 0x1E80;\n t['Wmonospace'] = 0xFF37;\n t['Wsmall'] = 0xF777;\n t['X'] = 0x0058;\n t['Xcircle'] = 0x24CD;\n t['Xdieresis'] = 0x1E8C;\n t['Xdotaccent'] = 0x1E8A;\n t['Xeharmenian'] = 0x053D;\n t['Xi'] = 0x039E;\n t['Xmonospace'] = 0xFF38;\n t['Xsmall'] = 0xF778;\n t['Y'] = 0x0059;\n t['Yacute'] = 0x00DD;\n t['Yacutesmall'] = 0xF7FD;\n t['Yatcyrillic'] = 0x0462;\n t['Ycircle'] = 0x24CE;\n t['Ycircumflex'] = 0x0176;\n t['Ydieresis'] = 0x0178;\n t['Ydieresissmall'] = 0xF7FF;\n t['Ydotaccent'] = 0x1E8E;\n t['Ydotbelow'] = 0x1EF4;\n t['Yericyrillic'] = 0x042B;\n t['Yerudieresiscyrillic'] = 0x04F8;\n t['Ygrave'] = 0x1EF2;\n t['Yhook'] = 0x01B3;\n t['Yhookabove'] = 0x1EF6;\n t['Yiarmenian'] = 0x0545;\n t['Yicyrillic'] = 0x0407;\n t['Yiwnarmenian'] = 0x0552;\n t['Ymonospace'] = 0xFF39;\n t['Ysmall'] = 0xF779;\n t['Ytilde'] = 0x1EF8;\n t['Yusbigcyrillic'] = 0x046A;\n t['Yusbigiotifiedcyrillic'] = 0x046C;\n t['Yuslittlecyrillic'] = 0x0466;\n t['Yuslittleiotifiedcyrillic'] = 0x0468;\n t['Z'] = 0x005A;\n t['Zaarmenian'] = 0x0536;\n t['Zacute'] = 0x0179;\n t['Zcaron'] = 0x017D;\n t['Zcaronsmall'] = 0xF6FF;\n t['Zcircle'] = 0x24CF;\n t['Zcircumflex'] = 0x1E90;\n t['Zdot'] = 0x017B;\n t['Zdotaccent'] = 0x017B;\n t['Zdotbelow'] = 0x1E92;\n t['Zecyrillic'] = 0x0417;\n t['Zedescendercyrillic'] = 0x0498;\n t['Zedieresiscyrillic'] = 0x04DE;\n t['Zeta'] = 0x0396;\n t['Zhearmenian'] = 0x053A;\n t['Zhebrevecyrillic'] = 0x04C1;\n t['Zhecyrillic'] = 0x0416;\n t['Zhedescendercyrillic'] = 0x0496;\n t['Zhedieresiscyrillic'] = 0x04DC;\n t['Zlinebelow'] = 0x1E94;\n t['Zmonospace'] = 0xFF3A;\n t['Zsmall'] = 0xF77A;\n t['Zstroke'] = 0x01B5;\n t['a'] = 0x0061;\n t['aabengali'] = 0x0986;\n t['aacute'] = 0x00E1;\n t['aadeva'] = 0x0906;\n t['aagujarati'] = 0x0A86;\n t['aagurmukhi'] = 0x0A06;\n t['aamatragurmukhi'] = 0x0A3E;\n t['aarusquare'] = 0x3303;\n t['aavowelsignbengali'] = 0x09BE;\n t['aavowelsigndeva'] = 0x093E;\n t['aavowelsigngujarati'] = 0x0ABE;\n t['abbreviationmarkarmenian'] = 0x055F;\n t['abbreviationsigndeva'] = 0x0970;\n t['abengali'] = 0x0985;\n t['abopomofo'] = 0x311A;\n t['abreve'] = 0x0103;\n t['abreveacute'] = 0x1EAF;\n t['abrevecyrillic'] = 0x04D1;\n t['abrevedotbelow'] = 0x1EB7;\n t['abrevegrave'] = 0x1EB1;\n t['abrevehookabove'] = 0x1EB3;\n t['abrevetilde'] = 0x1EB5;\n t['acaron'] = 0x01CE;\n t['acircle'] = 0x24D0;\n t['acircumflex'] = 0x00E2;\n t['acircumflexacute'] = 0x1EA5;\n t['acircumflexdotbelow'] = 0x1EAD;\n t['acircumflexgrave'] = 0x1EA7;\n t['acircumflexhookabove'] = 0x1EA9;\n t['acircumflextilde'] = 0x1EAB;\n t['acute'] = 0x00B4;\n t['acutebelowcmb'] = 0x0317;\n t['acutecmb'] = 0x0301;\n t['acutecomb'] = 0x0301;\n t['acutedeva'] = 0x0954;\n t['acutelowmod'] = 0x02CF;\n t['acutetonecmb'] = 0x0341;\n t['acyrillic'] = 0x0430;\n t['adblgrave'] = 0x0201;\n t['addakgurmukhi'] = 0x0A71;\n t['adeva'] = 0x0905;\n t['adieresis'] = 0x00E4;\n t['adieresiscyrillic'] = 0x04D3;\n t['adieresismacron'] = 0x01DF;\n t['adotbelow'] = 0x1EA1;\n t['adotmacron'] = 0x01E1;\n t['ae'] = 0x00E6;\n t['aeacute'] = 0x01FD;\n t['aekorean'] = 0x3150;\n t['aemacron'] = 0x01E3;\n t['afii00208'] = 0x2015;\n t['afii08941'] = 0x20A4;\n t['afii10017'] = 0x0410;\n t['afii10018'] = 0x0411;\n t['afii10019'] = 0x0412;\n t['afii10020'] = 0x0413;\n t['afii10021'] = 0x0414;\n t['afii10022'] = 0x0415;\n t['afii10023'] = 0x0401;\n t['afii10024'] = 0x0416;\n t['afii10025'] = 0x0417;\n t['afii10026'] = 0x0418;\n t['afii10027'] = 0x0419;\n t['afii10028'] = 0x041A;\n t['afii10029'] = 0x041B;\n t['afii10030'] = 0x041C;\n t['afii10031'] = 0x041D;\n t['afii10032'] = 0x041E;\n t['afii10033'] = 0x041F;\n t['afii10034'] = 0x0420;\n t['afii10035'] = 0x0421;\n t['afii10036'] = 0x0422;\n t['afii10037'] = 0x0423;\n t['afii10038'] = 0x0424;\n t['afii10039'] = 0x0425;\n t['afii10040'] = 0x0426;\n t['afii10041'] = 0x0427;\n t['afii10042'] = 0x0428;\n t['afii10043'] = 0x0429;\n t['afii10044'] = 0x042A;\n t['afii10045'] = 0x042B;\n t['afii10046'] = 0x042C;\n t['afii10047'] = 0x042D;\n t['afii10048'] = 0x042E;\n t['afii10049'] = 0x042F;\n t['afii10050'] = 0x0490;\n t['afii10051'] = 0x0402;\n t['afii10052'] = 0x0403;\n t['afii10053'] = 0x0404;\n t['afii10054'] = 0x0405;\n t['afii10055'] = 0x0406;\n t['afii10056'] = 0x0407;\n t['afii10057'] = 0x0408;\n t['afii10058'] = 0x0409;\n t['afii10059'] = 0x040A;\n t['afii10060'] = 0x040B;\n t['afii10061'] = 0x040C;\n t['afii10062'] = 0x040E;\n t['afii10063'] = 0xF6C4;\n t['afii10064'] = 0xF6C5;\n t['afii10065'] = 0x0430;\n t['afii10066'] = 0x0431;\n t['afii10067'] = 0x0432;\n t['afii10068'] = 0x0433;\n t['afii10069'] = 0x0434;\n t['afii10070'] = 0x0435;\n t['afii10071'] = 0x0451;\n t['afii10072'] = 0x0436;\n t['afii10073'] = 0x0437;\n t['afii10074'] = 0x0438;\n t['afii10075'] = 0x0439;\n t['afii10076'] = 0x043A;\n t['afii10077'] = 0x043B;\n t['afii10078'] = 0x043C;\n t['afii10079'] = 0x043D;\n t['afii10080'] = 0x043E;\n t['afii10081'] = 0x043F;\n t['afii10082'] = 0x0440;\n t['afii10083'] = 0x0441;\n t['afii10084'] = 0x0442;\n t['afii10085'] = 0x0443;\n t['afii10086'] = 0x0444;\n t['afii10087'] = 0x0445;\n t['afii10088'] = 0x0446;\n t['afii10089'] = 0x0447;\n t['afii10090'] = 0x0448;\n t['afii10091'] = 0x0449;\n t['afii10092'] = 0x044A;\n t['afii10093'] = 0x044B;\n t['afii10094'] = 0x044C;\n t['afii10095'] = 0x044D;\n t['afii10096'] = 0x044E;\n t['afii10097'] = 0x044F;\n t['afii10098'] = 0x0491;\n t['afii10099'] = 0x0452;\n t['afii10100'] = 0x0453;\n t['afii10101'] = 0x0454;\n t['afii10102'] = 0x0455;\n t['afii10103'] = 0x0456;\n t['afii10104'] = 0x0457;\n t['afii10105'] = 0x0458;\n t['afii10106'] = 0x0459;\n t['afii10107'] = 0x045A;\n t['afii10108'] = 0x045B;\n t['afii10109'] = 0x045C;\n t['afii10110'] = 0x045E;\n t['afii10145'] = 0x040F;\n t['afii10146'] = 0x0462;\n t['afii10147'] = 0x0472;\n t['afii10148'] = 0x0474;\n t['afii10192'] = 0xF6C6;\n t['afii10193'] = 0x045F;\n t['afii10194'] = 0x0463;\n t['afii10195'] = 0x0473;\n t['afii10196'] = 0x0475;\n t['afii10831'] = 0xF6C7;\n t['afii10832'] = 0xF6C8;\n t['afii10846'] = 0x04D9;\n t['afii299'] = 0x200E;\n t['afii300'] = 0x200F;\n t['afii301'] = 0x200D;\n t['afii57381'] = 0x066A;\n t['afii57388'] = 0x060C;\n t['afii57392'] = 0x0660;\n t['afii57393'] = 0x0661;\n t['afii57394'] = 0x0662;\n t['afii57395'] = 0x0663;\n t['afii57396'] = 0x0664;\n t['afii57397'] = 0x0665;\n t['afii57398'] = 0x0666;\n t['afii57399'] = 0x0667;\n t['afii57400'] = 0x0668;\n t['afii57401'] = 0x0669;\n t['afii57403'] = 0x061B;\n t['afii57407'] = 0x061F;\n t['afii57409'] = 0x0621;\n t['afii57410'] = 0x0622;\n t['afii57411'] = 0x0623;\n t['afii57412'] = 0x0624;\n t['afii57413'] = 0x0625;\n t['afii57414'] = 0x0626;\n t['afii57415'] = 0x0627;\n t['afii57416'] = 0x0628;\n t['afii57417'] = 0x0629;\n t['afii57418'] = 0x062A;\n t['afii57419'] = 0x062B;\n t['afii57420'] = 0x062C;\n t['afii57421'] = 0x062D;\n t['afii57422'] = 0x062E;\n t['afii57423'] = 0x062F;\n t['afii57424'] = 0x0630;\n t['afii57425'] = 0x0631;\n t['afii57426'] = 0x0632;\n t['afii57427'] = 0x0633;\n t['afii57428'] = 0x0634;\n t['afii57429'] = 0x0635;\n t['afii57430'] = 0x0636;\n t['afii57431'] = 0x0637;\n t['afii57432'] = 0x0638;\n t['afii57433'] = 0x0639;\n t['afii57434'] = 0x063A;\n t['afii57440'] = 0x0640;\n t['afii57441'] = 0x0641;\n t['afii57442'] = 0x0642;\n t['afii57443'] = 0x0643;\n t['afii57444'] = 0x0644;\n t['afii57445'] = 0x0645;\n t['afii57446'] = 0x0646;\n t['afii57448'] = 0x0648;\n t['afii57449'] = 0x0649;\n t['afii57450'] = 0x064A;\n t['afii57451'] = 0x064B;\n t['afii57452'] = 0x064C;\n t['afii57453'] = 0x064D;\n t['afii57454'] = 0x064E;\n t['afii57455'] = 0x064F;\n t['afii57456'] = 0x0650;\n t['afii57457'] = 0x0651;\n t['afii57458'] = 0x0652;\n t['afii57470'] = 0x0647;\n t['afii57505'] = 0x06A4;\n t['afii57506'] = 0x067E;\n t['afii57507'] = 0x0686;\n t['afii57508'] = 0x0698;\n t['afii57509'] = 0x06AF;\n t['afii57511'] = 0x0679;\n t['afii57512'] = 0x0688;\n t['afii57513'] = 0x0691;\n t['afii57514'] = 0x06BA;\n t['afii57519'] = 0x06D2;\n t['afii57534'] = 0x06D5;\n t['afii57636'] = 0x20AA;\n t['afii57645'] = 0x05BE;\n t['afii57658'] = 0x05C3;\n t['afii57664'] = 0x05D0;\n t['afii57665'] = 0x05D1;\n t['afii57666'] = 0x05D2;\n t['afii57667'] = 0x05D3;\n t['afii57668'] = 0x05D4;\n t['afii57669'] = 0x05D5;\n t['afii57670'] = 0x05D6;\n t['afii57671'] = 0x05D7;\n t['afii57672'] = 0x05D8;\n t['afii57673'] = 0x05D9;\n t['afii57674'] = 0x05DA;\n t['afii57675'] = 0x05DB;\n t['afii57676'] = 0x05DC;\n t['afii57677'] = 0x05DD;\n t['afii57678'] = 0x05DE;\n t['afii57679'] = 0x05DF;\n t['afii57680'] = 0x05E0;\n t['afii57681'] = 0x05E1;\n t['afii57682'] = 0x05E2;\n t['afii57683'] = 0x05E3;\n t['afii57684'] = 0x05E4;\n t['afii57685'] = 0x05E5;\n t['afii57686'] = 0x05E6;\n t['afii57687'] = 0x05E7;\n t['afii57688'] = 0x05E8;\n t['afii57689'] = 0x05E9;\n t['afii57690'] = 0x05EA;\n t['afii57694'] = 0xFB2A;\n t['afii57695'] = 0xFB2B;\n t['afii57700'] = 0xFB4B;\n t['afii57705'] = 0xFB1F;\n t['afii57716'] = 0x05F0;\n t['afii57717'] = 0x05F1;\n t['afii57718'] = 0x05F2;\n t['afii57723'] = 0xFB35;\n t['afii57793'] = 0x05B4;\n t['afii57794'] = 0x05B5;\n t['afii57795'] = 0x05B6;\n t['afii57796'] = 0x05BB;\n t['afii57797'] = 0x05B8;\n t['afii57798'] = 0x05B7;\n t['afii57799'] = 0x05B0;\n t['afii57800'] = 0x05B2;\n t['afii57801'] = 0x05B1;\n t['afii57802'] = 0x05B3;\n t['afii57803'] = 0x05C2;\n t['afii57804'] = 0x05C1;\n t['afii57806'] = 0x05B9;\n t['afii57807'] = 0x05BC;\n t['afii57839'] = 0x05BD;\n t['afii57841'] = 0x05BF;\n t['afii57842'] = 0x05C0;\n t['afii57929'] = 0x02BC;\n t['afii61248'] = 0x2105;\n t['afii61289'] = 0x2113;\n t['afii61352'] = 0x2116;\n t['afii61573'] = 0x202C;\n t['afii61574'] = 0x202D;\n t['afii61575'] = 0x202E;\n t['afii61664'] = 0x200C;\n t['afii63167'] = 0x066D;\n t['afii64937'] = 0x02BD;\n t['agrave'] = 0x00E0;\n t['agujarati'] = 0x0A85;\n t['agurmukhi'] = 0x0A05;\n t['ahiragana'] = 0x3042;\n t['ahookabove'] = 0x1EA3;\n t['aibengali'] = 0x0990;\n t['aibopomofo'] = 0x311E;\n t['aideva'] = 0x0910;\n t['aiecyrillic'] = 0x04D5;\n t['aigujarati'] = 0x0A90;\n t['aigurmukhi'] = 0x0A10;\n t['aimatragurmukhi'] = 0x0A48;\n t['ainarabic'] = 0x0639;\n t['ainfinalarabic'] = 0xFECA;\n t['aininitialarabic'] = 0xFECB;\n t['ainmedialarabic'] = 0xFECC;\n t['ainvertedbreve'] = 0x0203;\n t['aivowelsignbengali'] = 0x09C8;\n t['aivowelsigndeva'] = 0x0948;\n t['aivowelsigngujarati'] = 0x0AC8;\n t['akatakana'] = 0x30A2;\n t['akatakanahalfwidth'] = 0xFF71;\n t['akorean'] = 0x314F;\n t['alef'] = 0x05D0;\n t['alefarabic'] = 0x0627;\n t['alefdageshhebrew'] = 0xFB30;\n t['aleffinalarabic'] = 0xFE8E;\n t['alefhamzaabovearabic'] = 0x0623;\n t['alefhamzaabovefinalarabic'] = 0xFE84;\n t['alefhamzabelowarabic'] = 0x0625;\n t['alefhamzabelowfinalarabic'] = 0xFE88;\n t['alefhebrew'] = 0x05D0;\n t['aleflamedhebrew'] = 0xFB4F;\n t['alefmaddaabovearabic'] = 0x0622;\n t['alefmaddaabovefinalarabic'] = 0xFE82;\n t['alefmaksuraarabic'] = 0x0649;\n t['alefmaksurafinalarabic'] = 0xFEF0;\n t['alefmaksurainitialarabic'] = 0xFEF3;\n t['alefmaksuramedialarabic'] = 0xFEF4;\n t['alefpatahhebrew'] = 0xFB2E;\n t['alefqamatshebrew'] = 0xFB2F;\n t['aleph'] = 0x2135;\n t['allequal'] = 0x224C;\n t['alpha'] = 0x03B1;\n t['alphatonos'] = 0x03AC;\n t['amacron'] = 0x0101;\n t['amonospace'] = 0xFF41;\n t['ampersand'] = 0x0026;\n t['ampersandmonospace'] = 0xFF06;\n t['ampersandsmall'] = 0xF726;\n t['amsquare'] = 0x33C2;\n t['anbopomofo'] = 0x3122;\n t['angbopomofo'] = 0x3124;\n t['angbracketleft'] = 0x3008;\n t['angbracketright'] = 0x3009;\n t['angkhankhuthai'] = 0x0E5A;\n t['angle'] = 0x2220;\n t['anglebracketleft'] = 0x3008;\n t['anglebracketleftvertical'] = 0xFE3F;\n t['anglebracketright'] = 0x3009;\n t['anglebracketrightvertical'] = 0xFE40;\n t['angleleft'] = 0x2329;\n t['angleright'] = 0x232A;\n t['angstrom'] = 0x212B;\n t['anoteleia'] = 0x0387;\n t['anudattadeva'] = 0x0952;\n t['anusvarabengali'] = 0x0982;\n t['anusvaradeva'] = 0x0902;\n t['anusvaragujarati'] = 0x0A82;\n t['aogonek'] = 0x0105;\n t['apaatosquare'] = 0x3300;\n t['aparen'] = 0x249C;\n t['apostrophearmenian'] = 0x055A;\n t['apostrophemod'] = 0x02BC;\n t['apple'] = 0xF8FF;\n t['approaches'] = 0x2250;\n t['approxequal'] = 0x2248;\n t['approxequalorimage'] = 0x2252;\n t['approximatelyequal'] = 0x2245;\n t['araeaekorean'] = 0x318E;\n t['araeakorean'] = 0x318D;\n t['arc'] = 0x2312;\n t['arighthalfring'] = 0x1E9A;\n t['aring'] = 0x00E5;\n t['aringacute'] = 0x01FB;\n t['aringbelow'] = 0x1E01;\n t['arrowboth'] = 0x2194;\n t['arrowdashdown'] = 0x21E3;\n t['arrowdashleft'] = 0x21E0;\n t['arrowdashright'] = 0x21E2;\n t['arrowdashup'] = 0x21E1;\n t['arrowdblboth'] = 0x21D4;\n t['arrowdbldown'] = 0x21D3;\n t['arrowdblleft'] = 0x21D0;\n t['arrowdblright'] = 0x21D2;\n t['arrowdblup'] = 0x21D1;\n t['arrowdown'] = 0x2193;\n t['arrowdownleft'] = 0x2199;\n t['arrowdownright'] = 0x2198;\n t['arrowdownwhite'] = 0x21E9;\n t['arrowheaddownmod'] = 0x02C5;\n t['arrowheadleftmod'] = 0x02C2;\n t['arrowheadrightmod'] = 0x02C3;\n t['arrowheadupmod'] = 0x02C4;\n t['arrowhorizex'] = 0xF8E7;\n t['arrowleft'] = 0x2190;\n t['arrowleftdbl'] = 0x21D0;\n t['arrowleftdblstroke'] = 0x21CD;\n t['arrowleftoverright'] = 0x21C6;\n t['arrowleftwhite'] = 0x21E6;\n t['arrowright'] = 0x2192;\n t['arrowrightdblstroke'] = 0x21CF;\n t['arrowrightheavy'] = 0x279E;\n t['arrowrightoverleft'] = 0x21C4;\n t['arrowrightwhite'] = 0x21E8;\n t['arrowtableft'] = 0x21E4;\n t['arrowtabright'] = 0x21E5;\n t['arrowup'] = 0x2191;\n t['arrowupdn'] = 0x2195;\n t['arrowupdnbse'] = 0x21A8;\n t['arrowupdownbase'] = 0x21A8;\n t['arrowupleft'] = 0x2196;\n t['arrowupleftofdown'] = 0x21C5;\n t['arrowupright'] = 0x2197;\n t['arrowupwhite'] = 0x21E7;\n t['arrowvertex'] = 0xF8E6;\n t['asciicircum'] = 0x005E;\n t['asciicircummonospace'] = 0xFF3E;\n t['asciitilde'] = 0x007E;\n t['asciitildemonospace'] = 0xFF5E;\n t['ascript'] = 0x0251;\n t['ascriptturned'] = 0x0252;\n t['asmallhiragana'] = 0x3041;\n t['asmallkatakana'] = 0x30A1;\n t['asmallkatakanahalfwidth'] = 0xFF67;\n t['asterisk'] = 0x002A;\n t['asteriskaltonearabic'] = 0x066D;\n t['asteriskarabic'] = 0x066D;\n t['asteriskmath'] = 0x2217;\n t['asteriskmonospace'] = 0xFF0A;\n t['asterisksmall'] = 0xFE61;\n t['asterism'] = 0x2042;\n t['asuperior'] = 0xF6E9;\n t['asymptoticallyequal'] = 0x2243;\n t['at'] = 0x0040;\n t['atilde'] = 0x00E3;\n t['atmonospace'] = 0xFF20;\n t['atsmall'] = 0xFE6B;\n t['aturned'] = 0x0250;\n t['aubengali'] = 0x0994;\n t['aubopomofo'] = 0x3120;\n t['audeva'] = 0x0914;\n t['augujarati'] = 0x0A94;\n t['augurmukhi'] = 0x0A14;\n t['aulengthmarkbengali'] = 0x09D7;\n t['aumatragurmukhi'] = 0x0A4C;\n t['auvowelsignbengali'] = 0x09CC;\n t['auvowelsigndeva'] = 0x094C;\n t['auvowelsigngujarati'] = 0x0ACC;\n t['avagrahadeva'] = 0x093D;\n t['aybarmenian'] = 0x0561;\n t['ayin'] = 0x05E2;\n t['ayinaltonehebrew'] = 0xFB20;\n t['ayinhebrew'] = 0x05E2;\n t['b'] = 0x0062;\n t['babengali'] = 0x09AC;\n t['backslash'] = 0x005C;\n t['backslashmonospace'] = 0xFF3C;\n t['badeva'] = 0x092C;\n t['bagujarati'] = 0x0AAC;\n t['bagurmukhi'] = 0x0A2C;\n t['bahiragana'] = 0x3070;\n t['bahtthai'] = 0x0E3F;\n t['bakatakana'] = 0x30D0;\n t['bar'] = 0x007C;\n t['barmonospace'] = 0xFF5C;\n t['bbopomofo'] = 0x3105;\n t['bcircle'] = 0x24D1;\n t['bdotaccent'] = 0x1E03;\n t['bdotbelow'] = 0x1E05;\n t['beamedsixteenthnotes'] = 0x266C;\n t['because'] = 0x2235;\n t['becyrillic'] = 0x0431;\n t['beharabic'] = 0x0628;\n t['behfinalarabic'] = 0xFE90;\n t['behinitialarabic'] = 0xFE91;\n t['behiragana'] = 0x3079;\n t['behmedialarabic'] = 0xFE92;\n t['behmeeminitialarabic'] = 0xFC9F;\n t['behmeemisolatedarabic'] = 0xFC08;\n t['behnoonfinalarabic'] = 0xFC6D;\n t['bekatakana'] = 0x30D9;\n t['benarmenian'] = 0x0562;\n t['bet'] = 0x05D1;\n t['beta'] = 0x03B2;\n t['betasymbolgreek'] = 0x03D0;\n t['betdagesh'] = 0xFB31;\n t['betdageshhebrew'] = 0xFB31;\n t['bethebrew'] = 0x05D1;\n t['betrafehebrew'] = 0xFB4C;\n t['bhabengali'] = 0x09AD;\n t['bhadeva'] = 0x092D;\n t['bhagujarati'] = 0x0AAD;\n t['bhagurmukhi'] = 0x0A2D;\n t['bhook'] = 0x0253;\n t['bihiragana'] = 0x3073;\n t['bikatakana'] = 0x30D3;\n t['bilabialclick'] = 0x0298;\n t['bindigurmukhi'] = 0x0A02;\n t['birusquare'] = 0x3331;\n t['blackcircle'] = 0x25CF;\n t['blackdiamond'] = 0x25C6;\n t['blackdownpointingtriangle'] = 0x25BC;\n t['blackleftpointingpointer'] = 0x25C4;\n t['blackleftpointingtriangle'] = 0x25C0;\n t['blacklenticularbracketleft'] = 0x3010;\n t['blacklenticularbracketleftvertical'] = 0xFE3B;\n t['blacklenticularbracketright'] = 0x3011;\n t['blacklenticularbracketrightvertical'] = 0xFE3C;\n t['blacklowerlefttriangle'] = 0x25E3;\n t['blacklowerrighttriangle'] = 0x25E2;\n t['blackrectangle'] = 0x25AC;\n t['blackrightpointingpointer'] = 0x25BA;\n t['blackrightpointingtriangle'] = 0x25B6;\n t['blacksmallsquare'] = 0x25AA;\n t['blacksmilingface'] = 0x263B;\n t['blacksquare'] = 0x25A0;\n t['blackstar'] = 0x2605;\n t['blackupperlefttriangle'] = 0x25E4;\n t['blackupperrighttriangle'] = 0x25E5;\n t['blackuppointingsmalltriangle'] = 0x25B4;\n t['blackuppointingtriangle'] = 0x25B2;\n t['blank'] = 0x2423;\n t['blinebelow'] = 0x1E07;\n t['block'] = 0x2588;\n t['bmonospace'] = 0xFF42;\n t['bobaimaithai'] = 0x0E1A;\n t['bohiragana'] = 0x307C;\n t['bokatakana'] = 0x30DC;\n t['bparen'] = 0x249D;\n t['bqsquare'] = 0x33C3;\n t['braceex'] = 0xF8F4;\n t['braceleft'] = 0x007B;\n t['braceleftbt'] = 0xF8F3;\n t['braceleftmid'] = 0xF8F2;\n t['braceleftmonospace'] = 0xFF5B;\n t['braceleftsmall'] = 0xFE5B;\n t['bracelefttp'] = 0xF8F1;\n t['braceleftvertical'] = 0xFE37;\n t['braceright'] = 0x007D;\n t['bracerightbt'] = 0xF8FE;\n t['bracerightmid'] = 0xF8FD;\n t['bracerightmonospace'] = 0xFF5D;\n t['bracerightsmall'] = 0xFE5C;\n t['bracerighttp'] = 0xF8FC;\n t['bracerightvertical'] = 0xFE38;\n t['bracketleft'] = 0x005B;\n t['bracketleftbt'] = 0xF8F0;\n t['bracketleftex'] = 0xF8EF;\n t['bracketleftmonospace'] = 0xFF3B;\n t['bracketlefttp'] = 0xF8EE;\n t['bracketright'] = 0x005D;\n t['bracketrightbt'] = 0xF8FB;\n t['bracketrightex'] = 0xF8FA;\n t['bracketrightmonospace'] = 0xFF3D;\n t['bracketrighttp'] = 0xF8F9;\n t['breve'] = 0x02D8;\n t['brevebelowcmb'] = 0x032E;\n t['brevecmb'] = 0x0306;\n t['breveinvertedbelowcmb'] = 0x032F;\n t['breveinvertedcmb'] = 0x0311;\n t['breveinverteddoublecmb'] = 0x0361;\n t['bridgebelowcmb'] = 0x032A;\n t['bridgeinvertedbelowcmb'] = 0x033A;\n t['brokenbar'] = 0x00A6;\n t['bstroke'] = 0x0180;\n t['bsuperior'] = 0xF6EA;\n t['btopbar'] = 0x0183;\n t['buhiragana'] = 0x3076;\n t['bukatakana'] = 0x30D6;\n t['bullet'] = 0x2022;\n t['bulletinverse'] = 0x25D8;\n t['bulletoperator'] = 0x2219;\n t['bullseye'] = 0x25CE;\n t['c'] = 0x0063;\n t['caarmenian'] = 0x056E;\n t['cabengali'] = 0x099A;\n t['cacute'] = 0x0107;\n t['cadeva'] = 0x091A;\n t['cagujarati'] = 0x0A9A;\n t['cagurmukhi'] = 0x0A1A;\n t['calsquare'] = 0x3388;\n t['candrabindubengali'] = 0x0981;\n t['candrabinducmb'] = 0x0310;\n t['candrabindudeva'] = 0x0901;\n t['candrabindugujarati'] = 0x0A81;\n t['capslock'] = 0x21EA;\n t['careof'] = 0x2105;\n t['caron'] = 0x02C7;\n t['caronbelowcmb'] = 0x032C;\n t['caroncmb'] = 0x030C;\n t['carriagereturn'] = 0x21B5;\n t['cbopomofo'] = 0x3118;\n t['ccaron'] = 0x010D;\n t['ccedilla'] = 0x00E7;\n t['ccedillaacute'] = 0x1E09;\n t['ccircle'] = 0x24D2;\n t['ccircumflex'] = 0x0109;\n t['ccurl'] = 0x0255;\n t['cdot'] = 0x010B;\n t['cdotaccent'] = 0x010B;\n t['cdsquare'] = 0x33C5;\n t['cedilla'] = 0x00B8;\n t['cedillacmb'] = 0x0327;\n t['cent'] = 0x00A2;\n t['centigrade'] = 0x2103;\n t['centinferior'] = 0xF6DF;\n t['centmonospace'] = 0xFFE0;\n t['centoldstyle'] = 0xF7A2;\n t['centsuperior'] = 0xF6E0;\n t['chaarmenian'] = 0x0579;\n t['chabengali'] = 0x099B;\n t['chadeva'] = 0x091B;\n t['chagujarati'] = 0x0A9B;\n t['chagurmukhi'] = 0x0A1B;\n t['chbopomofo'] = 0x3114;\n t['cheabkhasiancyrillic'] = 0x04BD;\n t['checkmark'] = 0x2713;\n t['checyrillic'] = 0x0447;\n t['chedescenderabkhasiancyrillic'] = 0x04BF;\n t['chedescendercyrillic'] = 0x04B7;\n t['chedieresiscyrillic'] = 0x04F5;\n t['cheharmenian'] = 0x0573;\n t['chekhakassiancyrillic'] = 0x04CC;\n t['cheverticalstrokecyrillic'] = 0x04B9;\n t['chi'] = 0x03C7;\n t['chieuchacirclekorean'] = 0x3277;\n t['chieuchaparenkorean'] = 0x3217;\n t['chieuchcirclekorean'] = 0x3269;\n t['chieuchkorean'] = 0x314A;\n t['chieuchparenkorean'] = 0x3209;\n t['chochangthai'] = 0x0E0A;\n t['chochanthai'] = 0x0E08;\n t['chochingthai'] = 0x0E09;\n t['chochoethai'] = 0x0E0C;\n t['chook'] = 0x0188;\n t['cieucacirclekorean'] = 0x3276;\n t['cieucaparenkorean'] = 0x3216;\n t['cieuccirclekorean'] = 0x3268;\n t['cieuckorean'] = 0x3148;\n t['cieucparenkorean'] = 0x3208;\n t['cieucuparenkorean'] = 0x321C;\n t['circle'] = 0x25CB;\n t['circlecopyrt'] = 0x00A9;\n t['circlemultiply'] = 0x2297;\n t['circleot'] = 0x2299;\n t['circleplus'] = 0x2295;\n t['circlepostalmark'] = 0x3036;\n t['circlewithlefthalfblack'] = 0x25D0;\n t['circlewithrighthalfblack'] = 0x25D1;\n t['circumflex'] = 0x02C6;\n t['circumflexbelowcmb'] = 0x032D;\n t['circumflexcmb'] = 0x0302;\n t['clear'] = 0x2327;\n t['clickalveolar'] = 0x01C2;\n t['clickdental'] = 0x01C0;\n t['clicklateral'] = 0x01C1;\n t['clickretroflex'] = 0x01C3;\n t['club'] = 0x2663;\n t['clubsuitblack'] = 0x2663;\n t['clubsuitwhite'] = 0x2667;\n t['cmcubedsquare'] = 0x33A4;\n t['cmonospace'] = 0xFF43;\n t['cmsquaredsquare'] = 0x33A0;\n t['coarmenian'] = 0x0581;\n t['colon'] = 0x003A;\n t['colonmonetary'] = 0x20A1;\n t['colonmonospace'] = 0xFF1A;\n t['colonsign'] = 0x20A1;\n t['colonsmall'] = 0xFE55;\n t['colontriangularhalfmod'] = 0x02D1;\n t['colontriangularmod'] = 0x02D0;\n t['comma'] = 0x002C;\n t['commaabovecmb'] = 0x0313;\n t['commaaboverightcmb'] = 0x0315;\n t['commaaccent'] = 0xF6C3;\n t['commaarabic'] = 0x060C;\n t['commaarmenian'] = 0x055D;\n t['commainferior'] = 0xF6E1;\n t['commamonospace'] = 0xFF0C;\n t['commareversedabovecmb'] = 0x0314;\n t['commareversedmod'] = 0x02BD;\n t['commasmall'] = 0xFE50;\n t['commasuperior'] = 0xF6E2;\n t['commaturnedabovecmb'] = 0x0312;\n t['commaturnedmod'] = 0x02BB;\n t['compass'] = 0x263C;\n t['congruent'] = 0x2245;\n t['contourintegral'] = 0x222E;\n t['control'] = 0x2303;\n t['controlACK'] = 0x0006;\n t['controlBEL'] = 0x0007;\n t['controlBS'] = 0x0008;\n t['controlCAN'] = 0x0018;\n t['controlCR'] = 0x000D;\n t['controlDC1'] = 0x0011;\n t['controlDC2'] = 0x0012;\n t['controlDC3'] = 0x0013;\n t['controlDC4'] = 0x0014;\n t['controlDEL'] = 0x007F;\n t['controlDLE'] = 0x0010;\n t['controlEM'] = 0x0019;\n t['controlENQ'] = 0x0005;\n t['controlEOT'] = 0x0004;\n t['controlESC'] = 0x001B;\n t['controlETB'] = 0x0017;\n t['controlETX'] = 0x0003;\n t['controlFF'] = 0x000C;\n t['controlFS'] = 0x001C;\n t['controlGS'] = 0x001D;\n t['controlHT'] = 0x0009;\n t['controlLF'] = 0x000A;\n t['controlNAK'] = 0x0015;\n t['controlNULL'] = 0x0000;\n t['controlRS'] = 0x001E;\n t['controlSI'] = 0x000F;\n t['controlSO'] = 0x000E;\n t['controlSOT'] = 0x0002;\n t['controlSTX'] = 0x0001;\n t['controlSUB'] = 0x001A;\n t['controlSYN'] = 0x0016;\n t['controlUS'] = 0x001F;\n t['controlVT'] = 0x000B;\n t['copyright'] = 0x00A9;\n t['copyrightsans'] = 0xF8E9;\n t['copyrightserif'] = 0xF6D9;\n t['cornerbracketleft'] = 0x300C;\n t['cornerbracketlefthalfwidth'] = 0xFF62;\n t['cornerbracketleftvertical'] = 0xFE41;\n t['cornerbracketright'] = 0x300D;\n t['cornerbracketrighthalfwidth'] = 0xFF63;\n t['cornerbracketrightvertical'] = 0xFE42;\n t['corporationsquare'] = 0x337F;\n t['cosquare'] = 0x33C7;\n t['coverkgsquare'] = 0x33C6;\n t['cparen'] = 0x249E;\n t['cruzeiro'] = 0x20A2;\n t['cstretched'] = 0x0297;\n t['curlyand'] = 0x22CF;\n t['curlyor'] = 0x22CE;\n t['currency'] = 0x00A4;\n t['cyrBreve'] = 0xF6D1;\n t['cyrFlex'] = 0xF6D2;\n t['cyrbreve'] = 0xF6D4;\n t['cyrflex'] = 0xF6D5;\n t['d'] = 0x0064;\n t['daarmenian'] = 0x0564;\n t['dabengali'] = 0x09A6;\n t['dadarabic'] = 0x0636;\n t['dadeva'] = 0x0926;\n t['dadfinalarabic'] = 0xFEBE;\n t['dadinitialarabic'] = 0xFEBF;\n t['dadmedialarabic'] = 0xFEC0;\n t['dagesh'] = 0x05BC;\n t['dageshhebrew'] = 0x05BC;\n t['dagger'] = 0x2020;\n t['daggerdbl'] = 0x2021;\n t['dagujarati'] = 0x0AA6;\n t['dagurmukhi'] = 0x0A26;\n t['dahiragana'] = 0x3060;\n t['dakatakana'] = 0x30C0;\n t['dalarabic'] = 0x062F;\n t['dalet'] = 0x05D3;\n t['daletdagesh'] = 0xFB33;\n t['daletdageshhebrew'] = 0xFB33;\n t['dalethebrew'] = 0x05D3;\n t['dalfinalarabic'] = 0xFEAA;\n t['dammaarabic'] = 0x064F;\n t['dammalowarabic'] = 0x064F;\n t['dammatanaltonearabic'] = 0x064C;\n t['dammatanarabic'] = 0x064C;\n t['danda'] = 0x0964;\n t['dargahebrew'] = 0x05A7;\n t['dargalefthebrew'] = 0x05A7;\n t['dasiapneumatacyrilliccmb'] = 0x0485;\n t['dblGrave'] = 0xF6D3;\n t['dblanglebracketleft'] = 0x300A;\n t['dblanglebracketleftvertical'] = 0xFE3D;\n t['dblanglebracketright'] = 0x300B;\n t['dblanglebracketrightvertical'] = 0xFE3E;\n t['dblarchinvertedbelowcmb'] = 0x032B;\n t['dblarrowleft'] = 0x21D4;\n t['dblarrowright'] = 0x21D2;\n t['dbldanda'] = 0x0965;\n t['dblgrave'] = 0xF6D6;\n t['dblgravecmb'] = 0x030F;\n t['dblintegral'] = 0x222C;\n t['dbllowline'] = 0x2017;\n t['dbllowlinecmb'] = 0x0333;\n t['dbloverlinecmb'] = 0x033F;\n t['dblprimemod'] = 0x02BA;\n t['dblverticalbar'] = 0x2016;\n t['dblverticallineabovecmb'] = 0x030E;\n t['dbopomofo'] = 0x3109;\n t['dbsquare'] = 0x33C8;\n t['dcaron'] = 0x010F;\n t['dcedilla'] = 0x1E11;\n t['dcircle'] = 0x24D3;\n t['dcircumflexbelow'] = 0x1E13;\n t['dcroat'] = 0x0111;\n t['ddabengali'] = 0x09A1;\n t['ddadeva'] = 0x0921;\n t['ddagujarati'] = 0x0AA1;\n t['ddagurmukhi'] = 0x0A21;\n t['ddalarabic'] = 0x0688;\n t['ddalfinalarabic'] = 0xFB89;\n t['dddhadeva'] = 0x095C;\n t['ddhabengali'] = 0x09A2;\n t['ddhadeva'] = 0x0922;\n t['ddhagujarati'] = 0x0AA2;\n t['ddhagurmukhi'] = 0x0A22;\n t['ddotaccent'] = 0x1E0B;\n t['ddotbelow'] = 0x1E0D;\n t['decimalseparatorarabic'] = 0x066B;\n t['decimalseparatorpersian'] = 0x066B;\n t['decyrillic'] = 0x0434;\n t['degree'] = 0x00B0;\n t['dehihebrew'] = 0x05AD;\n t['dehiragana'] = 0x3067;\n t['deicoptic'] = 0x03EF;\n t['dekatakana'] = 0x30C7;\n t['deleteleft'] = 0x232B;\n t['deleteright'] = 0x2326;\n t['delta'] = 0x03B4;\n t['deltaturned'] = 0x018D;\n t['denominatorminusonenumeratorbengali'] = 0x09F8;\n t['dezh'] = 0x02A4;\n t['dhabengali'] = 0x09A7;\n t['dhadeva'] = 0x0927;\n t['dhagujarati'] = 0x0AA7;\n t['dhagurmukhi'] = 0x0A27;\n t['dhook'] = 0x0257;\n t['dialytikatonos'] = 0x0385;\n t['dialytikatonoscmb'] = 0x0344;\n t['diamond'] = 0x2666;\n t['diamondsuitwhite'] = 0x2662;\n t['dieresis'] = 0x00A8;\n t['dieresisacute'] = 0xF6D7;\n t['dieresisbelowcmb'] = 0x0324;\n t['dieresiscmb'] = 0x0308;\n t['dieresisgrave'] = 0xF6D8;\n t['dieresistonos'] = 0x0385;\n t['dihiragana'] = 0x3062;\n t['dikatakana'] = 0x30C2;\n t['dittomark'] = 0x3003;\n t['divide'] = 0x00F7;\n t['divides'] = 0x2223;\n t['divisionslash'] = 0x2215;\n t['djecyrillic'] = 0x0452;\n t['dkshade'] = 0x2593;\n t['dlinebelow'] = 0x1E0F;\n t['dlsquare'] = 0x3397;\n t['dmacron'] = 0x0111;\n t['dmonospace'] = 0xFF44;\n t['dnblock'] = 0x2584;\n t['dochadathai'] = 0x0E0E;\n t['dodekthai'] = 0x0E14;\n t['dohiragana'] = 0x3069;\n t['dokatakana'] = 0x30C9;\n t['dollar'] = 0x0024;\n t['dollarinferior'] = 0xF6E3;\n t['dollarmonospace'] = 0xFF04;\n t['dollaroldstyle'] = 0xF724;\n t['dollarsmall'] = 0xFE69;\n t['dollarsuperior'] = 0xF6E4;\n t['dong'] = 0x20AB;\n t['dorusquare'] = 0x3326;\n t['dotaccent'] = 0x02D9;\n t['dotaccentcmb'] = 0x0307;\n t['dotbelowcmb'] = 0x0323;\n t['dotbelowcomb'] = 0x0323;\n t['dotkatakana'] = 0x30FB;\n t['dotlessi'] = 0x0131;\n t['dotlessj'] = 0xF6BE;\n t['dotlessjstrokehook'] = 0x0284;\n t['dotmath'] = 0x22C5;\n t['dottedcircle'] = 0x25CC;\n t['doubleyodpatah'] = 0xFB1F;\n t['doubleyodpatahhebrew'] = 0xFB1F;\n t['downtackbelowcmb'] = 0x031E;\n t['downtackmod'] = 0x02D5;\n t['dparen'] = 0x249F;\n t['dsuperior'] = 0xF6EB;\n t['dtail'] = 0x0256;\n t['dtopbar'] = 0x018C;\n t['duhiragana'] = 0x3065;\n t['dukatakana'] = 0x30C5;\n t['dz'] = 0x01F3;\n t['dzaltone'] = 0x02A3;\n t['dzcaron'] = 0x01C6;\n t['dzcurl'] = 0x02A5;\n t['dzeabkhasiancyrillic'] = 0x04E1;\n t['dzecyrillic'] = 0x0455;\n t['dzhecyrillic'] = 0x045F;\n t['e'] = 0x0065;\n t['eacute'] = 0x00E9;\n t['earth'] = 0x2641;\n t['ebengali'] = 0x098F;\n t['ebopomofo'] = 0x311C;\n t['ebreve'] = 0x0115;\n t['ecandradeva'] = 0x090D;\n t['ecandragujarati'] = 0x0A8D;\n t['ecandravowelsigndeva'] = 0x0945;\n t['ecandravowelsigngujarati'] = 0x0AC5;\n t['ecaron'] = 0x011B;\n t['ecedillabreve'] = 0x1E1D;\n t['echarmenian'] = 0x0565;\n t['echyiwnarmenian'] = 0x0587;\n t['ecircle'] = 0x24D4;\n t['ecircumflex'] = 0x00EA;\n t['ecircumflexacute'] = 0x1EBF;\n t['ecircumflexbelow'] = 0x1E19;\n t['ecircumflexdotbelow'] = 0x1EC7;\n t['ecircumflexgrave'] = 0x1EC1;\n t['ecircumflexhookabove'] = 0x1EC3;\n t['ecircumflextilde'] = 0x1EC5;\n t['ecyrillic'] = 0x0454;\n t['edblgrave'] = 0x0205;\n t['edeva'] = 0x090F;\n t['edieresis'] = 0x00EB;\n t['edot'] = 0x0117;\n t['edotaccent'] = 0x0117;\n t['edotbelow'] = 0x1EB9;\n t['eegurmukhi'] = 0x0A0F;\n t['eematragurmukhi'] = 0x0A47;\n t['efcyrillic'] = 0x0444;\n t['egrave'] = 0x00E8;\n t['egujarati'] = 0x0A8F;\n t['eharmenian'] = 0x0567;\n t['ehbopomofo'] = 0x311D;\n t['ehiragana'] = 0x3048;\n t['ehookabove'] = 0x1EBB;\n t['eibopomofo'] = 0x311F;\n t['eight'] = 0x0038;\n t['eightarabic'] = 0x0668;\n t['eightbengali'] = 0x09EE;\n t['eightcircle'] = 0x2467;\n t['eightcircleinversesansserif'] = 0x2791;\n t['eightdeva'] = 0x096E;\n t['eighteencircle'] = 0x2471;\n t['eighteenparen'] = 0x2485;\n t['eighteenperiod'] = 0x2499;\n t['eightgujarati'] = 0x0AEE;\n t['eightgurmukhi'] = 0x0A6E;\n t['eighthackarabic'] = 0x0668;\n t['eighthangzhou'] = 0x3028;\n t['eighthnotebeamed'] = 0x266B;\n t['eightideographicparen'] = 0x3227;\n t['eightinferior'] = 0x2088;\n t['eightmonospace'] = 0xFF18;\n t['eightoldstyle'] = 0xF738;\n t['eightparen'] = 0x247B;\n t['eightperiod'] = 0x248F;\n t['eightpersian'] = 0x06F8;\n t['eightroman'] = 0x2177;\n t['eightsuperior'] = 0x2078;\n t['eightthai'] = 0x0E58;\n t['einvertedbreve'] = 0x0207;\n t['eiotifiedcyrillic'] = 0x0465;\n t['ekatakana'] = 0x30A8;\n t['ekatakanahalfwidth'] = 0xFF74;\n t['ekonkargurmukhi'] = 0x0A74;\n t['ekorean'] = 0x3154;\n t['elcyrillic'] = 0x043B;\n t['element'] = 0x2208;\n t['elevencircle'] = 0x246A;\n t['elevenparen'] = 0x247E;\n t['elevenperiod'] = 0x2492;\n t['elevenroman'] = 0x217A;\n t['ellipsis'] = 0x2026;\n t['ellipsisvertical'] = 0x22EE;\n t['emacron'] = 0x0113;\n t['emacronacute'] = 0x1E17;\n t['emacrongrave'] = 0x1E15;\n t['emcyrillic'] = 0x043C;\n t['emdash'] = 0x2014;\n t['emdashvertical'] = 0xFE31;\n t['emonospace'] = 0xFF45;\n t['emphasismarkarmenian'] = 0x055B;\n t['emptyset'] = 0x2205;\n t['enbopomofo'] = 0x3123;\n t['encyrillic'] = 0x043D;\n t['endash'] = 0x2013;\n t['endashvertical'] = 0xFE32;\n t['endescendercyrillic'] = 0x04A3;\n t['eng'] = 0x014B;\n t['engbopomofo'] = 0x3125;\n t['enghecyrillic'] = 0x04A5;\n t['enhookcyrillic'] = 0x04C8;\n t['enspace'] = 0x2002;\n t['eogonek'] = 0x0119;\n t['eokorean'] = 0x3153;\n t['eopen'] = 0x025B;\n t['eopenclosed'] = 0x029A;\n t['eopenreversed'] = 0x025C;\n t['eopenreversedclosed'] = 0x025E;\n t['eopenreversedhook'] = 0x025D;\n t['eparen'] = 0x24A0;\n t['epsilon'] = 0x03B5;\n t['epsilontonos'] = 0x03AD;\n t['equal'] = 0x003D;\n t['equalmonospace'] = 0xFF1D;\n t['equalsmall'] = 0xFE66;\n t['equalsuperior'] = 0x207C;\n t['equivalence'] = 0x2261;\n t['erbopomofo'] = 0x3126;\n t['ercyrillic'] = 0x0440;\n t['ereversed'] = 0x0258;\n t['ereversedcyrillic'] = 0x044D;\n t['escyrillic'] = 0x0441;\n t['esdescendercyrillic'] = 0x04AB;\n t['esh'] = 0x0283;\n t['eshcurl'] = 0x0286;\n t['eshortdeva'] = 0x090E;\n t['eshortvowelsigndeva'] = 0x0946;\n t['eshreversedloop'] = 0x01AA;\n t['eshsquatreversed'] = 0x0285;\n t['esmallhiragana'] = 0x3047;\n t['esmallkatakana'] = 0x30A7;\n t['esmallkatakanahalfwidth'] = 0xFF6A;\n t['estimated'] = 0x212E;\n t['esuperior'] = 0xF6EC;\n t['eta'] = 0x03B7;\n t['etarmenian'] = 0x0568;\n t['etatonos'] = 0x03AE;\n t['eth'] = 0x00F0;\n t['etilde'] = 0x1EBD;\n t['etildebelow'] = 0x1E1B;\n t['etnahtafoukhhebrew'] = 0x0591;\n t['etnahtafoukhlefthebrew'] = 0x0591;\n t['etnahtahebrew'] = 0x0591;\n t['etnahtalefthebrew'] = 0x0591;\n t['eturned'] = 0x01DD;\n t['eukorean'] = 0x3161;\n t['euro'] = 0x20AC;\n t['evowelsignbengali'] = 0x09C7;\n t['evowelsigndeva'] = 0x0947;\n t['evowelsigngujarati'] = 0x0AC7;\n t['exclam'] = 0x0021;\n t['exclamarmenian'] = 0x055C;\n t['exclamdbl'] = 0x203C;\n t['exclamdown'] = 0x00A1;\n t['exclamdownsmall'] = 0xF7A1;\n t['exclammonospace'] = 0xFF01;\n t['exclamsmall'] = 0xF721;\n t['existential'] = 0x2203;\n t['ezh'] = 0x0292;\n t['ezhcaron'] = 0x01EF;\n t['ezhcurl'] = 0x0293;\n t['ezhreversed'] = 0x01B9;\n t['ezhtail'] = 0x01BA;\n t['f'] = 0x0066;\n t['fadeva'] = 0x095E;\n t['fagurmukhi'] = 0x0A5E;\n t['fahrenheit'] = 0x2109;\n t['fathaarabic'] = 0x064E;\n t['fathalowarabic'] = 0x064E;\n t['fathatanarabic'] = 0x064B;\n t['fbopomofo'] = 0x3108;\n t['fcircle'] = 0x24D5;\n t['fdotaccent'] = 0x1E1F;\n t['feharabic'] = 0x0641;\n t['feharmenian'] = 0x0586;\n t['fehfinalarabic'] = 0xFED2;\n t['fehinitialarabic'] = 0xFED3;\n t['fehmedialarabic'] = 0xFED4;\n t['feicoptic'] = 0x03E5;\n t['female'] = 0x2640;\n t['ff'] = 0xFB00;\n t['ffi'] = 0xFB03;\n t['ffl'] = 0xFB04;\n t['fi'] = 0xFB01;\n t['fifteencircle'] = 0x246E;\n t['fifteenparen'] = 0x2482;\n t['fifteenperiod'] = 0x2496;\n t['figuredash'] = 0x2012;\n t['filledbox'] = 0x25A0;\n t['filledrect'] = 0x25AC;\n t['finalkaf'] = 0x05DA;\n t['finalkafdagesh'] = 0xFB3A;\n t['finalkafdageshhebrew'] = 0xFB3A;\n t['finalkafhebrew'] = 0x05DA;\n t['finalmem'] = 0x05DD;\n t['finalmemhebrew'] = 0x05DD;\n t['finalnun'] = 0x05DF;\n t['finalnunhebrew'] = 0x05DF;\n t['finalpe'] = 0x05E3;\n t['finalpehebrew'] = 0x05E3;\n t['finaltsadi'] = 0x05E5;\n t['finaltsadihebrew'] = 0x05E5;\n t['firsttonechinese'] = 0x02C9;\n t['fisheye'] = 0x25C9;\n t['fitacyrillic'] = 0x0473;\n t['five'] = 0x0035;\n t['fivearabic'] = 0x0665;\n t['fivebengali'] = 0x09EB;\n t['fivecircle'] = 0x2464;\n t['fivecircleinversesansserif'] = 0x278E;\n t['fivedeva'] = 0x096B;\n t['fiveeighths'] = 0x215D;\n t['fivegujarati'] = 0x0AEB;\n t['fivegurmukhi'] = 0x0A6B;\n t['fivehackarabic'] = 0x0665;\n t['fivehangzhou'] = 0x3025;\n t['fiveideographicparen'] = 0x3224;\n t['fiveinferior'] = 0x2085;\n t['fivemonospace'] = 0xFF15;\n t['fiveoldstyle'] = 0xF735;\n t['fiveparen'] = 0x2478;\n t['fiveperiod'] = 0x248C;\n t['fivepersian'] = 0x06F5;\n t['fiveroman'] = 0x2174;\n t['fivesuperior'] = 0x2075;\n t['fivethai'] = 0x0E55;\n t['fl'] = 0xFB02;\n t['florin'] = 0x0192;\n t['fmonospace'] = 0xFF46;\n t['fmsquare'] = 0x3399;\n t['fofanthai'] = 0x0E1F;\n t['fofathai'] = 0x0E1D;\n t['fongmanthai'] = 0x0E4F;\n t['forall'] = 0x2200;\n t['four'] = 0x0034;\n t['fourarabic'] = 0x0664;\n t['fourbengali'] = 0x09EA;\n t['fourcircle'] = 0x2463;\n t['fourcircleinversesansserif'] = 0x278D;\n t['fourdeva'] = 0x096A;\n t['fourgujarati'] = 0x0AEA;\n t['fourgurmukhi'] = 0x0A6A;\n t['fourhackarabic'] = 0x0664;\n t['fourhangzhou'] = 0x3024;\n t['fourideographicparen'] = 0x3223;\n t['fourinferior'] = 0x2084;\n t['fourmonospace'] = 0xFF14;\n t['fournumeratorbengali'] = 0x09F7;\n t['fouroldstyle'] = 0xF734;\n t['fourparen'] = 0x2477;\n t['fourperiod'] = 0x248B;\n t['fourpersian'] = 0x06F4;\n t['fourroman'] = 0x2173;\n t['foursuperior'] = 0x2074;\n t['fourteencircle'] = 0x246D;\n t['fourteenparen'] = 0x2481;\n t['fourteenperiod'] = 0x2495;\n t['fourthai'] = 0x0E54;\n t['fourthtonechinese'] = 0x02CB;\n t['fparen'] = 0x24A1;\n t['fraction'] = 0x2044;\n t['franc'] = 0x20A3;\n t['g'] = 0x0067;\n t['gabengali'] = 0x0997;\n t['gacute'] = 0x01F5;\n t['gadeva'] = 0x0917;\n t['gafarabic'] = 0x06AF;\n t['gaffinalarabic'] = 0xFB93;\n t['gafinitialarabic'] = 0xFB94;\n t['gafmedialarabic'] = 0xFB95;\n t['gagujarati'] = 0x0A97;\n t['gagurmukhi'] = 0x0A17;\n t['gahiragana'] = 0x304C;\n t['gakatakana'] = 0x30AC;\n t['gamma'] = 0x03B3;\n t['gammalatinsmall'] = 0x0263;\n t['gammasuperior'] = 0x02E0;\n t['gangiacoptic'] = 0x03EB;\n t['gbopomofo'] = 0x310D;\n t['gbreve'] = 0x011F;\n t['gcaron'] = 0x01E7;\n t['gcedilla'] = 0x0123;\n t['gcircle'] = 0x24D6;\n t['gcircumflex'] = 0x011D;\n t['gcommaaccent'] = 0x0123;\n t['gdot'] = 0x0121;\n t['gdotaccent'] = 0x0121;\n t['gecyrillic'] = 0x0433;\n t['gehiragana'] = 0x3052;\n t['gekatakana'] = 0x30B2;\n t['geometricallyequal'] = 0x2251;\n t['gereshaccenthebrew'] = 0x059C;\n t['gereshhebrew'] = 0x05F3;\n t['gereshmuqdamhebrew'] = 0x059D;\n t['germandbls'] = 0x00DF;\n t['gershayimaccenthebrew'] = 0x059E;\n t['gershayimhebrew'] = 0x05F4;\n t['getamark'] = 0x3013;\n t['ghabengali'] = 0x0998;\n t['ghadarmenian'] = 0x0572;\n t['ghadeva'] = 0x0918;\n t['ghagujarati'] = 0x0A98;\n t['ghagurmukhi'] = 0x0A18;\n t['ghainarabic'] = 0x063A;\n t['ghainfinalarabic'] = 0xFECE;\n t['ghaininitialarabic'] = 0xFECF;\n t['ghainmedialarabic'] = 0xFED0;\n t['ghemiddlehookcyrillic'] = 0x0495;\n t['ghestrokecyrillic'] = 0x0493;\n t['gheupturncyrillic'] = 0x0491;\n t['ghhadeva'] = 0x095A;\n t['ghhagurmukhi'] = 0x0A5A;\n t['ghook'] = 0x0260;\n t['ghzsquare'] = 0x3393;\n t['gihiragana'] = 0x304E;\n t['gikatakana'] = 0x30AE;\n t['gimarmenian'] = 0x0563;\n t['gimel'] = 0x05D2;\n t['gimeldagesh'] = 0xFB32;\n t['gimeldageshhebrew'] = 0xFB32;\n t['gimelhebrew'] = 0x05D2;\n t['gjecyrillic'] = 0x0453;\n t['glottalinvertedstroke'] = 0x01BE;\n t['glottalstop'] = 0x0294;\n t['glottalstopinverted'] = 0x0296;\n t['glottalstopmod'] = 0x02C0;\n t['glottalstopreversed'] = 0x0295;\n t['glottalstopreversedmod'] = 0x02C1;\n t['glottalstopreversedsuperior'] = 0x02E4;\n t['glottalstopstroke'] = 0x02A1;\n t['glottalstopstrokereversed'] = 0x02A2;\n t['gmacron'] = 0x1E21;\n t['gmonospace'] = 0xFF47;\n t['gohiragana'] = 0x3054;\n t['gokatakana'] = 0x30B4;\n t['gparen'] = 0x24A2;\n t['gpasquare'] = 0x33AC;\n t['gradient'] = 0x2207;\n t['grave'] = 0x0060;\n t['gravebelowcmb'] = 0x0316;\n t['gravecmb'] = 0x0300;\n t['gravecomb'] = 0x0300;\n t['gravedeva'] = 0x0953;\n t['gravelowmod'] = 0x02CE;\n t['gravemonospace'] = 0xFF40;\n t['gravetonecmb'] = 0x0340;\n t['greater'] = 0x003E;\n t['greaterequal'] = 0x2265;\n t['greaterequalorless'] = 0x22DB;\n t['greatermonospace'] = 0xFF1E;\n t['greaterorequivalent'] = 0x2273;\n t['greaterorless'] = 0x2277;\n t['greateroverequal'] = 0x2267;\n t['greatersmall'] = 0xFE65;\n t['gscript'] = 0x0261;\n t['gstroke'] = 0x01E5;\n t['guhiragana'] = 0x3050;\n t['guillemotleft'] = 0x00AB;\n t['guillemotright'] = 0x00BB;\n t['guilsinglleft'] = 0x2039;\n t['guilsinglright'] = 0x203A;\n t['gukatakana'] = 0x30B0;\n t['guramusquare'] = 0x3318;\n t['gysquare'] = 0x33C9;\n t['h'] = 0x0068;\n t['haabkhasiancyrillic'] = 0x04A9;\n t['haaltonearabic'] = 0x06C1;\n t['habengali'] = 0x09B9;\n t['hadescendercyrillic'] = 0x04B3;\n t['hadeva'] = 0x0939;\n t['hagujarati'] = 0x0AB9;\n t['hagurmukhi'] = 0x0A39;\n t['haharabic'] = 0x062D;\n t['hahfinalarabic'] = 0xFEA2;\n t['hahinitialarabic'] = 0xFEA3;\n t['hahiragana'] = 0x306F;\n t['hahmedialarabic'] = 0xFEA4;\n t['haitusquare'] = 0x332A;\n t['hakatakana'] = 0x30CF;\n t['hakatakanahalfwidth'] = 0xFF8A;\n t['halantgurmukhi'] = 0x0A4D;\n t['hamzaarabic'] = 0x0621;\n t['hamzalowarabic'] = 0x0621;\n t['hangulfiller'] = 0x3164;\n t['hardsigncyrillic'] = 0x044A;\n t['harpoonleftbarbup'] = 0x21BC;\n t['harpoonrightbarbup'] = 0x21C0;\n t['hasquare'] = 0x33CA;\n t['hatafpatah'] = 0x05B2;\n t['hatafpatah16'] = 0x05B2;\n t['hatafpatah23'] = 0x05B2;\n t['hatafpatah2f'] = 0x05B2;\n t['hatafpatahhebrew'] = 0x05B2;\n t['hatafpatahnarrowhebrew'] = 0x05B2;\n t['hatafpatahquarterhebrew'] = 0x05B2;\n t['hatafpatahwidehebrew'] = 0x05B2;\n t['hatafqamats'] = 0x05B3;\n t['hatafqamats1b'] = 0x05B3;\n t['hatafqamats28'] = 0x05B3;\n t['hatafqamats34'] = 0x05B3;\n t['hatafqamatshebrew'] = 0x05B3;\n t['hatafqamatsnarrowhebrew'] = 0x05B3;\n t['hatafqamatsquarterhebrew'] = 0x05B3;\n t['hatafqamatswidehebrew'] = 0x05B3;\n t['hatafsegol'] = 0x05B1;\n t['hatafsegol17'] = 0x05B1;\n t['hatafsegol24'] = 0x05B1;\n t['hatafsegol30'] = 0x05B1;\n t['hatafsegolhebrew'] = 0x05B1;\n t['hatafsegolnarrowhebrew'] = 0x05B1;\n t['hatafsegolquarterhebrew'] = 0x05B1;\n t['hatafsegolwidehebrew'] = 0x05B1;\n t['hbar'] = 0x0127;\n t['hbopomofo'] = 0x310F;\n t['hbrevebelow'] = 0x1E2B;\n t['hcedilla'] = 0x1E29;\n t['hcircle'] = 0x24D7;\n t['hcircumflex'] = 0x0125;\n t['hdieresis'] = 0x1E27;\n t['hdotaccent'] = 0x1E23;\n t['hdotbelow'] = 0x1E25;\n t['he'] = 0x05D4;\n t['heart'] = 0x2665;\n t['heartsuitblack'] = 0x2665;\n t['heartsuitwhite'] = 0x2661;\n t['hedagesh'] = 0xFB34;\n t['hedageshhebrew'] = 0xFB34;\n t['hehaltonearabic'] = 0x06C1;\n t['heharabic'] = 0x0647;\n t['hehebrew'] = 0x05D4;\n t['hehfinalaltonearabic'] = 0xFBA7;\n t['hehfinalalttwoarabic'] = 0xFEEA;\n t['hehfinalarabic'] = 0xFEEA;\n t['hehhamzaabovefinalarabic'] = 0xFBA5;\n t['hehhamzaaboveisolatedarabic'] = 0xFBA4;\n t['hehinitialaltonearabic'] = 0xFBA8;\n t['hehinitialarabic'] = 0xFEEB;\n t['hehiragana'] = 0x3078;\n t['hehmedialaltonearabic'] = 0xFBA9;\n t['hehmedialarabic'] = 0xFEEC;\n t['heiseierasquare'] = 0x337B;\n t['hekatakana'] = 0x30D8;\n t['hekatakanahalfwidth'] = 0xFF8D;\n t['hekutaarusquare'] = 0x3336;\n t['henghook'] = 0x0267;\n t['herutusquare'] = 0x3339;\n t['het'] = 0x05D7;\n t['hethebrew'] = 0x05D7;\n t['hhook'] = 0x0266;\n t['hhooksuperior'] = 0x02B1;\n t['hieuhacirclekorean'] = 0x327B;\n t['hieuhaparenkorean'] = 0x321B;\n t['hieuhcirclekorean'] = 0x326D;\n t['hieuhkorean'] = 0x314E;\n t['hieuhparenkorean'] = 0x320D;\n t['hihiragana'] = 0x3072;\n t['hikatakana'] = 0x30D2;\n t['hikatakanahalfwidth'] = 0xFF8B;\n t['hiriq'] = 0x05B4;\n t['hiriq14'] = 0x05B4;\n t['hiriq21'] = 0x05B4;\n t['hiriq2d'] = 0x05B4;\n t['hiriqhebrew'] = 0x05B4;\n t['hiriqnarrowhebrew'] = 0x05B4;\n t['hiriqquarterhebrew'] = 0x05B4;\n t['hiriqwidehebrew'] = 0x05B4;\n t['hlinebelow'] = 0x1E96;\n t['hmonospace'] = 0xFF48;\n t['hoarmenian'] = 0x0570;\n t['hohipthai'] = 0x0E2B;\n t['hohiragana'] = 0x307B;\n t['hokatakana'] = 0x30DB;\n t['hokatakanahalfwidth'] = 0xFF8E;\n t['holam'] = 0x05B9;\n t['holam19'] = 0x05B9;\n t['holam26'] = 0x05B9;\n t['holam32'] = 0x05B9;\n t['holamhebrew'] = 0x05B9;\n t['holamnarrowhebrew'] = 0x05B9;\n t['holamquarterhebrew'] = 0x05B9;\n t['holamwidehebrew'] = 0x05B9;\n t['honokhukthai'] = 0x0E2E;\n t['hookabovecomb'] = 0x0309;\n t['hookcmb'] = 0x0309;\n t['hookpalatalizedbelowcmb'] = 0x0321;\n t['hookretroflexbelowcmb'] = 0x0322;\n t['hoonsquare'] = 0x3342;\n t['horicoptic'] = 0x03E9;\n t['horizontalbar'] = 0x2015;\n t['horncmb'] = 0x031B;\n t['hotsprings'] = 0x2668;\n t['house'] = 0x2302;\n t['hparen'] = 0x24A3;\n t['hsuperior'] = 0x02B0;\n t['hturned'] = 0x0265;\n t['huhiragana'] = 0x3075;\n t['huiitosquare'] = 0x3333;\n t['hukatakana'] = 0x30D5;\n t['hukatakanahalfwidth'] = 0xFF8C;\n t['hungarumlaut'] = 0x02DD;\n t['hungarumlautcmb'] = 0x030B;\n t['hv'] = 0x0195;\n t['hyphen'] = 0x002D;\n t['hypheninferior'] = 0xF6E5;\n t['hyphenmonospace'] = 0xFF0D;\n t['hyphensmall'] = 0xFE63;\n t['hyphensuperior'] = 0xF6E6;\n t['hyphentwo'] = 0x2010;\n t['i'] = 0x0069;\n t['iacute'] = 0x00ED;\n t['iacyrillic'] = 0x044F;\n t['ibengali'] = 0x0987;\n t['ibopomofo'] = 0x3127;\n t['ibreve'] = 0x012D;\n t['icaron'] = 0x01D0;\n t['icircle'] = 0x24D8;\n t['icircumflex'] = 0x00EE;\n t['icyrillic'] = 0x0456;\n t['idblgrave'] = 0x0209;\n t['ideographearthcircle'] = 0x328F;\n t['ideographfirecircle'] = 0x328B;\n t['ideographicallianceparen'] = 0x323F;\n t['ideographiccallparen'] = 0x323A;\n t['ideographiccentrecircle'] = 0x32A5;\n t['ideographicclose'] = 0x3006;\n t['ideographiccomma'] = 0x3001;\n t['ideographiccommaleft'] = 0xFF64;\n t['ideographiccongratulationparen'] = 0x3237;\n t['ideographiccorrectcircle'] = 0x32A3;\n t['ideographicearthparen'] = 0x322F;\n t['ideographicenterpriseparen'] = 0x323D;\n t['ideographicexcellentcircle'] = 0x329D;\n t['ideographicfestivalparen'] = 0x3240;\n t['ideographicfinancialcircle'] = 0x3296;\n t['ideographicfinancialparen'] = 0x3236;\n t['ideographicfireparen'] = 0x322B;\n t['ideographichaveparen'] = 0x3232;\n t['ideographichighcircle'] = 0x32A4;\n t['ideographiciterationmark'] = 0x3005;\n t['ideographiclaborcircle'] = 0x3298;\n t['ideographiclaborparen'] = 0x3238;\n t['ideographicleftcircle'] = 0x32A7;\n t['ideographiclowcircle'] = 0x32A6;\n t['ideographicmedicinecircle'] = 0x32A9;\n t['ideographicmetalparen'] = 0x322E;\n t['ideographicmoonparen'] = 0x322A;\n t['ideographicnameparen'] = 0x3234;\n t['ideographicperiod'] = 0x3002;\n t['ideographicprintcircle'] = 0x329E;\n t['ideographicreachparen'] = 0x3243;\n t['ideographicrepresentparen'] = 0x3239;\n t['ideographicresourceparen'] = 0x323E;\n t['ideographicrightcircle'] = 0x32A8;\n t['ideographicsecretcircle'] = 0x3299;\n t['ideographicselfparen'] = 0x3242;\n t['ideographicsocietyparen'] = 0x3233;\n t['ideographicspace'] = 0x3000;\n t['ideographicspecialparen'] = 0x3235;\n t['ideographicstockparen'] = 0x3231;\n t['ideographicstudyparen'] = 0x323B;\n t['ideographicsunparen'] = 0x3230;\n t['ideographicsuperviseparen'] = 0x323C;\n t['ideographicwaterparen'] = 0x322C;\n t['ideographicwoodparen'] = 0x322D;\n t['ideographiczero'] = 0x3007;\n t['ideographmetalcircle'] = 0x328E;\n t['ideographmooncircle'] = 0x328A;\n t['ideographnamecircle'] = 0x3294;\n t['ideographsuncircle'] = 0x3290;\n t['ideographwatercircle'] = 0x328C;\n t['ideographwoodcircle'] = 0x328D;\n t['ideva'] = 0x0907;\n t['idieresis'] = 0x00EF;\n t['idieresisacute'] = 0x1E2F;\n t['idieresiscyrillic'] = 0x04E5;\n t['idotbelow'] = 0x1ECB;\n t['iebrevecyrillic'] = 0x04D7;\n t['iecyrillic'] = 0x0435;\n t['ieungacirclekorean'] = 0x3275;\n t['ieungaparenkorean'] = 0x3215;\n t['ieungcirclekorean'] = 0x3267;\n t['ieungkorean'] = 0x3147;\n t['ieungparenkorean'] = 0x3207;\n t['igrave'] = 0x00EC;\n t['igujarati'] = 0x0A87;\n t['igurmukhi'] = 0x0A07;\n t['ihiragana'] = 0x3044;\n t['ihookabove'] = 0x1EC9;\n t['iibengali'] = 0x0988;\n t['iicyrillic'] = 0x0438;\n t['iideva'] = 0x0908;\n t['iigujarati'] = 0x0A88;\n t['iigurmukhi'] = 0x0A08;\n t['iimatragurmukhi'] = 0x0A40;\n t['iinvertedbreve'] = 0x020B;\n t['iishortcyrillic'] = 0x0439;\n t['iivowelsignbengali'] = 0x09C0;\n t['iivowelsigndeva'] = 0x0940;\n t['iivowelsigngujarati'] = 0x0AC0;\n t['ij'] = 0x0133;\n t['ikatakana'] = 0x30A4;\n t['ikatakanahalfwidth'] = 0xFF72;\n t['ikorean'] = 0x3163;\n t['ilde'] = 0x02DC;\n t['iluyhebrew'] = 0x05AC;\n t['imacron'] = 0x012B;\n t['imacroncyrillic'] = 0x04E3;\n t['imageorapproximatelyequal'] = 0x2253;\n t['imatragurmukhi'] = 0x0A3F;\n t['imonospace'] = 0xFF49;\n t['increment'] = 0x2206;\n t['infinity'] = 0x221E;\n t['iniarmenian'] = 0x056B;\n t['integral'] = 0x222B;\n t['integralbottom'] = 0x2321;\n t['integralbt'] = 0x2321;\n t['integralex'] = 0xF8F5;\n t['integraltop'] = 0x2320;\n t['integraltp'] = 0x2320;\n t['intersection'] = 0x2229;\n t['intisquare'] = 0x3305;\n t['invbullet'] = 0x25D8;\n t['invcircle'] = 0x25D9;\n t['invsmileface'] = 0x263B;\n t['iocyrillic'] = 0x0451;\n t['iogonek'] = 0x012F;\n t['iota'] = 0x03B9;\n t['iotadieresis'] = 0x03CA;\n t['iotadieresistonos'] = 0x0390;\n t['iotalatin'] = 0x0269;\n t['iotatonos'] = 0x03AF;\n t['iparen'] = 0x24A4;\n t['irigurmukhi'] = 0x0A72;\n t['ismallhiragana'] = 0x3043;\n t['ismallkatakana'] = 0x30A3;\n t['ismallkatakanahalfwidth'] = 0xFF68;\n t['issharbengali'] = 0x09FA;\n t['istroke'] = 0x0268;\n t['isuperior'] = 0xF6ED;\n t['iterationhiragana'] = 0x309D;\n t['iterationkatakana'] = 0x30FD;\n t['itilde'] = 0x0129;\n t['itildebelow'] = 0x1E2D;\n t['iubopomofo'] = 0x3129;\n t['iucyrillic'] = 0x044E;\n t['ivowelsignbengali'] = 0x09BF;\n t['ivowelsigndeva'] = 0x093F;\n t['ivowelsigngujarati'] = 0x0ABF;\n t['izhitsacyrillic'] = 0x0475;\n t['izhitsadblgravecyrillic'] = 0x0477;\n t['j'] = 0x006A;\n t['jaarmenian'] = 0x0571;\n t['jabengali'] = 0x099C;\n t['jadeva'] = 0x091C;\n t['jagujarati'] = 0x0A9C;\n t['jagurmukhi'] = 0x0A1C;\n t['jbopomofo'] = 0x3110;\n t['jcaron'] = 0x01F0;\n t['jcircle'] = 0x24D9;\n t['jcircumflex'] = 0x0135;\n t['jcrossedtail'] = 0x029D;\n t['jdotlessstroke'] = 0x025F;\n t['jecyrillic'] = 0x0458;\n t['jeemarabic'] = 0x062C;\n t['jeemfinalarabic'] = 0xFE9E;\n t['jeeminitialarabic'] = 0xFE9F;\n t['jeemmedialarabic'] = 0xFEA0;\n t['jeharabic'] = 0x0698;\n t['jehfinalarabic'] = 0xFB8B;\n t['jhabengali'] = 0x099D;\n t['jhadeva'] = 0x091D;\n t['jhagujarati'] = 0x0A9D;\n t['jhagurmukhi'] = 0x0A1D;\n t['jheharmenian'] = 0x057B;\n t['jis'] = 0x3004;\n t['jmonospace'] = 0xFF4A;\n t['jparen'] = 0x24A5;\n t['jsuperior'] = 0x02B2;\n t['k'] = 0x006B;\n t['kabashkircyrillic'] = 0x04A1;\n t['kabengali'] = 0x0995;\n t['kacute'] = 0x1E31;\n t['kacyrillic'] = 0x043A;\n t['kadescendercyrillic'] = 0x049B;\n t['kadeva'] = 0x0915;\n t['kaf'] = 0x05DB;\n t['kafarabic'] = 0x0643;\n t['kafdagesh'] = 0xFB3B;\n t['kafdageshhebrew'] = 0xFB3B;\n t['kaffinalarabic'] = 0xFEDA;\n t['kafhebrew'] = 0x05DB;\n t['kafinitialarabic'] = 0xFEDB;\n t['kafmedialarabic'] = 0xFEDC;\n t['kafrafehebrew'] = 0xFB4D;\n t['kagujarati'] = 0x0A95;\n t['kagurmukhi'] = 0x0A15;\n t['kahiragana'] = 0x304B;\n t['kahookcyrillic'] = 0x04C4;\n t['kakatakana'] = 0x30AB;\n t['kakatakanahalfwidth'] = 0xFF76;\n t['kappa'] = 0x03BA;\n t['kappasymbolgreek'] = 0x03F0;\n t['kapyeounmieumkorean'] = 0x3171;\n t['kapyeounphieuphkorean'] = 0x3184;\n t['kapyeounpieupkorean'] = 0x3178;\n t['kapyeounssangpieupkorean'] = 0x3179;\n t['karoriisquare'] = 0x330D;\n t['kashidaautoarabic'] = 0x0640;\n t['kashidaautonosidebearingarabic'] = 0x0640;\n t['kasmallkatakana'] = 0x30F5;\n t['kasquare'] = 0x3384;\n t['kasraarabic'] = 0x0650;\n t['kasratanarabic'] = 0x064D;\n t['kastrokecyrillic'] = 0x049F;\n t['katahiraprolongmarkhalfwidth'] = 0xFF70;\n t['kaverticalstrokecyrillic'] = 0x049D;\n t['kbopomofo'] = 0x310E;\n t['kcalsquare'] = 0x3389;\n t['kcaron'] = 0x01E9;\n t['kcedilla'] = 0x0137;\n t['kcircle'] = 0x24DA;\n t['kcommaaccent'] = 0x0137;\n t['kdotbelow'] = 0x1E33;\n t['keharmenian'] = 0x0584;\n t['kehiragana'] = 0x3051;\n t['kekatakana'] = 0x30B1;\n t['kekatakanahalfwidth'] = 0xFF79;\n t['kenarmenian'] = 0x056F;\n t['kesmallkatakana'] = 0x30F6;\n t['kgreenlandic'] = 0x0138;\n t['khabengali'] = 0x0996;\n t['khacyrillic'] = 0x0445;\n t['khadeva'] = 0x0916;\n t['khagujarati'] = 0x0A96;\n t['khagurmukhi'] = 0x0A16;\n t['khaharabic'] = 0x062E;\n t['khahfinalarabic'] = 0xFEA6;\n t['khahinitialarabic'] = 0xFEA7;\n t['khahmedialarabic'] = 0xFEA8;\n t['kheicoptic'] = 0x03E7;\n t['khhadeva'] = 0x0959;\n t['khhagurmukhi'] = 0x0A59;\n t['khieukhacirclekorean'] = 0x3278;\n t['khieukhaparenkorean'] = 0x3218;\n t['khieukhcirclekorean'] = 0x326A;\n t['khieukhkorean'] = 0x314B;\n t['khieukhparenkorean'] = 0x320A;\n t['khokhaithai'] = 0x0E02;\n t['khokhonthai'] = 0x0E05;\n t['khokhuatthai'] = 0x0E03;\n t['khokhwaithai'] = 0x0E04;\n t['khomutthai'] = 0x0E5B;\n t['khook'] = 0x0199;\n t['khorakhangthai'] = 0x0E06;\n t['khzsquare'] = 0x3391;\n t['kihiragana'] = 0x304D;\n t['kikatakana'] = 0x30AD;\n t['kikatakanahalfwidth'] = 0xFF77;\n t['kiroguramusquare'] = 0x3315;\n t['kiromeetorusquare'] = 0x3316;\n t['kirosquare'] = 0x3314;\n t['kiyeokacirclekorean'] = 0x326E;\n t['kiyeokaparenkorean'] = 0x320E;\n t['kiyeokcirclekorean'] = 0x3260;\n t['kiyeokkorean'] = 0x3131;\n t['kiyeokparenkorean'] = 0x3200;\n t['kiyeoksioskorean'] = 0x3133;\n t['kjecyrillic'] = 0x045C;\n t['klinebelow'] = 0x1E35;\n t['klsquare'] = 0x3398;\n t['kmcubedsquare'] = 0x33A6;\n t['kmonospace'] = 0xFF4B;\n t['kmsquaredsquare'] = 0x33A2;\n t['kohiragana'] = 0x3053;\n t['kohmsquare'] = 0x33C0;\n t['kokaithai'] = 0x0E01;\n t['kokatakana'] = 0x30B3;\n t['kokatakanahalfwidth'] = 0xFF7A;\n t['kooposquare'] = 0x331E;\n t['koppacyrillic'] = 0x0481;\n t['koreanstandardsymbol'] = 0x327F;\n t['koroniscmb'] = 0x0343;\n t['kparen'] = 0x24A6;\n t['kpasquare'] = 0x33AA;\n t['ksicyrillic'] = 0x046F;\n t['ktsquare'] = 0x33CF;\n t['kturned'] = 0x029E;\n t['kuhiragana'] = 0x304F;\n t['kukatakana'] = 0x30AF;\n t['kukatakanahalfwidth'] = 0xFF78;\n t['kvsquare'] = 0x33B8;\n t['kwsquare'] = 0x33BE;\n t['l'] = 0x006C;\n t['labengali'] = 0x09B2;\n t['lacute'] = 0x013A;\n t['ladeva'] = 0x0932;\n t['lagujarati'] = 0x0AB2;\n t['lagurmukhi'] = 0x0A32;\n t['lakkhangyaothai'] = 0x0E45;\n t['lamaleffinalarabic'] = 0xFEFC;\n t['lamalefhamzaabovefinalarabic'] = 0xFEF8;\n t['lamalefhamzaaboveisolatedarabic'] = 0xFEF7;\n t['lamalefhamzabelowfinalarabic'] = 0xFEFA;\n t['lamalefhamzabelowisolatedarabic'] = 0xFEF9;\n t['lamalefisolatedarabic'] = 0xFEFB;\n t['lamalefmaddaabovefinalarabic'] = 0xFEF6;\n t['lamalefmaddaaboveisolatedarabic'] = 0xFEF5;\n t['lamarabic'] = 0x0644;\n t['lambda'] = 0x03BB;\n t['lambdastroke'] = 0x019B;\n t['lamed'] = 0x05DC;\n t['lameddagesh'] = 0xFB3C;\n t['lameddageshhebrew'] = 0xFB3C;\n t['lamedhebrew'] = 0x05DC;\n t['lamfinalarabic'] = 0xFEDE;\n t['lamhahinitialarabic'] = 0xFCCA;\n t['laminitialarabic'] = 0xFEDF;\n t['lamjeeminitialarabic'] = 0xFCC9;\n t['lamkhahinitialarabic'] = 0xFCCB;\n t['lamlamhehisolatedarabic'] = 0xFDF2;\n t['lammedialarabic'] = 0xFEE0;\n t['lammeemhahinitialarabic'] = 0xFD88;\n t['lammeeminitialarabic'] = 0xFCCC;\n t['largecircle'] = 0x25EF;\n t['lbar'] = 0x019A;\n t['lbelt'] = 0x026C;\n t['lbopomofo'] = 0x310C;\n t['lcaron'] = 0x013E;\n t['lcedilla'] = 0x013C;\n t['lcircle'] = 0x24DB;\n t['lcircumflexbelow'] = 0x1E3D;\n t['lcommaaccent'] = 0x013C;\n t['ldot'] = 0x0140;\n t['ldotaccent'] = 0x0140;\n t['ldotbelow'] = 0x1E37;\n t['ldotbelowmacron'] = 0x1E39;\n t['leftangleabovecmb'] = 0x031A;\n t['lefttackbelowcmb'] = 0x0318;\n t['less'] = 0x003C;\n t['lessequal'] = 0x2264;\n t['lessequalorgreater'] = 0x22DA;\n t['lessmonospace'] = 0xFF1C;\n t['lessorequivalent'] = 0x2272;\n t['lessorgreater'] = 0x2276;\n t['lessoverequal'] = 0x2266;\n t['lesssmall'] = 0xFE64;\n t['lezh'] = 0x026E;\n t['lfblock'] = 0x258C;\n t['lhookretroflex'] = 0x026D;\n t['lira'] = 0x20A4;\n t['liwnarmenian'] = 0x056C;\n t['lj'] = 0x01C9;\n t['ljecyrillic'] = 0x0459;\n t['ll'] = 0xF6C0;\n t['lladeva'] = 0x0933;\n t['llagujarati'] = 0x0AB3;\n t['llinebelow'] = 0x1E3B;\n t['llladeva'] = 0x0934;\n t['llvocalicbengali'] = 0x09E1;\n t['llvocalicdeva'] = 0x0961;\n t['llvocalicvowelsignbengali'] = 0x09E3;\n t['llvocalicvowelsigndeva'] = 0x0963;\n t['lmiddletilde'] = 0x026B;\n t['lmonospace'] = 0xFF4C;\n t['lmsquare'] = 0x33D0;\n t['lochulathai'] = 0x0E2C;\n t['logicaland'] = 0x2227;\n t['logicalnot'] = 0x00AC;\n t['logicalnotreversed'] = 0x2310;\n t['logicalor'] = 0x2228;\n t['lolingthai'] = 0x0E25;\n t['longs'] = 0x017F;\n t['lowlinecenterline'] = 0xFE4E;\n t['lowlinecmb'] = 0x0332;\n t['lowlinedashed'] = 0xFE4D;\n t['lozenge'] = 0x25CA;\n t['lparen'] = 0x24A7;\n t['lslash'] = 0x0142;\n t['lsquare'] = 0x2113;\n t['lsuperior'] = 0xF6EE;\n t['ltshade'] = 0x2591;\n t['luthai'] = 0x0E26;\n t['lvocalicbengali'] = 0x098C;\n t['lvocalicdeva'] = 0x090C;\n t['lvocalicvowelsignbengali'] = 0x09E2;\n t['lvocalicvowelsigndeva'] = 0x0962;\n t['lxsquare'] = 0x33D3;\n t['m'] = 0x006D;\n t['mabengali'] = 0x09AE;\n t['macron'] = 0x00AF;\n t['macronbelowcmb'] = 0x0331;\n t['macroncmb'] = 0x0304;\n t['macronlowmod'] = 0x02CD;\n t['macronmonospace'] = 0xFFE3;\n t['macute'] = 0x1E3F;\n t['madeva'] = 0x092E;\n t['magujarati'] = 0x0AAE;\n t['magurmukhi'] = 0x0A2E;\n t['mahapakhhebrew'] = 0x05A4;\n t['mahapakhlefthebrew'] = 0x05A4;\n t['mahiragana'] = 0x307E;\n t['maichattawalowleftthai'] = 0xF895;\n t['maichattawalowrightthai'] = 0xF894;\n t['maichattawathai'] = 0x0E4B;\n t['maichattawaupperleftthai'] = 0xF893;\n t['maieklowleftthai'] = 0xF88C;\n t['maieklowrightthai'] = 0xF88B;\n t['maiekthai'] = 0x0E48;\n t['maiekupperleftthai'] = 0xF88A;\n t['maihanakatleftthai'] = 0xF884;\n t['maihanakatthai'] = 0x0E31;\n t['maitaikhuleftthai'] = 0xF889;\n t['maitaikhuthai'] = 0x0E47;\n t['maitholowleftthai'] = 0xF88F;\n t['maitholowrightthai'] = 0xF88E;\n t['maithothai'] = 0x0E49;\n t['maithoupperleftthai'] = 0xF88D;\n t['maitrilowleftthai'] = 0xF892;\n t['maitrilowrightthai'] = 0xF891;\n t['maitrithai'] = 0x0E4A;\n t['maitriupperleftthai'] = 0xF890;\n t['maiyamokthai'] = 0x0E46;\n t['makatakana'] = 0x30DE;\n t['makatakanahalfwidth'] = 0xFF8F;\n t['male'] = 0x2642;\n t['mansyonsquare'] = 0x3347;\n t['maqafhebrew'] = 0x05BE;\n t['mars'] = 0x2642;\n t['masoracirclehebrew'] = 0x05AF;\n t['masquare'] = 0x3383;\n t['mbopomofo'] = 0x3107;\n t['mbsquare'] = 0x33D4;\n t['mcircle'] = 0x24DC;\n t['mcubedsquare'] = 0x33A5;\n t['mdotaccent'] = 0x1E41;\n t['mdotbelow'] = 0x1E43;\n t['meemarabic'] = 0x0645;\n t['meemfinalarabic'] = 0xFEE2;\n t['meeminitialarabic'] = 0xFEE3;\n t['meemmedialarabic'] = 0xFEE4;\n t['meemmeeminitialarabic'] = 0xFCD1;\n t['meemmeemisolatedarabic'] = 0xFC48;\n t['meetorusquare'] = 0x334D;\n t['mehiragana'] = 0x3081;\n t['meizierasquare'] = 0x337E;\n t['mekatakana'] = 0x30E1;\n t['mekatakanahalfwidth'] = 0xFF92;\n t['mem'] = 0x05DE;\n t['memdagesh'] = 0xFB3E;\n t['memdageshhebrew'] = 0xFB3E;\n t['memhebrew'] = 0x05DE;\n t['menarmenian'] = 0x0574;\n t['merkhahebrew'] = 0x05A5;\n t['merkhakefulahebrew'] = 0x05A6;\n t['merkhakefulalefthebrew'] = 0x05A6;\n t['merkhalefthebrew'] = 0x05A5;\n t['mhook'] = 0x0271;\n t['mhzsquare'] = 0x3392;\n t['middledotkatakanahalfwidth'] = 0xFF65;\n t['middot'] = 0x00B7;\n t['mieumacirclekorean'] = 0x3272;\n t['mieumaparenkorean'] = 0x3212;\n t['mieumcirclekorean'] = 0x3264;\n t['mieumkorean'] = 0x3141;\n t['mieumpansioskorean'] = 0x3170;\n t['mieumparenkorean'] = 0x3204;\n t['mieumpieupkorean'] = 0x316E;\n t['mieumsioskorean'] = 0x316F;\n t['mihiragana'] = 0x307F;\n t['mikatakana'] = 0x30DF;\n t['mikatakanahalfwidth'] = 0xFF90;\n t['minus'] = 0x2212;\n t['minusbelowcmb'] = 0x0320;\n t['minuscircle'] = 0x2296;\n t['minusmod'] = 0x02D7;\n t['minusplus'] = 0x2213;\n t['minute'] = 0x2032;\n t['miribaarusquare'] = 0x334A;\n t['mirisquare'] = 0x3349;\n t['mlonglegturned'] = 0x0270;\n t['mlsquare'] = 0x3396;\n t['mmcubedsquare'] = 0x33A3;\n t['mmonospace'] = 0xFF4D;\n t['mmsquaredsquare'] = 0x339F;\n t['mohiragana'] = 0x3082;\n t['mohmsquare'] = 0x33C1;\n t['mokatakana'] = 0x30E2;\n t['mokatakanahalfwidth'] = 0xFF93;\n t['molsquare'] = 0x33D6;\n t['momathai'] = 0x0E21;\n t['moverssquare'] = 0x33A7;\n t['moverssquaredsquare'] = 0x33A8;\n t['mparen'] = 0x24A8;\n t['mpasquare'] = 0x33AB;\n t['mssquare'] = 0x33B3;\n t['msuperior'] = 0xF6EF;\n t['mturned'] = 0x026F;\n t['mu'] = 0x00B5;\n t['mu1'] = 0x00B5;\n t['muasquare'] = 0x3382;\n t['muchgreater'] = 0x226B;\n t['muchless'] = 0x226A;\n t['mufsquare'] = 0x338C;\n t['mugreek'] = 0x03BC;\n t['mugsquare'] = 0x338D;\n t['muhiragana'] = 0x3080;\n t['mukatakana'] = 0x30E0;\n t['mukatakanahalfwidth'] = 0xFF91;\n t['mulsquare'] = 0x3395;\n t['multiply'] = 0x00D7;\n t['mumsquare'] = 0x339B;\n t['munahhebrew'] = 0x05A3;\n t['munahlefthebrew'] = 0x05A3;\n t['musicalnote'] = 0x266A;\n t['musicalnotedbl'] = 0x266B;\n t['musicflatsign'] = 0x266D;\n t['musicsharpsign'] = 0x266F;\n t['mussquare'] = 0x33B2;\n t['muvsquare'] = 0x33B6;\n t['muwsquare'] = 0x33BC;\n t['mvmegasquare'] = 0x33B9;\n t['mvsquare'] = 0x33B7;\n t['mwmegasquare'] = 0x33BF;\n t['mwsquare'] = 0x33BD;\n t['n'] = 0x006E;\n t['nabengali'] = 0x09A8;\n t['nabla'] = 0x2207;\n t['nacute'] = 0x0144;\n t['nadeva'] = 0x0928;\n t['nagujarati'] = 0x0AA8;\n t['nagurmukhi'] = 0x0A28;\n t['nahiragana'] = 0x306A;\n t['nakatakana'] = 0x30CA;\n t['nakatakanahalfwidth'] = 0xFF85;\n t['napostrophe'] = 0x0149;\n t['nasquare'] = 0x3381;\n t['nbopomofo'] = 0x310B;\n t['nbspace'] = 0x00A0;\n t['ncaron'] = 0x0148;\n t['ncedilla'] = 0x0146;\n t['ncircle'] = 0x24DD;\n t['ncircumflexbelow'] = 0x1E4B;\n t['ncommaaccent'] = 0x0146;\n t['ndotaccent'] = 0x1E45;\n t['ndotbelow'] = 0x1E47;\n t['nehiragana'] = 0x306D;\n t['nekatakana'] = 0x30CD;\n t['nekatakanahalfwidth'] = 0xFF88;\n t['newsheqelsign'] = 0x20AA;\n t['nfsquare'] = 0x338B;\n t['ngabengali'] = 0x0999;\n t['ngadeva'] = 0x0919;\n t['ngagujarati'] = 0x0A99;\n t['ngagurmukhi'] = 0x0A19;\n t['ngonguthai'] = 0x0E07;\n t['nhiragana'] = 0x3093;\n t['nhookleft'] = 0x0272;\n t['nhookretroflex'] = 0x0273;\n t['nieunacirclekorean'] = 0x326F;\n t['nieunaparenkorean'] = 0x320F;\n t['nieuncieuckorean'] = 0x3135;\n t['nieuncirclekorean'] = 0x3261;\n t['nieunhieuhkorean'] = 0x3136;\n t['nieunkorean'] = 0x3134;\n t['nieunpansioskorean'] = 0x3168;\n t['nieunparenkorean'] = 0x3201;\n t['nieunsioskorean'] = 0x3167;\n t['nieuntikeutkorean'] = 0x3166;\n t['nihiragana'] = 0x306B;\n t['nikatakana'] = 0x30CB;\n t['nikatakanahalfwidth'] = 0xFF86;\n t['nikhahitleftthai'] = 0xF899;\n t['nikhahitthai'] = 0x0E4D;\n t['nine'] = 0x0039;\n t['ninearabic'] = 0x0669;\n t['ninebengali'] = 0x09EF;\n t['ninecircle'] = 0x2468;\n t['ninecircleinversesansserif'] = 0x2792;\n t['ninedeva'] = 0x096F;\n t['ninegujarati'] = 0x0AEF;\n t['ninegurmukhi'] = 0x0A6F;\n t['ninehackarabic'] = 0x0669;\n t['ninehangzhou'] = 0x3029;\n t['nineideographicparen'] = 0x3228;\n t['nineinferior'] = 0x2089;\n t['ninemonospace'] = 0xFF19;\n t['nineoldstyle'] = 0xF739;\n t['nineparen'] = 0x247C;\n t['nineperiod'] = 0x2490;\n t['ninepersian'] = 0x06F9;\n t['nineroman'] = 0x2178;\n t['ninesuperior'] = 0x2079;\n t['nineteencircle'] = 0x2472;\n t['nineteenparen'] = 0x2486;\n t['nineteenperiod'] = 0x249A;\n t['ninethai'] = 0x0E59;\n t['nj'] = 0x01CC;\n t['njecyrillic'] = 0x045A;\n t['nkatakana'] = 0x30F3;\n t['nkatakanahalfwidth'] = 0xFF9D;\n t['nlegrightlong'] = 0x019E;\n t['nlinebelow'] = 0x1E49;\n t['nmonospace'] = 0xFF4E;\n t['nmsquare'] = 0x339A;\n t['nnabengali'] = 0x09A3;\n t['nnadeva'] = 0x0923;\n t['nnagujarati'] = 0x0AA3;\n t['nnagurmukhi'] = 0x0A23;\n t['nnnadeva'] = 0x0929;\n t['nohiragana'] = 0x306E;\n t['nokatakana'] = 0x30CE;\n t['nokatakanahalfwidth'] = 0xFF89;\n t['nonbreakingspace'] = 0x00A0;\n t['nonenthai'] = 0x0E13;\n t['nonuthai'] = 0x0E19;\n t['noonarabic'] = 0x0646;\n t['noonfinalarabic'] = 0xFEE6;\n t['noonghunnaarabic'] = 0x06BA;\n t['noonghunnafinalarabic'] = 0xFB9F;\n t['nooninitialarabic'] = 0xFEE7;\n t['noonjeeminitialarabic'] = 0xFCD2;\n t['noonjeemisolatedarabic'] = 0xFC4B;\n t['noonmedialarabic'] = 0xFEE8;\n t['noonmeeminitialarabic'] = 0xFCD5;\n t['noonmeemisolatedarabic'] = 0xFC4E;\n t['noonnoonfinalarabic'] = 0xFC8D;\n t['notcontains'] = 0x220C;\n t['notelement'] = 0x2209;\n t['notelementof'] = 0x2209;\n t['notequal'] = 0x2260;\n t['notgreater'] = 0x226F;\n t['notgreaternorequal'] = 0x2271;\n t['notgreaternorless'] = 0x2279;\n t['notidentical'] = 0x2262;\n t['notless'] = 0x226E;\n t['notlessnorequal'] = 0x2270;\n t['notparallel'] = 0x2226;\n t['notprecedes'] = 0x2280;\n t['notsubset'] = 0x2284;\n t['notsucceeds'] = 0x2281;\n t['notsuperset'] = 0x2285;\n t['nowarmenian'] = 0x0576;\n t['nparen'] = 0x24A9;\n t['nssquare'] = 0x33B1;\n t['nsuperior'] = 0x207F;\n t['ntilde'] = 0x00F1;\n t['nu'] = 0x03BD;\n t['nuhiragana'] = 0x306C;\n t['nukatakana'] = 0x30CC;\n t['nukatakanahalfwidth'] = 0xFF87;\n t['nuktabengali'] = 0x09BC;\n t['nuktadeva'] = 0x093C;\n t['nuktagujarati'] = 0x0ABC;\n t['nuktagurmukhi'] = 0x0A3C;\n t['numbersign'] = 0x0023;\n t['numbersignmonospace'] = 0xFF03;\n t['numbersignsmall'] = 0xFE5F;\n t['numeralsigngreek'] = 0x0374;\n t['numeralsignlowergreek'] = 0x0375;\n t['numero'] = 0x2116;\n t['nun'] = 0x05E0;\n t['nundagesh'] = 0xFB40;\n t['nundageshhebrew'] = 0xFB40;\n t['nunhebrew'] = 0x05E0;\n t['nvsquare'] = 0x33B5;\n t['nwsquare'] = 0x33BB;\n t['nyabengali'] = 0x099E;\n t['nyadeva'] = 0x091E;\n t['nyagujarati'] = 0x0A9E;\n t['nyagurmukhi'] = 0x0A1E;\n t['o'] = 0x006F;\n t['oacute'] = 0x00F3;\n t['oangthai'] = 0x0E2D;\n t['obarred'] = 0x0275;\n t['obarredcyrillic'] = 0x04E9;\n t['obarreddieresiscyrillic'] = 0x04EB;\n t['obengali'] = 0x0993;\n t['obopomofo'] = 0x311B;\n t['obreve'] = 0x014F;\n t['ocandradeva'] = 0x0911;\n t['ocandragujarati'] = 0x0A91;\n t['ocandravowelsigndeva'] = 0x0949;\n t['ocandravowelsigngujarati'] = 0x0AC9;\n t['ocaron'] = 0x01D2;\n t['ocircle'] = 0x24DE;\n t['ocircumflex'] = 0x00F4;\n t['ocircumflexacute'] = 0x1ED1;\n t['ocircumflexdotbelow'] = 0x1ED9;\n t['ocircumflexgrave'] = 0x1ED3;\n t['ocircumflexhookabove'] = 0x1ED5;\n t['ocircumflextilde'] = 0x1ED7;\n t['ocyrillic'] = 0x043E;\n t['odblacute'] = 0x0151;\n t['odblgrave'] = 0x020D;\n t['odeva'] = 0x0913;\n t['odieresis'] = 0x00F6;\n t['odieresiscyrillic'] = 0x04E7;\n t['odotbelow'] = 0x1ECD;\n t['oe'] = 0x0153;\n t['oekorean'] = 0x315A;\n t['ogonek'] = 0x02DB;\n t['ogonekcmb'] = 0x0328;\n t['ograve'] = 0x00F2;\n t['ogujarati'] = 0x0A93;\n t['oharmenian'] = 0x0585;\n t['ohiragana'] = 0x304A;\n t['ohookabove'] = 0x1ECF;\n t['ohorn'] = 0x01A1;\n t['ohornacute'] = 0x1EDB;\n t['ohorndotbelow'] = 0x1EE3;\n t['ohorngrave'] = 0x1EDD;\n t['ohornhookabove'] = 0x1EDF;\n t['ohorntilde'] = 0x1EE1;\n t['ohungarumlaut'] = 0x0151;\n t['oi'] = 0x01A3;\n t['oinvertedbreve'] = 0x020F;\n t['okatakana'] = 0x30AA;\n t['okatakanahalfwidth'] = 0xFF75;\n t['okorean'] = 0x3157;\n t['olehebrew'] = 0x05AB;\n t['omacron'] = 0x014D;\n t['omacronacute'] = 0x1E53;\n t['omacrongrave'] = 0x1E51;\n t['omdeva'] = 0x0950;\n t['omega'] = 0x03C9;\n t['omega1'] = 0x03D6;\n t['omegacyrillic'] = 0x0461;\n t['omegalatinclosed'] = 0x0277;\n t['omegaroundcyrillic'] = 0x047B;\n t['omegatitlocyrillic'] = 0x047D;\n t['omegatonos'] = 0x03CE;\n t['omgujarati'] = 0x0AD0;\n t['omicron'] = 0x03BF;\n t['omicrontonos'] = 0x03CC;\n t['omonospace'] = 0xFF4F;\n t['one'] = 0x0031;\n t['onearabic'] = 0x0661;\n t['onebengali'] = 0x09E7;\n t['onecircle'] = 0x2460;\n t['onecircleinversesansserif'] = 0x278A;\n t['onedeva'] = 0x0967;\n t['onedotenleader'] = 0x2024;\n t['oneeighth'] = 0x215B;\n t['onefitted'] = 0xF6DC;\n t['onegujarati'] = 0x0AE7;\n t['onegurmukhi'] = 0x0A67;\n t['onehackarabic'] = 0x0661;\n t['onehalf'] = 0x00BD;\n t['onehangzhou'] = 0x3021;\n t['oneideographicparen'] = 0x3220;\n t['oneinferior'] = 0x2081;\n t['onemonospace'] = 0xFF11;\n t['onenumeratorbengali'] = 0x09F4;\n t['oneoldstyle'] = 0xF731;\n t['oneparen'] = 0x2474;\n t['oneperiod'] = 0x2488;\n t['onepersian'] = 0x06F1;\n t['onequarter'] = 0x00BC;\n t['oneroman'] = 0x2170;\n t['onesuperior'] = 0x00B9;\n t['onethai'] = 0x0E51;\n t['onethird'] = 0x2153;\n t['oogonek'] = 0x01EB;\n t['oogonekmacron'] = 0x01ED;\n t['oogurmukhi'] = 0x0A13;\n t['oomatragurmukhi'] = 0x0A4B;\n t['oopen'] = 0x0254;\n t['oparen'] = 0x24AA;\n t['openbullet'] = 0x25E6;\n t['option'] = 0x2325;\n t['ordfeminine'] = 0x00AA;\n t['ordmasculine'] = 0x00BA;\n t['orthogonal'] = 0x221F;\n t['oshortdeva'] = 0x0912;\n t['oshortvowelsigndeva'] = 0x094A;\n t['oslash'] = 0x00F8;\n t['oslashacute'] = 0x01FF;\n t['osmallhiragana'] = 0x3049;\n t['osmallkatakana'] = 0x30A9;\n t['osmallkatakanahalfwidth'] = 0xFF6B;\n t['ostrokeacute'] = 0x01FF;\n t['osuperior'] = 0xF6F0;\n t['otcyrillic'] = 0x047F;\n t['otilde'] = 0x00F5;\n t['otildeacute'] = 0x1E4D;\n t['otildedieresis'] = 0x1E4F;\n t['oubopomofo'] = 0x3121;\n t['overline'] = 0x203E;\n t['overlinecenterline'] = 0xFE4A;\n t['overlinecmb'] = 0x0305;\n t['overlinedashed'] = 0xFE49;\n t['overlinedblwavy'] = 0xFE4C;\n t['overlinewavy'] = 0xFE4B;\n t['overscore'] = 0x00AF;\n t['ovowelsignbengali'] = 0x09CB;\n t['ovowelsigndeva'] = 0x094B;\n t['ovowelsigngujarati'] = 0x0ACB;\n t['p'] = 0x0070;\n t['paampssquare'] = 0x3380;\n t['paasentosquare'] = 0x332B;\n t['pabengali'] = 0x09AA;\n t['pacute'] = 0x1E55;\n t['padeva'] = 0x092A;\n t['pagedown'] = 0x21DF;\n t['pageup'] = 0x21DE;\n t['pagujarati'] = 0x0AAA;\n t['pagurmukhi'] = 0x0A2A;\n t['pahiragana'] = 0x3071;\n t['paiyannoithai'] = 0x0E2F;\n t['pakatakana'] = 0x30D1;\n t['palatalizationcyrilliccmb'] = 0x0484;\n t['palochkacyrillic'] = 0x04C0;\n t['pansioskorean'] = 0x317F;\n t['paragraph'] = 0x00B6;\n t['parallel'] = 0x2225;\n t['parenleft'] = 0x0028;\n t['parenleftaltonearabic'] = 0xFD3E;\n t['parenleftbt'] = 0xF8ED;\n t['parenleftex'] = 0xF8EC;\n t['parenleftinferior'] = 0x208D;\n t['parenleftmonospace'] = 0xFF08;\n t['parenleftsmall'] = 0xFE59;\n t['parenleftsuperior'] = 0x207D;\n t['parenlefttp'] = 0xF8EB;\n t['parenleftvertical'] = 0xFE35;\n t['parenright'] = 0x0029;\n t['parenrightaltonearabic'] = 0xFD3F;\n t['parenrightbt'] = 0xF8F8;\n t['parenrightex'] = 0xF8F7;\n t['parenrightinferior'] = 0x208E;\n t['parenrightmonospace'] = 0xFF09;\n t['parenrightsmall'] = 0xFE5A;\n t['parenrightsuperior'] = 0x207E;\n t['parenrighttp'] = 0xF8F6;\n t['parenrightvertical'] = 0xFE36;\n t['partialdiff'] = 0x2202;\n t['paseqhebrew'] = 0x05C0;\n t['pashtahebrew'] = 0x0599;\n t['pasquare'] = 0x33A9;\n t['patah'] = 0x05B7;\n t['patah11'] = 0x05B7;\n t['patah1d'] = 0x05B7;\n t['patah2a'] = 0x05B7;\n t['patahhebrew'] = 0x05B7;\n t['patahnarrowhebrew'] = 0x05B7;\n t['patahquarterhebrew'] = 0x05B7;\n t['patahwidehebrew'] = 0x05B7;\n t['pazerhebrew'] = 0x05A1;\n t['pbopomofo'] = 0x3106;\n t['pcircle'] = 0x24DF;\n t['pdotaccent'] = 0x1E57;\n t['pe'] = 0x05E4;\n t['pecyrillic'] = 0x043F;\n t['pedagesh'] = 0xFB44;\n t['pedageshhebrew'] = 0xFB44;\n t['peezisquare'] = 0x333B;\n t['pefinaldageshhebrew'] = 0xFB43;\n t['peharabic'] = 0x067E;\n t['peharmenian'] = 0x057A;\n t['pehebrew'] = 0x05E4;\n t['pehfinalarabic'] = 0xFB57;\n t['pehinitialarabic'] = 0xFB58;\n t['pehiragana'] = 0x307A;\n t['pehmedialarabic'] = 0xFB59;\n t['pekatakana'] = 0x30DA;\n t['pemiddlehookcyrillic'] = 0x04A7;\n t['perafehebrew'] = 0xFB4E;\n t['percent'] = 0x0025;\n t['percentarabic'] = 0x066A;\n t['percentmonospace'] = 0xFF05;\n t['percentsmall'] = 0xFE6A;\n t['period'] = 0x002E;\n t['periodarmenian'] = 0x0589;\n t['periodcentered'] = 0x00B7;\n t['periodhalfwidth'] = 0xFF61;\n t['periodinferior'] = 0xF6E7;\n t['periodmonospace'] = 0xFF0E;\n t['periodsmall'] = 0xFE52;\n t['periodsuperior'] = 0xF6E8;\n t['perispomenigreekcmb'] = 0x0342;\n t['perpendicular'] = 0x22A5;\n t['perthousand'] = 0x2030;\n t['peseta'] = 0x20A7;\n t['pfsquare'] = 0x338A;\n t['phabengali'] = 0x09AB;\n t['phadeva'] = 0x092B;\n t['phagujarati'] = 0x0AAB;\n t['phagurmukhi'] = 0x0A2B;\n t['phi'] = 0x03C6;\n t['phi1'] = 0x03D5;\n t['phieuphacirclekorean'] = 0x327A;\n t['phieuphaparenkorean'] = 0x321A;\n t['phieuphcirclekorean'] = 0x326C;\n t['phieuphkorean'] = 0x314D;\n t['phieuphparenkorean'] = 0x320C;\n t['philatin'] = 0x0278;\n t['phinthuthai'] = 0x0E3A;\n t['phisymbolgreek'] = 0x03D5;\n t['phook'] = 0x01A5;\n t['phophanthai'] = 0x0E1E;\n t['phophungthai'] = 0x0E1C;\n t['phosamphaothai'] = 0x0E20;\n t['pi'] = 0x03C0;\n t['pieupacirclekorean'] = 0x3273;\n t['pieupaparenkorean'] = 0x3213;\n t['pieupcieuckorean'] = 0x3176;\n t['pieupcirclekorean'] = 0x3265;\n t['pieupkiyeokkorean'] = 0x3172;\n t['pieupkorean'] = 0x3142;\n t['pieupparenkorean'] = 0x3205;\n t['pieupsioskiyeokkorean'] = 0x3174;\n t['pieupsioskorean'] = 0x3144;\n t['pieupsiostikeutkorean'] = 0x3175;\n t['pieupthieuthkorean'] = 0x3177;\n t['pieuptikeutkorean'] = 0x3173;\n t['pihiragana'] = 0x3074;\n t['pikatakana'] = 0x30D4;\n t['pisymbolgreek'] = 0x03D6;\n t['piwrarmenian'] = 0x0583;\n t['plus'] = 0x002B;\n t['plusbelowcmb'] = 0x031F;\n t['pluscircle'] = 0x2295;\n t['plusminus'] = 0x00B1;\n t['plusmod'] = 0x02D6;\n t['plusmonospace'] = 0xFF0B;\n t['plussmall'] = 0xFE62;\n t['plussuperior'] = 0x207A;\n t['pmonospace'] = 0xFF50;\n t['pmsquare'] = 0x33D8;\n t['pohiragana'] = 0x307D;\n t['pointingindexdownwhite'] = 0x261F;\n t['pointingindexleftwhite'] = 0x261C;\n t['pointingindexrightwhite'] = 0x261E;\n t['pointingindexupwhite'] = 0x261D;\n t['pokatakana'] = 0x30DD;\n t['poplathai'] = 0x0E1B;\n t['postalmark'] = 0x3012;\n t['postalmarkface'] = 0x3020;\n t['pparen'] = 0x24AB;\n t['precedes'] = 0x227A;\n t['prescription'] = 0x211E;\n t['primemod'] = 0x02B9;\n t['primereversed'] = 0x2035;\n t['product'] = 0x220F;\n t['projective'] = 0x2305;\n t['prolongedkana'] = 0x30FC;\n t['propellor'] = 0x2318;\n t['propersubset'] = 0x2282;\n t['propersuperset'] = 0x2283;\n t['proportion'] = 0x2237;\n t['proportional'] = 0x221D;\n t['psi'] = 0x03C8;\n t['psicyrillic'] = 0x0471;\n t['psilipneumatacyrilliccmb'] = 0x0486;\n t['pssquare'] = 0x33B0;\n t['puhiragana'] = 0x3077;\n t['pukatakana'] = 0x30D7;\n t['pvsquare'] = 0x33B4;\n t['pwsquare'] = 0x33BA;\n t['q'] = 0x0071;\n t['qadeva'] = 0x0958;\n t['qadmahebrew'] = 0x05A8;\n t['qafarabic'] = 0x0642;\n t['qaffinalarabic'] = 0xFED6;\n t['qafinitialarabic'] = 0xFED7;\n t['qafmedialarabic'] = 0xFED8;\n t['qamats'] = 0x05B8;\n t['qamats10'] = 0x05B8;\n t['qamats1a'] = 0x05B8;\n t['qamats1c'] = 0x05B8;\n t['qamats27'] = 0x05B8;\n t['qamats29'] = 0x05B8;\n t['qamats33'] = 0x05B8;\n t['qamatsde'] = 0x05B8;\n t['qamatshebrew'] = 0x05B8;\n t['qamatsnarrowhebrew'] = 0x05B8;\n t['qamatsqatanhebrew'] = 0x05B8;\n t['qamatsqatannarrowhebrew'] = 0x05B8;\n t['qamatsqatanquarterhebrew'] = 0x05B8;\n t['qamatsqatanwidehebrew'] = 0x05B8;\n t['qamatsquarterhebrew'] = 0x05B8;\n t['qamatswidehebrew'] = 0x05B8;\n t['qarneyparahebrew'] = 0x059F;\n t['qbopomofo'] = 0x3111;\n t['qcircle'] = 0x24E0;\n t['qhook'] = 0x02A0;\n t['qmonospace'] = 0xFF51;\n t['qof'] = 0x05E7;\n t['qofdagesh'] = 0xFB47;\n t['qofdageshhebrew'] = 0xFB47;\n t['qofhebrew'] = 0x05E7;\n t['qparen'] = 0x24AC;\n t['quarternote'] = 0x2669;\n t['qubuts'] = 0x05BB;\n t['qubuts18'] = 0x05BB;\n t['qubuts25'] = 0x05BB;\n t['qubuts31'] = 0x05BB;\n t['qubutshebrew'] = 0x05BB;\n t['qubutsnarrowhebrew'] = 0x05BB;\n t['qubutsquarterhebrew'] = 0x05BB;\n t['qubutswidehebrew'] = 0x05BB;\n t['question'] = 0x003F;\n t['questionarabic'] = 0x061F;\n t['questionarmenian'] = 0x055E;\n t['questiondown'] = 0x00BF;\n t['questiondownsmall'] = 0xF7BF;\n t['questiongreek'] = 0x037E;\n t['questionmonospace'] = 0xFF1F;\n t['questionsmall'] = 0xF73F;\n t['quotedbl'] = 0x0022;\n t['quotedblbase'] = 0x201E;\n t['quotedblleft'] = 0x201C;\n t['quotedblmonospace'] = 0xFF02;\n t['quotedblprime'] = 0x301E;\n t['quotedblprimereversed'] = 0x301D;\n t['quotedblright'] = 0x201D;\n t['quoteleft'] = 0x2018;\n t['quoteleftreversed'] = 0x201B;\n t['quotereversed'] = 0x201B;\n t['quoteright'] = 0x2019;\n t['quoterightn'] = 0x0149;\n t['quotesinglbase'] = 0x201A;\n t['quotesingle'] = 0x0027;\n t['quotesinglemonospace'] = 0xFF07;\n t['r'] = 0x0072;\n t['raarmenian'] = 0x057C;\n t['rabengali'] = 0x09B0;\n t['racute'] = 0x0155;\n t['radeva'] = 0x0930;\n t['radical'] = 0x221A;\n t['radicalex'] = 0xF8E5;\n t['radoverssquare'] = 0x33AE;\n t['radoverssquaredsquare'] = 0x33AF;\n t['radsquare'] = 0x33AD;\n t['rafe'] = 0x05BF;\n t['rafehebrew'] = 0x05BF;\n t['ragujarati'] = 0x0AB0;\n t['ragurmukhi'] = 0x0A30;\n t['rahiragana'] = 0x3089;\n t['rakatakana'] = 0x30E9;\n t['rakatakanahalfwidth'] = 0xFF97;\n t['ralowerdiagonalbengali'] = 0x09F1;\n t['ramiddlediagonalbengali'] = 0x09F0;\n t['ramshorn'] = 0x0264;\n t['ratio'] = 0x2236;\n t['rbopomofo'] = 0x3116;\n t['rcaron'] = 0x0159;\n t['rcedilla'] = 0x0157;\n t['rcircle'] = 0x24E1;\n t['rcommaaccent'] = 0x0157;\n t['rdblgrave'] = 0x0211;\n t['rdotaccent'] = 0x1E59;\n t['rdotbelow'] = 0x1E5B;\n t['rdotbelowmacron'] = 0x1E5D;\n t['referencemark'] = 0x203B;\n t['reflexsubset'] = 0x2286;\n t['reflexsuperset'] = 0x2287;\n t['registered'] = 0x00AE;\n t['registersans'] = 0xF8E8;\n t['registerserif'] = 0xF6DA;\n t['reharabic'] = 0x0631;\n t['reharmenian'] = 0x0580;\n t['rehfinalarabic'] = 0xFEAE;\n t['rehiragana'] = 0x308C;\n t['rekatakana'] = 0x30EC;\n t['rekatakanahalfwidth'] = 0xFF9A;\n t['resh'] = 0x05E8;\n t['reshdageshhebrew'] = 0xFB48;\n t['reshhebrew'] = 0x05E8;\n t['reversedtilde'] = 0x223D;\n t['reviahebrew'] = 0x0597;\n t['reviamugrashhebrew'] = 0x0597;\n t['revlogicalnot'] = 0x2310;\n t['rfishhook'] = 0x027E;\n t['rfishhookreversed'] = 0x027F;\n t['rhabengali'] = 0x09DD;\n t['rhadeva'] = 0x095D;\n t['rho'] = 0x03C1;\n t['rhook'] = 0x027D;\n t['rhookturned'] = 0x027B;\n t['rhookturnedsuperior'] = 0x02B5;\n t['rhosymbolgreek'] = 0x03F1;\n t['rhotichookmod'] = 0x02DE;\n t['rieulacirclekorean'] = 0x3271;\n t['rieulaparenkorean'] = 0x3211;\n t['rieulcirclekorean'] = 0x3263;\n t['rieulhieuhkorean'] = 0x3140;\n t['rieulkiyeokkorean'] = 0x313A;\n t['rieulkiyeoksioskorean'] = 0x3169;\n t['rieulkorean'] = 0x3139;\n t['rieulmieumkorean'] = 0x313B;\n t['rieulpansioskorean'] = 0x316C;\n t['rieulparenkorean'] = 0x3203;\n t['rieulphieuphkorean'] = 0x313F;\n t['rieulpieupkorean'] = 0x313C;\n t['rieulpieupsioskorean'] = 0x316B;\n t['rieulsioskorean'] = 0x313D;\n t['rieulthieuthkorean'] = 0x313E;\n t['rieultikeutkorean'] = 0x316A;\n t['rieulyeorinhieuhkorean'] = 0x316D;\n t['rightangle'] = 0x221F;\n t['righttackbelowcmb'] = 0x0319;\n t['righttriangle'] = 0x22BF;\n t['rihiragana'] = 0x308A;\n t['rikatakana'] = 0x30EA;\n t['rikatakanahalfwidth'] = 0xFF98;\n t['ring'] = 0x02DA;\n t['ringbelowcmb'] = 0x0325;\n t['ringcmb'] = 0x030A;\n t['ringhalfleft'] = 0x02BF;\n t['ringhalfleftarmenian'] = 0x0559;\n t['ringhalfleftbelowcmb'] = 0x031C;\n t['ringhalfleftcentered'] = 0x02D3;\n t['ringhalfright'] = 0x02BE;\n t['ringhalfrightbelowcmb'] = 0x0339;\n t['ringhalfrightcentered'] = 0x02D2;\n t['rinvertedbreve'] = 0x0213;\n t['rittorusquare'] = 0x3351;\n t['rlinebelow'] = 0x1E5F;\n t['rlongleg'] = 0x027C;\n t['rlonglegturned'] = 0x027A;\n t['rmonospace'] = 0xFF52;\n t['rohiragana'] = 0x308D;\n t['rokatakana'] = 0x30ED;\n t['rokatakanahalfwidth'] = 0xFF9B;\n t['roruathai'] = 0x0E23;\n t['rparen'] = 0x24AD;\n t['rrabengali'] = 0x09DC;\n t['rradeva'] = 0x0931;\n t['rragurmukhi'] = 0x0A5C;\n t['rreharabic'] = 0x0691;\n t['rrehfinalarabic'] = 0xFB8D;\n t['rrvocalicbengali'] = 0x09E0;\n t['rrvocalicdeva'] = 0x0960;\n t['rrvocalicgujarati'] = 0x0AE0;\n t['rrvocalicvowelsignbengali'] = 0x09C4;\n t['rrvocalicvowelsigndeva'] = 0x0944;\n t['rrvocalicvowelsigngujarati'] = 0x0AC4;\n t['rsuperior'] = 0xF6F1;\n t['rtblock'] = 0x2590;\n t['rturned'] = 0x0279;\n t['rturnedsuperior'] = 0x02B4;\n t['ruhiragana'] = 0x308B;\n t['rukatakana'] = 0x30EB;\n t['rukatakanahalfwidth'] = 0xFF99;\n t['rupeemarkbengali'] = 0x09F2;\n t['rupeesignbengali'] = 0x09F3;\n t['rupiah'] = 0xF6DD;\n t['ruthai'] = 0x0E24;\n t['rvocalicbengali'] = 0x098B;\n t['rvocalicdeva'] = 0x090B;\n t['rvocalicgujarati'] = 0x0A8B;\n t['rvocalicvowelsignbengali'] = 0x09C3;\n t['rvocalicvowelsigndeva'] = 0x0943;\n t['rvocalicvowelsigngujarati'] = 0x0AC3;\n t['s'] = 0x0073;\n t['sabengali'] = 0x09B8;\n t['sacute'] = 0x015B;\n t['sacutedotaccent'] = 0x1E65;\n t['sadarabic'] = 0x0635;\n t['sadeva'] = 0x0938;\n t['sadfinalarabic'] = 0xFEBA;\n t['sadinitialarabic'] = 0xFEBB;\n t['sadmedialarabic'] = 0xFEBC;\n t['sagujarati'] = 0x0AB8;\n t['sagurmukhi'] = 0x0A38;\n t['sahiragana'] = 0x3055;\n t['sakatakana'] = 0x30B5;\n t['sakatakanahalfwidth'] = 0xFF7B;\n t['sallallahoualayhewasallamarabic'] = 0xFDFA;\n t['samekh'] = 0x05E1;\n t['samekhdagesh'] = 0xFB41;\n t['samekhdageshhebrew'] = 0xFB41;\n t['samekhhebrew'] = 0x05E1;\n t['saraaathai'] = 0x0E32;\n t['saraaethai'] = 0x0E41;\n t['saraaimaimalaithai'] = 0x0E44;\n t['saraaimaimuanthai'] = 0x0E43;\n t['saraamthai'] = 0x0E33;\n t['saraathai'] = 0x0E30;\n t['saraethai'] = 0x0E40;\n t['saraiileftthai'] = 0xF886;\n t['saraiithai'] = 0x0E35;\n t['saraileftthai'] = 0xF885;\n t['saraithai'] = 0x0E34;\n t['saraothai'] = 0x0E42;\n t['saraueeleftthai'] = 0xF888;\n t['saraueethai'] = 0x0E37;\n t['saraueleftthai'] = 0xF887;\n t['sarauethai'] = 0x0E36;\n t['sarauthai'] = 0x0E38;\n t['sarauuthai'] = 0x0E39;\n t['sbopomofo'] = 0x3119;\n t['scaron'] = 0x0161;\n t['scarondotaccent'] = 0x1E67;\n t['scedilla'] = 0x015F;\n t['schwa'] = 0x0259;\n t['schwacyrillic'] = 0x04D9;\n t['schwadieresiscyrillic'] = 0x04DB;\n t['schwahook'] = 0x025A;\n t['scircle'] = 0x24E2;\n t['scircumflex'] = 0x015D;\n t['scommaaccent'] = 0x0219;\n t['sdotaccent'] = 0x1E61;\n t['sdotbelow'] = 0x1E63;\n t['sdotbelowdotaccent'] = 0x1E69;\n t['seagullbelowcmb'] = 0x033C;\n t['second'] = 0x2033;\n t['secondtonechinese'] = 0x02CA;\n t['section'] = 0x00A7;\n t['seenarabic'] = 0x0633;\n t['seenfinalarabic'] = 0xFEB2;\n t['seeninitialarabic'] = 0xFEB3;\n t['seenmedialarabic'] = 0xFEB4;\n t['segol'] = 0x05B6;\n t['segol13'] = 0x05B6;\n t['segol1f'] = 0x05B6;\n t['segol2c'] = 0x05B6;\n t['segolhebrew'] = 0x05B6;\n t['segolnarrowhebrew'] = 0x05B6;\n t['segolquarterhebrew'] = 0x05B6;\n t['segoltahebrew'] = 0x0592;\n t['segolwidehebrew'] = 0x05B6;\n t['seharmenian'] = 0x057D;\n t['sehiragana'] = 0x305B;\n t['sekatakana'] = 0x30BB;\n t['sekatakanahalfwidth'] = 0xFF7E;\n t['semicolon'] = 0x003B;\n t['semicolonarabic'] = 0x061B;\n t['semicolonmonospace'] = 0xFF1B;\n t['semicolonsmall'] = 0xFE54;\n t['semivoicedmarkkana'] = 0x309C;\n t['semivoicedmarkkanahalfwidth'] = 0xFF9F;\n t['sentisquare'] = 0x3322;\n t['sentosquare'] = 0x3323;\n t['seven'] = 0x0037;\n t['sevenarabic'] = 0x0667;\n t['sevenbengali'] = 0x09ED;\n t['sevencircle'] = 0x2466;\n t['sevencircleinversesansserif'] = 0x2790;\n t['sevendeva'] = 0x096D;\n t['seveneighths'] = 0x215E;\n t['sevengujarati'] = 0x0AED;\n t['sevengurmukhi'] = 0x0A6D;\n t['sevenhackarabic'] = 0x0667;\n t['sevenhangzhou'] = 0x3027;\n t['sevenideographicparen'] = 0x3226;\n t['seveninferior'] = 0x2087;\n t['sevenmonospace'] = 0xFF17;\n t['sevenoldstyle'] = 0xF737;\n t['sevenparen'] = 0x247A;\n t['sevenperiod'] = 0x248E;\n t['sevenpersian'] = 0x06F7;\n t['sevenroman'] = 0x2176;\n t['sevensuperior'] = 0x2077;\n t['seventeencircle'] = 0x2470;\n t['seventeenparen'] = 0x2484;\n t['seventeenperiod'] = 0x2498;\n t['seventhai'] = 0x0E57;\n t['sfthyphen'] = 0x00AD;\n t['shaarmenian'] = 0x0577;\n t['shabengali'] = 0x09B6;\n t['shacyrillic'] = 0x0448;\n t['shaddaarabic'] = 0x0651;\n t['shaddadammaarabic'] = 0xFC61;\n t['shaddadammatanarabic'] = 0xFC5E;\n t['shaddafathaarabic'] = 0xFC60;\n t['shaddakasraarabic'] = 0xFC62;\n t['shaddakasratanarabic'] = 0xFC5F;\n t['shade'] = 0x2592;\n t['shadedark'] = 0x2593;\n t['shadelight'] = 0x2591;\n t['shademedium'] = 0x2592;\n t['shadeva'] = 0x0936;\n t['shagujarati'] = 0x0AB6;\n t['shagurmukhi'] = 0x0A36;\n t['shalshelethebrew'] = 0x0593;\n t['shbopomofo'] = 0x3115;\n t['shchacyrillic'] = 0x0449;\n t['sheenarabic'] = 0x0634;\n t['sheenfinalarabic'] = 0xFEB6;\n t['sheeninitialarabic'] = 0xFEB7;\n t['sheenmedialarabic'] = 0xFEB8;\n t['sheicoptic'] = 0x03E3;\n t['sheqel'] = 0x20AA;\n t['sheqelhebrew'] = 0x20AA;\n t['sheva'] = 0x05B0;\n t['sheva115'] = 0x05B0;\n t['sheva15'] = 0x05B0;\n t['sheva22'] = 0x05B0;\n t['sheva2e'] = 0x05B0;\n t['shevahebrew'] = 0x05B0;\n t['shevanarrowhebrew'] = 0x05B0;\n t['shevaquarterhebrew'] = 0x05B0;\n t['shevawidehebrew'] = 0x05B0;\n t['shhacyrillic'] = 0x04BB;\n t['shimacoptic'] = 0x03ED;\n t['shin'] = 0x05E9;\n t['shindagesh'] = 0xFB49;\n t['shindageshhebrew'] = 0xFB49;\n t['shindageshshindot'] = 0xFB2C;\n t['shindageshshindothebrew'] = 0xFB2C;\n t['shindageshsindot'] = 0xFB2D;\n t['shindageshsindothebrew'] = 0xFB2D;\n t['shindothebrew'] = 0x05C1;\n t['shinhebrew'] = 0x05E9;\n t['shinshindot'] = 0xFB2A;\n t['shinshindothebrew'] = 0xFB2A;\n t['shinsindot'] = 0xFB2B;\n t['shinsindothebrew'] = 0xFB2B;\n t['shook'] = 0x0282;\n t['sigma'] = 0x03C3;\n t['sigma1'] = 0x03C2;\n t['sigmafinal'] = 0x03C2;\n t['sigmalunatesymbolgreek'] = 0x03F2;\n t['sihiragana'] = 0x3057;\n t['sikatakana'] = 0x30B7;\n t['sikatakanahalfwidth'] = 0xFF7C;\n t['siluqhebrew'] = 0x05BD;\n t['siluqlefthebrew'] = 0x05BD;\n t['similar'] = 0x223C;\n t['sindothebrew'] = 0x05C2;\n t['siosacirclekorean'] = 0x3274;\n t['siosaparenkorean'] = 0x3214;\n t['sioscieuckorean'] = 0x317E;\n t['sioscirclekorean'] = 0x3266;\n t['sioskiyeokkorean'] = 0x317A;\n t['sioskorean'] = 0x3145;\n t['siosnieunkorean'] = 0x317B;\n t['siosparenkorean'] = 0x3206;\n t['siospieupkorean'] = 0x317D;\n t['siostikeutkorean'] = 0x317C;\n t['six'] = 0x0036;\n t['sixarabic'] = 0x0666;\n t['sixbengali'] = 0x09EC;\n t['sixcircle'] = 0x2465;\n t['sixcircleinversesansserif'] = 0x278F;\n t['sixdeva'] = 0x096C;\n t['sixgujarati'] = 0x0AEC;\n t['sixgurmukhi'] = 0x0A6C;\n t['sixhackarabic'] = 0x0666;\n t['sixhangzhou'] = 0x3026;\n t['sixideographicparen'] = 0x3225;\n t['sixinferior'] = 0x2086;\n t['sixmonospace'] = 0xFF16;\n t['sixoldstyle'] = 0xF736;\n t['sixparen'] = 0x2479;\n t['sixperiod'] = 0x248D;\n t['sixpersian'] = 0x06F6;\n t['sixroman'] = 0x2175;\n t['sixsuperior'] = 0x2076;\n t['sixteencircle'] = 0x246F;\n t['sixteencurrencydenominatorbengali'] = 0x09F9;\n t['sixteenparen'] = 0x2483;\n t['sixteenperiod'] = 0x2497;\n t['sixthai'] = 0x0E56;\n t['slash'] = 0x002F;\n t['slashmonospace'] = 0xFF0F;\n t['slong'] = 0x017F;\n t['slongdotaccent'] = 0x1E9B;\n t['smileface'] = 0x263A;\n t['smonospace'] = 0xFF53;\n t['sofpasuqhebrew'] = 0x05C3;\n t['softhyphen'] = 0x00AD;\n t['softsigncyrillic'] = 0x044C;\n t['sohiragana'] = 0x305D;\n t['sokatakana'] = 0x30BD;\n t['sokatakanahalfwidth'] = 0xFF7F;\n t['soliduslongoverlaycmb'] = 0x0338;\n t['solidusshortoverlaycmb'] = 0x0337;\n t['sorusithai'] = 0x0E29;\n t['sosalathai'] = 0x0E28;\n t['sosothai'] = 0x0E0B;\n t['sosuathai'] = 0x0E2A;\n t['space'] = 0x0020;\n t['spacehackarabic'] = 0x0020;\n t['spade'] = 0x2660;\n t['spadesuitblack'] = 0x2660;\n t['spadesuitwhite'] = 0x2664;\n t['sparen'] = 0x24AE;\n t['squarebelowcmb'] = 0x033B;\n t['squarecc'] = 0x33C4;\n t['squarecm'] = 0x339D;\n t['squarediagonalcrosshatchfill'] = 0x25A9;\n t['squarehorizontalfill'] = 0x25A4;\n t['squarekg'] = 0x338F;\n t['squarekm'] = 0x339E;\n t['squarekmcapital'] = 0x33CE;\n t['squareln'] = 0x33D1;\n t['squarelog'] = 0x33D2;\n t['squaremg'] = 0x338E;\n t['squaremil'] = 0x33D5;\n t['squaremm'] = 0x339C;\n t['squaremsquared'] = 0x33A1;\n t['squareorthogonalcrosshatchfill'] = 0x25A6;\n t['squareupperlefttolowerrightfill'] = 0x25A7;\n t['squareupperrighttolowerleftfill'] = 0x25A8;\n t['squareverticalfill'] = 0x25A5;\n t['squarewhitewithsmallblack'] = 0x25A3;\n t['srsquare'] = 0x33DB;\n t['ssabengali'] = 0x09B7;\n t['ssadeva'] = 0x0937;\n t['ssagujarati'] = 0x0AB7;\n t['ssangcieuckorean'] = 0x3149;\n t['ssanghieuhkorean'] = 0x3185;\n t['ssangieungkorean'] = 0x3180;\n t['ssangkiyeokkorean'] = 0x3132;\n t['ssangnieunkorean'] = 0x3165;\n t['ssangpieupkorean'] = 0x3143;\n t['ssangsioskorean'] = 0x3146;\n t['ssangtikeutkorean'] = 0x3138;\n t['ssuperior'] = 0xF6F2;\n t['sterling'] = 0x00A3;\n t['sterlingmonospace'] = 0xFFE1;\n t['strokelongoverlaycmb'] = 0x0336;\n t['strokeshortoverlaycmb'] = 0x0335;\n t['subset'] = 0x2282;\n t['subsetnotequal'] = 0x228A;\n t['subsetorequal'] = 0x2286;\n t['succeeds'] = 0x227B;\n t['suchthat'] = 0x220B;\n t['suhiragana'] = 0x3059;\n t['sukatakana'] = 0x30B9;\n t['sukatakanahalfwidth'] = 0xFF7D;\n t['sukunarabic'] = 0x0652;\n t['summation'] = 0x2211;\n t['sun'] = 0x263C;\n t['superset'] = 0x2283;\n t['supersetnotequal'] = 0x228B;\n t['supersetorequal'] = 0x2287;\n t['svsquare'] = 0x33DC;\n t['syouwaerasquare'] = 0x337C;\n t['t'] = 0x0074;\n t['tabengali'] = 0x09A4;\n t['tackdown'] = 0x22A4;\n t['tackleft'] = 0x22A3;\n t['tadeva'] = 0x0924;\n t['tagujarati'] = 0x0AA4;\n t['tagurmukhi'] = 0x0A24;\n t['taharabic'] = 0x0637;\n t['tahfinalarabic'] = 0xFEC2;\n t['tahinitialarabic'] = 0xFEC3;\n t['tahiragana'] = 0x305F;\n t['tahmedialarabic'] = 0xFEC4;\n t['taisyouerasquare'] = 0x337D;\n t['takatakana'] = 0x30BF;\n t['takatakanahalfwidth'] = 0xFF80;\n t['tatweelarabic'] = 0x0640;\n t['tau'] = 0x03C4;\n t['tav'] = 0x05EA;\n t['tavdages'] = 0xFB4A;\n t['tavdagesh'] = 0xFB4A;\n t['tavdageshhebrew'] = 0xFB4A;\n t['tavhebrew'] = 0x05EA;\n t['tbar'] = 0x0167;\n t['tbopomofo'] = 0x310A;\n t['tcaron'] = 0x0165;\n t['tccurl'] = 0x02A8;\n t['tcedilla'] = 0x0163;\n t['tcheharabic'] = 0x0686;\n t['tchehfinalarabic'] = 0xFB7B;\n t['tchehinitialarabic'] = 0xFB7C;\n t['tchehmedialarabic'] = 0xFB7D;\n t['tcircle'] = 0x24E3;\n t['tcircumflexbelow'] = 0x1E71;\n t['tcommaaccent'] = 0x0163;\n t['tdieresis'] = 0x1E97;\n t['tdotaccent'] = 0x1E6B;\n t['tdotbelow'] = 0x1E6D;\n t['tecyrillic'] = 0x0442;\n t['tedescendercyrillic'] = 0x04AD;\n t['teharabic'] = 0x062A;\n t['tehfinalarabic'] = 0xFE96;\n t['tehhahinitialarabic'] = 0xFCA2;\n t['tehhahisolatedarabic'] = 0xFC0C;\n t['tehinitialarabic'] = 0xFE97;\n t['tehiragana'] = 0x3066;\n t['tehjeeminitialarabic'] = 0xFCA1;\n t['tehjeemisolatedarabic'] = 0xFC0B;\n t['tehmarbutaarabic'] = 0x0629;\n t['tehmarbutafinalarabic'] = 0xFE94;\n t['tehmedialarabic'] = 0xFE98;\n t['tehmeeminitialarabic'] = 0xFCA4;\n t['tehmeemisolatedarabic'] = 0xFC0E;\n t['tehnoonfinalarabic'] = 0xFC73;\n t['tekatakana'] = 0x30C6;\n t['tekatakanahalfwidth'] = 0xFF83;\n t['telephone'] = 0x2121;\n t['telephoneblack'] = 0x260E;\n t['telishagedolahebrew'] = 0x05A0;\n t['telishaqetanahebrew'] = 0x05A9;\n t['tencircle'] = 0x2469;\n t['tenideographicparen'] = 0x3229;\n t['tenparen'] = 0x247D;\n t['tenperiod'] = 0x2491;\n t['tenroman'] = 0x2179;\n t['tesh'] = 0x02A7;\n t['tet'] = 0x05D8;\n t['tetdagesh'] = 0xFB38;\n t['tetdageshhebrew'] = 0xFB38;\n t['tethebrew'] = 0x05D8;\n t['tetsecyrillic'] = 0x04B5;\n t['tevirhebrew'] = 0x059B;\n t['tevirlefthebrew'] = 0x059B;\n t['thabengali'] = 0x09A5;\n t['thadeva'] = 0x0925;\n t['thagujarati'] = 0x0AA5;\n t['thagurmukhi'] = 0x0A25;\n t['thalarabic'] = 0x0630;\n t['thalfinalarabic'] = 0xFEAC;\n t['thanthakhatlowleftthai'] = 0xF898;\n t['thanthakhatlowrightthai'] = 0xF897;\n t['thanthakhatthai'] = 0x0E4C;\n t['thanthakhatupperleftthai'] = 0xF896;\n t['theharabic'] = 0x062B;\n t['thehfinalarabic'] = 0xFE9A;\n t['thehinitialarabic'] = 0xFE9B;\n t['thehmedialarabic'] = 0xFE9C;\n t['thereexists'] = 0x2203;\n t['therefore'] = 0x2234;\n t['theta'] = 0x03B8;\n t['theta1'] = 0x03D1;\n t['thetasymbolgreek'] = 0x03D1;\n t['thieuthacirclekorean'] = 0x3279;\n t['thieuthaparenkorean'] = 0x3219;\n t['thieuthcirclekorean'] = 0x326B;\n t['thieuthkorean'] = 0x314C;\n t['thieuthparenkorean'] = 0x320B;\n t['thirteencircle'] = 0x246C;\n t['thirteenparen'] = 0x2480;\n t['thirteenperiod'] = 0x2494;\n t['thonangmonthothai'] = 0x0E11;\n t['thook'] = 0x01AD;\n t['thophuthaothai'] = 0x0E12;\n t['thorn'] = 0x00FE;\n t['thothahanthai'] = 0x0E17;\n t['thothanthai'] = 0x0E10;\n t['thothongthai'] = 0x0E18;\n t['thothungthai'] = 0x0E16;\n t['thousandcyrillic'] = 0x0482;\n t['thousandsseparatorarabic'] = 0x066C;\n t['thousandsseparatorpersian'] = 0x066C;\n t['three'] = 0x0033;\n t['threearabic'] = 0x0663;\n t['threebengali'] = 0x09E9;\n t['threecircle'] = 0x2462;\n t['threecircleinversesansserif'] = 0x278C;\n t['threedeva'] = 0x0969;\n t['threeeighths'] = 0x215C;\n t['threegujarati'] = 0x0AE9;\n t['threegurmukhi'] = 0x0A69;\n t['threehackarabic'] = 0x0663;\n t['threehangzhou'] = 0x3023;\n t['threeideographicparen'] = 0x3222;\n t['threeinferior'] = 0x2083;\n t['threemonospace'] = 0xFF13;\n t['threenumeratorbengali'] = 0x09F6;\n t['threeoldstyle'] = 0xF733;\n t['threeparen'] = 0x2476;\n t['threeperiod'] = 0x248A;\n t['threepersian'] = 0x06F3;\n t['threequarters'] = 0x00BE;\n t['threequartersemdash'] = 0xF6DE;\n t['threeroman'] = 0x2172;\n t['threesuperior'] = 0x00B3;\n t['threethai'] = 0x0E53;\n t['thzsquare'] = 0x3394;\n t['tihiragana'] = 0x3061;\n t['tikatakana'] = 0x30C1;\n t['tikatakanahalfwidth'] = 0xFF81;\n t['tikeutacirclekorean'] = 0x3270;\n t['tikeutaparenkorean'] = 0x3210;\n t['tikeutcirclekorean'] = 0x3262;\n t['tikeutkorean'] = 0x3137;\n t['tikeutparenkorean'] = 0x3202;\n t['tilde'] = 0x02DC;\n t['tildebelowcmb'] = 0x0330;\n t['tildecmb'] = 0x0303;\n t['tildecomb'] = 0x0303;\n t['tildedoublecmb'] = 0x0360;\n t['tildeoperator'] = 0x223C;\n t['tildeoverlaycmb'] = 0x0334;\n t['tildeverticalcmb'] = 0x033E;\n t['timescircle'] = 0x2297;\n t['tipehahebrew'] = 0x0596;\n t['tipehalefthebrew'] = 0x0596;\n t['tippigurmukhi'] = 0x0A70;\n t['titlocyrilliccmb'] = 0x0483;\n t['tiwnarmenian'] = 0x057F;\n t['tlinebelow'] = 0x1E6F;\n t['tmonospace'] = 0xFF54;\n t['toarmenian'] = 0x0569;\n t['tohiragana'] = 0x3068;\n t['tokatakana'] = 0x30C8;\n t['tokatakanahalfwidth'] = 0xFF84;\n t['tonebarextrahighmod'] = 0x02E5;\n t['tonebarextralowmod'] = 0x02E9;\n t['tonebarhighmod'] = 0x02E6;\n t['tonebarlowmod'] = 0x02E8;\n t['tonebarmidmod'] = 0x02E7;\n t['tonefive'] = 0x01BD;\n t['tonesix'] = 0x0185;\n t['tonetwo'] = 0x01A8;\n t['tonos'] = 0x0384;\n t['tonsquare'] = 0x3327;\n t['topatakthai'] = 0x0E0F;\n t['tortoiseshellbracketleft'] = 0x3014;\n t['tortoiseshellbracketleftsmall'] = 0xFE5D;\n t['tortoiseshellbracketleftvertical'] = 0xFE39;\n t['tortoiseshellbracketright'] = 0x3015;\n t['tortoiseshellbracketrightsmall'] = 0xFE5E;\n t['tortoiseshellbracketrightvertical'] = 0xFE3A;\n t['totaothai'] = 0x0E15;\n t['tpalatalhook'] = 0x01AB;\n t['tparen'] = 0x24AF;\n t['trademark'] = 0x2122;\n t['trademarksans'] = 0xF8EA;\n t['trademarkserif'] = 0xF6DB;\n t['tretroflexhook'] = 0x0288;\n t['triagdn'] = 0x25BC;\n t['triaglf'] = 0x25C4;\n t['triagrt'] = 0x25BA;\n t['triagup'] = 0x25B2;\n t['ts'] = 0x02A6;\n t['tsadi'] = 0x05E6;\n t['tsadidagesh'] = 0xFB46;\n t['tsadidageshhebrew'] = 0xFB46;\n t['tsadihebrew'] = 0x05E6;\n t['tsecyrillic'] = 0x0446;\n t['tsere'] = 0x05B5;\n t['tsere12'] = 0x05B5;\n t['tsere1e'] = 0x05B5;\n t['tsere2b'] = 0x05B5;\n t['tserehebrew'] = 0x05B5;\n t['tserenarrowhebrew'] = 0x05B5;\n t['tserequarterhebrew'] = 0x05B5;\n t['tserewidehebrew'] = 0x05B5;\n t['tshecyrillic'] = 0x045B;\n t['tsuperior'] = 0xF6F3;\n t['ttabengali'] = 0x099F;\n t['ttadeva'] = 0x091F;\n t['ttagujarati'] = 0x0A9F;\n t['ttagurmukhi'] = 0x0A1F;\n t['tteharabic'] = 0x0679;\n t['ttehfinalarabic'] = 0xFB67;\n t['ttehinitialarabic'] = 0xFB68;\n t['ttehmedialarabic'] = 0xFB69;\n t['tthabengali'] = 0x09A0;\n t['tthadeva'] = 0x0920;\n t['tthagujarati'] = 0x0AA0;\n t['tthagurmukhi'] = 0x0A20;\n t['tturned'] = 0x0287;\n t['tuhiragana'] = 0x3064;\n t['tukatakana'] = 0x30C4;\n t['tukatakanahalfwidth'] = 0xFF82;\n t['tusmallhiragana'] = 0x3063;\n t['tusmallkatakana'] = 0x30C3;\n t['tusmallkatakanahalfwidth'] = 0xFF6F;\n t['twelvecircle'] = 0x246B;\n t['twelveparen'] = 0x247F;\n t['twelveperiod'] = 0x2493;\n t['twelveroman'] = 0x217B;\n t['twentycircle'] = 0x2473;\n t['twentyhangzhou'] = 0x5344;\n t['twentyparen'] = 0x2487;\n t['twentyperiod'] = 0x249B;\n t['two'] = 0x0032;\n t['twoarabic'] = 0x0662;\n t['twobengali'] = 0x09E8;\n t['twocircle'] = 0x2461;\n t['twocircleinversesansserif'] = 0x278B;\n t['twodeva'] = 0x0968;\n t['twodotenleader'] = 0x2025;\n t['twodotleader'] = 0x2025;\n t['twodotleadervertical'] = 0xFE30;\n t['twogujarati'] = 0x0AE8;\n t['twogurmukhi'] = 0x0A68;\n t['twohackarabic'] = 0x0662;\n t['twohangzhou'] = 0x3022;\n t['twoideographicparen'] = 0x3221;\n t['twoinferior'] = 0x2082;\n t['twomonospace'] = 0xFF12;\n t['twonumeratorbengali'] = 0x09F5;\n t['twooldstyle'] = 0xF732;\n t['twoparen'] = 0x2475;\n t['twoperiod'] = 0x2489;\n t['twopersian'] = 0x06F2;\n t['tworoman'] = 0x2171;\n t['twostroke'] = 0x01BB;\n t['twosuperior'] = 0x00B2;\n t['twothai'] = 0x0E52;\n t['twothirds'] = 0x2154;\n t['u'] = 0x0075;\n t['uacute'] = 0x00FA;\n t['ubar'] = 0x0289;\n t['ubengali'] = 0x0989;\n t['ubopomofo'] = 0x3128;\n t['ubreve'] = 0x016D;\n t['ucaron'] = 0x01D4;\n t['ucircle'] = 0x24E4;\n t['ucircumflex'] = 0x00FB;\n t['ucircumflexbelow'] = 0x1E77;\n t['ucyrillic'] = 0x0443;\n t['udattadeva'] = 0x0951;\n t['udblacute'] = 0x0171;\n t['udblgrave'] = 0x0215;\n t['udeva'] = 0x0909;\n t['udieresis'] = 0x00FC;\n t['udieresisacute'] = 0x01D8;\n t['udieresisbelow'] = 0x1E73;\n t['udieresiscaron'] = 0x01DA;\n t['udieresiscyrillic'] = 0x04F1;\n t['udieresisgrave'] = 0x01DC;\n t['udieresismacron'] = 0x01D6;\n t['udotbelow'] = 0x1EE5;\n t['ugrave'] = 0x00F9;\n t['ugujarati'] = 0x0A89;\n t['ugurmukhi'] = 0x0A09;\n t['uhiragana'] = 0x3046;\n t['uhookabove'] = 0x1EE7;\n t['uhorn'] = 0x01B0;\n t['uhornacute'] = 0x1EE9;\n t['uhorndotbelow'] = 0x1EF1;\n t['uhorngrave'] = 0x1EEB;\n t['uhornhookabove'] = 0x1EED;\n t['uhorntilde'] = 0x1EEF;\n t['uhungarumlaut'] = 0x0171;\n t['uhungarumlautcyrillic'] = 0x04F3;\n t['uinvertedbreve'] = 0x0217;\n t['ukatakana'] = 0x30A6;\n t['ukatakanahalfwidth'] = 0xFF73;\n t['ukcyrillic'] = 0x0479;\n t['ukorean'] = 0x315C;\n t['umacron'] = 0x016B;\n t['umacroncyrillic'] = 0x04EF;\n t['umacrondieresis'] = 0x1E7B;\n t['umatragurmukhi'] = 0x0A41;\n t['umonospace'] = 0xFF55;\n t['underscore'] = 0x005F;\n t['underscoredbl'] = 0x2017;\n t['underscoremonospace'] = 0xFF3F;\n t['underscorevertical'] = 0xFE33;\n t['underscorewavy'] = 0xFE4F;\n t['union'] = 0x222A;\n t['universal'] = 0x2200;\n t['uogonek'] = 0x0173;\n t['uparen'] = 0x24B0;\n t['upblock'] = 0x2580;\n t['upperdothebrew'] = 0x05C4;\n t['upsilon'] = 0x03C5;\n t['upsilondieresis'] = 0x03CB;\n t['upsilondieresistonos'] = 0x03B0;\n t['upsilonlatin'] = 0x028A;\n t['upsilontonos'] = 0x03CD;\n t['uptackbelowcmb'] = 0x031D;\n t['uptackmod'] = 0x02D4;\n t['uragurmukhi'] = 0x0A73;\n t['uring'] = 0x016F;\n t['ushortcyrillic'] = 0x045E;\n t['usmallhiragana'] = 0x3045;\n t['usmallkatakana'] = 0x30A5;\n t['usmallkatakanahalfwidth'] = 0xFF69;\n t['ustraightcyrillic'] = 0x04AF;\n t['ustraightstrokecyrillic'] = 0x04B1;\n t['utilde'] = 0x0169;\n t['utildeacute'] = 0x1E79;\n t['utildebelow'] = 0x1E75;\n t['uubengali'] = 0x098A;\n t['uudeva'] = 0x090A;\n t['uugujarati'] = 0x0A8A;\n t['uugurmukhi'] = 0x0A0A;\n t['uumatragurmukhi'] = 0x0A42;\n t['uuvowelsignbengali'] = 0x09C2;\n t['uuvowelsigndeva'] = 0x0942;\n t['uuvowelsigngujarati'] = 0x0AC2;\n t['uvowelsignbengali'] = 0x09C1;\n t['uvowelsigndeva'] = 0x0941;\n t['uvowelsigngujarati'] = 0x0AC1;\n t['v'] = 0x0076;\n t['vadeva'] = 0x0935;\n t['vagujarati'] = 0x0AB5;\n t['vagurmukhi'] = 0x0A35;\n t['vakatakana'] = 0x30F7;\n t['vav'] = 0x05D5;\n t['vavdagesh'] = 0xFB35;\n t['vavdagesh65'] = 0xFB35;\n t['vavdageshhebrew'] = 0xFB35;\n t['vavhebrew'] = 0x05D5;\n t['vavholam'] = 0xFB4B;\n t['vavholamhebrew'] = 0xFB4B;\n t['vavvavhebrew'] = 0x05F0;\n t['vavyodhebrew'] = 0x05F1;\n t['vcircle'] = 0x24E5;\n t['vdotbelow'] = 0x1E7F;\n t['vecyrillic'] = 0x0432;\n t['veharabic'] = 0x06A4;\n t['vehfinalarabic'] = 0xFB6B;\n t['vehinitialarabic'] = 0xFB6C;\n t['vehmedialarabic'] = 0xFB6D;\n t['vekatakana'] = 0x30F9;\n t['venus'] = 0x2640;\n t['verticalbar'] = 0x007C;\n t['verticallineabovecmb'] = 0x030D;\n t['verticallinebelowcmb'] = 0x0329;\n t['verticallinelowmod'] = 0x02CC;\n t['verticallinemod'] = 0x02C8;\n t['vewarmenian'] = 0x057E;\n t['vhook'] = 0x028B;\n t['vikatakana'] = 0x30F8;\n t['viramabengali'] = 0x09CD;\n t['viramadeva'] = 0x094D;\n t['viramagujarati'] = 0x0ACD;\n t['visargabengali'] = 0x0983;\n t['visargadeva'] = 0x0903;\n t['visargagujarati'] = 0x0A83;\n t['vmonospace'] = 0xFF56;\n t['voarmenian'] = 0x0578;\n t['voicediterationhiragana'] = 0x309E;\n t['voicediterationkatakana'] = 0x30FE;\n t['voicedmarkkana'] = 0x309B;\n t['voicedmarkkanahalfwidth'] = 0xFF9E;\n t['vokatakana'] = 0x30FA;\n t['vparen'] = 0x24B1;\n t['vtilde'] = 0x1E7D;\n t['vturned'] = 0x028C;\n t['vuhiragana'] = 0x3094;\n t['vukatakana'] = 0x30F4;\n t['w'] = 0x0077;\n t['wacute'] = 0x1E83;\n t['waekorean'] = 0x3159;\n t['wahiragana'] = 0x308F;\n t['wakatakana'] = 0x30EF;\n t['wakatakanahalfwidth'] = 0xFF9C;\n t['wakorean'] = 0x3158;\n t['wasmallhiragana'] = 0x308E;\n t['wasmallkatakana'] = 0x30EE;\n t['wattosquare'] = 0x3357;\n t['wavedash'] = 0x301C;\n t['wavyunderscorevertical'] = 0xFE34;\n t['wawarabic'] = 0x0648;\n t['wawfinalarabic'] = 0xFEEE;\n t['wawhamzaabovearabic'] = 0x0624;\n t['wawhamzaabovefinalarabic'] = 0xFE86;\n t['wbsquare'] = 0x33DD;\n t['wcircle'] = 0x24E6;\n t['wcircumflex'] = 0x0175;\n t['wdieresis'] = 0x1E85;\n t['wdotaccent'] = 0x1E87;\n t['wdotbelow'] = 0x1E89;\n t['wehiragana'] = 0x3091;\n t['weierstrass'] = 0x2118;\n t['wekatakana'] = 0x30F1;\n t['wekorean'] = 0x315E;\n t['weokorean'] = 0x315D;\n t['wgrave'] = 0x1E81;\n t['whitebullet'] = 0x25E6;\n t['whitecircle'] = 0x25CB;\n t['whitecircleinverse'] = 0x25D9;\n t['whitecornerbracketleft'] = 0x300E;\n t['whitecornerbracketleftvertical'] = 0xFE43;\n t['whitecornerbracketright'] = 0x300F;\n t['whitecornerbracketrightvertical'] = 0xFE44;\n t['whitediamond'] = 0x25C7;\n t['whitediamondcontainingblacksmalldiamond'] = 0x25C8;\n t['whitedownpointingsmalltriangle'] = 0x25BF;\n t['whitedownpointingtriangle'] = 0x25BD;\n t['whiteleftpointingsmalltriangle'] = 0x25C3;\n t['whiteleftpointingtriangle'] = 0x25C1;\n t['whitelenticularbracketleft'] = 0x3016;\n t['whitelenticularbracketright'] = 0x3017;\n t['whiterightpointingsmalltriangle'] = 0x25B9;\n t['whiterightpointingtriangle'] = 0x25B7;\n t['whitesmallsquare'] = 0x25AB;\n t['whitesmilingface'] = 0x263A;\n t['whitesquare'] = 0x25A1;\n t['whitestar'] = 0x2606;\n t['whitetelephone'] = 0x260F;\n t['whitetortoiseshellbracketleft'] = 0x3018;\n t['whitetortoiseshellbracketright'] = 0x3019;\n t['whiteuppointingsmalltriangle'] = 0x25B5;\n t['whiteuppointingtriangle'] = 0x25B3;\n t['wihiragana'] = 0x3090;\n t['wikatakana'] = 0x30F0;\n t['wikorean'] = 0x315F;\n t['wmonospace'] = 0xFF57;\n t['wohiragana'] = 0x3092;\n t['wokatakana'] = 0x30F2;\n t['wokatakanahalfwidth'] = 0xFF66;\n t['won'] = 0x20A9;\n t['wonmonospace'] = 0xFFE6;\n t['wowaenthai'] = 0x0E27;\n t['wparen'] = 0x24B2;\n t['wring'] = 0x1E98;\n t['wsuperior'] = 0x02B7;\n t['wturned'] = 0x028D;\n t['wynn'] = 0x01BF;\n t['x'] = 0x0078;\n t['xabovecmb'] = 0x033D;\n t['xbopomofo'] = 0x3112;\n t['xcircle'] = 0x24E7;\n t['xdieresis'] = 0x1E8D;\n t['xdotaccent'] = 0x1E8B;\n t['xeharmenian'] = 0x056D;\n t['xi'] = 0x03BE;\n t['xmonospace'] = 0xFF58;\n t['xparen'] = 0x24B3;\n t['xsuperior'] = 0x02E3;\n t['y'] = 0x0079;\n t['yaadosquare'] = 0x334E;\n t['yabengali'] = 0x09AF;\n t['yacute'] = 0x00FD;\n t['yadeva'] = 0x092F;\n t['yaekorean'] = 0x3152;\n t['yagujarati'] = 0x0AAF;\n t['yagurmukhi'] = 0x0A2F;\n t['yahiragana'] = 0x3084;\n t['yakatakana'] = 0x30E4;\n t['yakatakanahalfwidth'] = 0xFF94;\n t['yakorean'] = 0x3151;\n t['yamakkanthai'] = 0x0E4E;\n t['yasmallhiragana'] = 0x3083;\n t['yasmallkatakana'] = 0x30E3;\n t['yasmallkatakanahalfwidth'] = 0xFF6C;\n t['yatcyrillic'] = 0x0463;\n t['ycircle'] = 0x24E8;\n t['ycircumflex'] = 0x0177;\n t['ydieresis'] = 0x00FF;\n t['ydotaccent'] = 0x1E8F;\n t['ydotbelow'] = 0x1EF5;\n t['yeharabic'] = 0x064A;\n t['yehbarreearabic'] = 0x06D2;\n t['yehbarreefinalarabic'] = 0xFBAF;\n t['yehfinalarabic'] = 0xFEF2;\n t['yehhamzaabovearabic'] = 0x0626;\n t['yehhamzaabovefinalarabic'] = 0xFE8A;\n t['yehhamzaaboveinitialarabic'] = 0xFE8B;\n t['yehhamzaabovemedialarabic'] = 0xFE8C;\n t['yehinitialarabic'] = 0xFEF3;\n t['yehmedialarabic'] = 0xFEF4;\n t['yehmeeminitialarabic'] = 0xFCDD;\n t['yehmeemisolatedarabic'] = 0xFC58;\n t['yehnoonfinalarabic'] = 0xFC94;\n t['yehthreedotsbelowarabic'] = 0x06D1;\n t['yekorean'] = 0x3156;\n t['yen'] = 0x00A5;\n t['yenmonospace'] = 0xFFE5;\n t['yeokorean'] = 0x3155;\n t['yeorinhieuhkorean'] = 0x3186;\n t['yerahbenyomohebrew'] = 0x05AA;\n t['yerahbenyomolefthebrew'] = 0x05AA;\n t['yericyrillic'] = 0x044B;\n t['yerudieresiscyrillic'] = 0x04F9;\n t['yesieungkorean'] = 0x3181;\n t['yesieungpansioskorean'] = 0x3183;\n t['yesieungsioskorean'] = 0x3182;\n t['yetivhebrew'] = 0x059A;\n t['ygrave'] = 0x1EF3;\n t['yhook'] = 0x01B4;\n t['yhookabove'] = 0x1EF7;\n t['yiarmenian'] = 0x0575;\n t['yicyrillic'] = 0x0457;\n t['yikorean'] = 0x3162;\n t['yinyang'] = 0x262F;\n t['yiwnarmenian'] = 0x0582;\n t['ymonospace'] = 0xFF59;\n t['yod'] = 0x05D9;\n t['yoddagesh'] = 0xFB39;\n t['yoddageshhebrew'] = 0xFB39;\n t['yodhebrew'] = 0x05D9;\n t['yodyodhebrew'] = 0x05F2;\n t['yodyodpatahhebrew'] = 0xFB1F;\n t['yohiragana'] = 0x3088;\n t['yoikorean'] = 0x3189;\n t['yokatakana'] = 0x30E8;\n t['yokatakanahalfwidth'] = 0xFF96;\n t['yokorean'] = 0x315B;\n t['yosmallhiragana'] = 0x3087;\n t['yosmallkatakana'] = 0x30E7;\n t['yosmallkatakanahalfwidth'] = 0xFF6E;\n t['yotgreek'] = 0x03F3;\n t['yoyaekorean'] = 0x3188;\n t['yoyakorean'] = 0x3187;\n t['yoyakthai'] = 0x0E22;\n t['yoyingthai'] = 0x0E0D;\n t['yparen'] = 0x24B4;\n t['ypogegrammeni'] = 0x037A;\n t['ypogegrammenigreekcmb'] = 0x0345;\n t['yr'] = 0x01A6;\n t['yring'] = 0x1E99;\n t['ysuperior'] = 0x02B8;\n t['ytilde'] = 0x1EF9;\n t['yturned'] = 0x028E;\n t['yuhiragana'] = 0x3086;\n t['yuikorean'] = 0x318C;\n t['yukatakana'] = 0x30E6;\n t['yukatakanahalfwidth'] = 0xFF95;\n t['yukorean'] = 0x3160;\n t['yusbigcyrillic'] = 0x046B;\n t['yusbigiotifiedcyrillic'] = 0x046D;\n t['yuslittlecyrillic'] = 0x0467;\n t['yuslittleiotifiedcyrillic'] = 0x0469;\n t['yusmallhiragana'] = 0x3085;\n t['yusmallkatakana'] = 0x30E5;\n t['yusmallkatakanahalfwidth'] = 0xFF6D;\n t['yuyekorean'] = 0x318B;\n t['yuyeokorean'] = 0x318A;\n t['yyabengali'] = 0x09DF;\n t['yyadeva'] = 0x095F;\n t['z'] = 0x007A;\n t['zaarmenian'] = 0x0566;\n t['zacute'] = 0x017A;\n t['zadeva'] = 0x095B;\n t['zagurmukhi'] = 0x0A5B;\n t['zaharabic'] = 0x0638;\n t['zahfinalarabic'] = 0xFEC6;\n t['zahinitialarabic'] = 0xFEC7;\n t['zahiragana'] = 0x3056;\n t['zahmedialarabic'] = 0xFEC8;\n t['zainarabic'] = 0x0632;\n t['zainfinalarabic'] = 0xFEB0;\n t['zakatakana'] = 0x30B6;\n t['zaqefgadolhebrew'] = 0x0595;\n t['zaqefqatanhebrew'] = 0x0594;\n t['zarqahebrew'] = 0x0598;\n t['zayin'] = 0x05D6;\n t['zayindagesh'] = 0xFB36;\n t['zayindageshhebrew'] = 0xFB36;\n t['zayinhebrew'] = 0x05D6;\n t['zbopomofo'] = 0x3117;\n t['zcaron'] = 0x017E;\n t['zcircle'] = 0x24E9;\n t['zcircumflex'] = 0x1E91;\n t['zcurl'] = 0x0291;\n t['zdot'] = 0x017C;\n t['zdotaccent'] = 0x017C;\n t['zdotbelow'] = 0x1E93;\n t['zecyrillic'] = 0x0437;\n t['zedescendercyrillic'] = 0x0499;\n t['zedieresiscyrillic'] = 0x04DF;\n t['zehiragana'] = 0x305C;\n t['zekatakana'] = 0x30BC;\n t['zero'] = 0x0030;\n t['zeroarabic'] = 0x0660;\n t['zerobengali'] = 0x09E6;\n t['zerodeva'] = 0x0966;\n t['zerogujarati'] = 0x0AE6;\n t['zerogurmukhi'] = 0x0A66;\n t['zerohackarabic'] = 0x0660;\n t['zeroinferior'] = 0x2080;\n t['zeromonospace'] = 0xFF10;\n t['zerooldstyle'] = 0xF730;\n t['zeropersian'] = 0x06F0;\n t['zerosuperior'] = 0x2070;\n t['zerothai'] = 0x0E50;\n t['zerowidthjoiner'] = 0xFEFF;\n t['zerowidthnonjoiner'] = 0x200C;\n t['zerowidthspace'] = 0x200B;\n t['zeta'] = 0x03B6;\n t['zhbopomofo'] = 0x3113;\n t['zhearmenian'] = 0x056A;\n t['zhebrevecyrillic'] = 0x04C2;\n t['zhecyrillic'] = 0x0436;\n t['zhedescendercyrillic'] = 0x0497;\n t['zhedieresiscyrillic'] = 0x04DD;\n t['zihiragana'] = 0x3058;\n t['zikatakana'] = 0x30B8;\n t['zinorhebrew'] = 0x05AE;\n t['zlinebelow'] = 0x1E95;\n t['zmonospace'] = 0xFF5A;\n t['zohiragana'] = 0x305E;\n t['zokatakana'] = 0x30BE;\n t['zparen'] = 0x24B5;\n t['zretroflexhook'] = 0x0290;\n t['zstroke'] = 0x01B6;\n t['zuhiragana'] = 0x305A;\n t['zukatakana'] = 0x30BA;\n t['.notdef'] = 0x0000;\n t['angbracketleftbig'] = 0x2329;\n t['angbracketleftBig'] = 0x2329;\n t['angbracketleftbigg'] = 0x2329;\n t['angbracketleftBigg'] = 0x2329;\n t['angbracketrightBig'] = 0x232A;\n t['angbracketrightbig'] = 0x232A;\n t['angbracketrightBigg'] = 0x232A;\n t['angbracketrightbigg'] = 0x232A;\n t['arrowhookleft'] = 0x21AA;\n t['arrowhookright'] = 0x21A9;\n t['arrowlefttophalf'] = 0x21BC;\n t['arrowleftbothalf'] = 0x21BD;\n t['arrownortheast'] = 0x2197;\n t['arrownorthwest'] = 0x2196;\n t['arrowrighttophalf'] = 0x21C0;\n t['arrowrightbothalf'] = 0x21C1;\n t['arrowsoutheast'] = 0x2198;\n t['arrowsouthwest'] = 0x2199;\n t['backslashbig'] = 0x2216;\n t['backslashBig'] = 0x2216;\n t['backslashBigg'] = 0x2216;\n t['backslashbigg'] = 0x2216;\n t['bardbl'] = 0x2016;\n t['bracehtipdownleft'] = 0xFE37;\n t['bracehtipdownright'] = 0xFE37;\n t['bracehtipupleft'] = 0xFE38;\n t['bracehtipupright'] = 0xFE38;\n t['braceleftBig'] = 0x007B;\n t['braceleftbig'] = 0x007B;\n t['braceleftbigg'] = 0x007B;\n t['braceleftBigg'] = 0x007B;\n t['bracerightBig'] = 0x007D;\n t['bracerightbig'] = 0x007D;\n t['bracerightbigg'] = 0x007D;\n t['bracerightBigg'] = 0x007D;\n t['bracketleftbig'] = 0x005B;\n t['bracketleftBig'] = 0x005B;\n t['bracketleftbigg'] = 0x005B;\n t['bracketleftBigg'] = 0x005B;\n t['bracketrightBig'] = 0x005D;\n t['bracketrightbig'] = 0x005D;\n t['bracketrightbigg'] = 0x005D;\n t['bracketrightBigg'] = 0x005D;\n t['ceilingleftbig'] = 0x2308;\n t['ceilingleftBig'] = 0x2308;\n t['ceilingleftBigg'] = 0x2308;\n t['ceilingleftbigg'] = 0x2308;\n t['ceilingrightbig'] = 0x2309;\n t['ceilingrightBig'] = 0x2309;\n t['ceilingrightbigg'] = 0x2309;\n t['ceilingrightBigg'] = 0x2309;\n t['circledotdisplay'] = 0x2299;\n t['circledottext'] = 0x2299;\n t['circlemultiplydisplay'] = 0x2297;\n t['circlemultiplytext'] = 0x2297;\n t['circleplusdisplay'] = 0x2295;\n t['circleplustext'] = 0x2295;\n t['contintegraldisplay'] = 0x222E;\n t['contintegraltext'] = 0x222E;\n t['coproductdisplay'] = 0x2210;\n t['coproducttext'] = 0x2210;\n t['floorleftBig'] = 0x230A;\n t['floorleftbig'] = 0x230A;\n t['floorleftbigg'] = 0x230A;\n t['floorleftBigg'] = 0x230A;\n t['floorrightbig'] = 0x230B;\n t['floorrightBig'] = 0x230B;\n t['floorrightBigg'] = 0x230B;\n t['floorrightbigg'] = 0x230B;\n t['hatwide'] = 0x0302;\n t['hatwider'] = 0x0302;\n t['hatwidest'] = 0x0302;\n t['intercal'] = 0x1D40;\n t['integraldisplay'] = 0x222B;\n t['integraltext'] = 0x222B;\n t['intersectiondisplay'] = 0x22C2;\n t['intersectiontext'] = 0x22C2;\n t['logicalanddisplay'] = 0x2227;\n t['logicalandtext'] = 0x2227;\n t['logicalordisplay'] = 0x2228;\n t['logicalortext'] = 0x2228;\n t['parenleftBig'] = 0x0028;\n t['parenleftbig'] = 0x0028;\n t['parenleftBigg'] = 0x0028;\n t['parenleftbigg'] = 0x0028;\n t['parenrightBig'] = 0x0029;\n t['parenrightbig'] = 0x0029;\n t['parenrightBigg'] = 0x0029;\n t['parenrightbigg'] = 0x0029;\n t['prime'] = 0x2032;\n t['productdisplay'] = 0x220F;\n t['producttext'] = 0x220F;\n t['radicalbig'] = 0x221A;\n t['radicalBig'] = 0x221A;\n t['radicalBigg'] = 0x221A;\n t['radicalbigg'] = 0x221A;\n t['radicalbt'] = 0x221A;\n t['radicaltp'] = 0x221A;\n t['radicalvertex'] = 0x221A;\n t['slashbig'] = 0x002F;\n t['slashBig'] = 0x002F;\n t['slashBigg'] = 0x002F;\n t['slashbigg'] = 0x002F;\n t['summationdisplay'] = 0x2211;\n t['summationtext'] = 0x2211;\n t['tildewide'] = 0x02DC;\n t['tildewider'] = 0x02DC;\n t['tildewidest'] = 0x02DC;\n t['uniondisplay'] = 0x22C3;\n t['unionmultidisplay'] = 0x228E;\n t['unionmultitext'] = 0x228E;\n t['unionsqdisplay'] = 0x2294;\n t['unionsqtext'] = 0x2294;\n t['uniontext'] = 0x22C3;\n t['vextenddouble'] = 0x2225;\n t['vextendsingle'] = 0x2223;\n});\nvar getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t['space'] = 0x0020;\n t['a1'] = 0x2701;\n t['a2'] = 0x2702;\n t['a202'] = 0x2703;\n t['a3'] = 0x2704;\n t['a4'] = 0x260E;\n t['a5'] = 0x2706;\n t['a119'] = 0x2707;\n t['a118'] = 0x2708;\n t['a117'] = 0x2709;\n t['a11'] = 0x261B;\n t['a12'] = 0x261E;\n t['a13'] = 0x270C;\n t['a14'] = 0x270D;\n t['a15'] = 0x270E;\n t['a16'] = 0x270F;\n t['a105'] = 0x2710;\n t['a17'] = 0x2711;\n t['a18'] = 0x2712;\n t['a19'] = 0x2713;\n t['a20'] = 0x2714;\n t['a21'] = 0x2715;\n t['a22'] = 0x2716;\n t['a23'] = 0x2717;\n t['a24'] = 0x2718;\n t['a25'] = 0x2719;\n t['a26'] = 0x271A;\n t['a27'] = 0x271B;\n t['a28'] = 0x271C;\n t['a6'] = 0x271D;\n t['a7'] = 0x271E;\n t['a8'] = 0x271F;\n t['a9'] = 0x2720;\n t['a10'] = 0x2721;\n t['a29'] = 0x2722;\n t['a30'] = 0x2723;\n t['a31'] = 0x2724;\n t['a32'] = 0x2725;\n t['a33'] = 0x2726;\n t['a34'] = 0x2727;\n t['a35'] = 0x2605;\n t['a36'] = 0x2729;\n t['a37'] = 0x272A;\n t['a38'] = 0x272B;\n t['a39'] = 0x272C;\n t['a40'] = 0x272D;\n t['a41'] = 0x272E;\n t['a42'] = 0x272F;\n t['a43'] = 0x2730;\n t['a44'] = 0x2731;\n t['a45'] = 0x2732;\n t['a46'] = 0x2733;\n t['a47'] = 0x2734;\n t['a48'] = 0x2735;\n t['a49'] = 0x2736;\n t['a50'] = 0x2737;\n t['a51'] = 0x2738;\n t['a52'] = 0x2739;\n t['a53'] = 0x273A;\n t['a54'] = 0x273B;\n t['a55'] = 0x273C;\n t['a56'] = 0x273D;\n t['a57'] = 0x273E;\n t['a58'] = 0x273F;\n t['a59'] = 0x2740;\n t['a60'] = 0x2741;\n t['a61'] = 0x2742;\n t['a62'] = 0x2743;\n t['a63'] = 0x2744;\n t['a64'] = 0x2745;\n t['a65'] = 0x2746;\n t['a66'] = 0x2747;\n t['a67'] = 0x2748;\n t['a68'] = 0x2749;\n t['a69'] = 0x274A;\n t['a70'] = 0x274B;\n t['a71'] = 0x25CF;\n t['a72'] = 0x274D;\n t['a73'] = 0x25A0;\n t['a74'] = 0x274F;\n t['a203'] = 0x2750;\n t['a75'] = 0x2751;\n t['a204'] = 0x2752;\n t['a76'] = 0x25B2;\n t['a77'] = 0x25BC;\n t['a78'] = 0x25C6;\n t['a79'] = 0x2756;\n t['a81'] = 0x25D7;\n t['a82'] = 0x2758;\n t['a83'] = 0x2759;\n t['a84'] = 0x275A;\n t['a97'] = 0x275B;\n t['a98'] = 0x275C;\n t['a99'] = 0x275D;\n t['a100'] = 0x275E;\n t['a101'] = 0x2761;\n t['a102'] = 0x2762;\n t['a103'] = 0x2763;\n t['a104'] = 0x2764;\n t['a106'] = 0x2765;\n t['a107'] = 0x2766;\n t['a108'] = 0x2767;\n t['a112'] = 0x2663;\n t['a111'] = 0x2666;\n t['a110'] = 0x2665;\n t['a109'] = 0x2660;\n t['a120'] = 0x2460;\n t['a121'] = 0x2461;\n t['a122'] = 0x2462;\n t['a123'] = 0x2463;\n t['a124'] = 0x2464;\n t['a125'] = 0x2465;\n t['a126'] = 0x2466;\n t['a127'] = 0x2467;\n t['a128'] = 0x2468;\n t['a129'] = 0x2469;\n t['a130'] = 0x2776;\n t['a131'] = 0x2777;\n t['a132'] = 0x2778;\n t['a133'] = 0x2779;\n t['a134'] = 0x277A;\n t['a135'] = 0x277B;\n t['a136'] = 0x277C;\n t['a137'] = 0x277D;\n t['a138'] = 0x277E;\n t['a139'] = 0x277F;\n t['a140'] = 0x2780;\n t['a141'] = 0x2781;\n t['a142'] = 0x2782;\n t['a143'] = 0x2783;\n t['a144'] = 0x2784;\n t['a145'] = 0x2785;\n t['a146'] = 0x2786;\n t['a147'] = 0x2787;\n t['a148'] = 0x2788;\n t['a149'] = 0x2789;\n t['a150'] = 0x278A;\n t['a151'] = 0x278B;\n t['a152'] = 0x278C;\n t['a153'] = 0x278D;\n t['a154'] = 0x278E;\n t['a155'] = 0x278F;\n t['a156'] = 0x2790;\n t['a157'] = 0x2791;\n t['a158'] = 0x2792;\n t['a159'] = 0x2793;\n t['a160'] = 0x2794;\n t['a161'] = 0x2192;\n t['a163'] = 0x2194;\n t['a164'] = 0x2195;\n t['a196'] = 0x2798;\n t['a165'] = 0x2799;\n t['a192'] = 0x279A;\n t['a166'] = 0x279B;\n t['a167'] = 0x279C;\n t['a168'] = 0x279D;\n t['a169'] = 0x279E;\n t['a170'] = 0x279F;\n t['a171'] = 0x27A0;\n t['a172'] = 0x27A1;\n t['a173'] = 0x27A2;\n t['a162'] = 0x27A3;\n t['a174'] = 0x27A4;\n t['a175'] = 0x27A5;\n t['a176'] = 0x27A6;\n t['a177'] = 0x27A7;\n t['a178'] = 0x27A8;\n t['a179'] = 0x27A9;\n t['a193'] = 0x27AA;\n t['a180'] = 0x27AB;\n t['a199'] = 0x27AC;\n t['a181'] = 0x27AD;\n t['a200'] = 0x27AE;\n t['a182'] = 0x27AF;\n t['a201'] = 0x27B1;\n t['a183'] = 0x27B2;\n t['a184'] = 0x27B3;\n t['a197'] = 0x27B4;\n t['a185'] = 0x27B5;\n t['a194'] = 0x27B6;\n t['a198'] = 0x27B7;\n t['a186'] = 0x27B8;\n t['a195'] = 0x27B9;\n t['a187'] = 0x27BA;\n t['a188'] = 0x27BB;\n t['a189'] = 0x27BC;\n t['a190'] = 0x27BD;\n t['a191'] = 0x27BE;\n t['a89'] = 0x2768;\n t['a90'] = 0x2769;\n t['a93'] = 0x276A;\n t['a94'] = 0x276B;\n t['a91'] = 0x276C;\n t['a92'] = 0x276D;\n t['a205'] = 0x276E;\n t['a85'] = 0x276F;\n t['a206'] = 0x2770;\n t['a86'] = 0x2771;\n t['a87'] = 0x2772;\n t['a88'] = 0x2773;\n t['a95'] = 0x2774;\n t['a96'] = 0x2775;\n t['.notdef'] = 0x0000;\n});\nexports.getGlyphsUnicode = getGlyphsUnicode;\nexports.getDingbatsGlyphsUnicode = getDingbatsGlyphsUnicode;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getSupplementalGlyphMapForCalibri = exports.getSupplementalGlyphMapForArialBlack = exports.getGlyphMapForStandardFonts = exports.getSymbolsFonts = exports.getSerifFonts = exports.getNonStdFontMap = exports.getStdFontMap = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar getStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n  t['ArialNarrow'] = 'Helvetica';\n  t['ArialNarrow-Bold'] = 'Helvetica-Bold';\n  t['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['ArialNarrow-Italic'] = 'Helvetica-Oblique';\n  t['ArialBlack'] = 'Helvetica';\n  t['ArialBlack-Bold'] = 'Helvetica-Bold';\n  t['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['ArialBlack-Italic'] = 'Helvetica-Oblique';\n  t['Arial-Black'] = 'Helvetica';\n  t['Arial-Black-Bold'] = 'Helvetica-Bold';\n  t['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Arial-Black-Italic'] = 'Helvetica-Oblique';\n  t['Arial'] = 'Helvetica';\n  t['Arial-Bold'] = 'Helvetica-Bold';\n  t['Arial-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Arial-Italic'] = 'Helvetica-Oblique';\n  t['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique';\n  t['Arial-BoldMT'] = 'Helvetica-Bold';\n  t['Arial-ItalicMT'] = 'Helvetica-Oblique';\n  t['ArialMT'] = 'Helvetica';\n  t['Courier-Bold'] = 'Courier-Bold';\n  t['Courier-BoldItalic'] = 'Courier-BoldOblique';\n  t['Courier-Italic'] = 'Courier-Oblique';\n  t['CourierNew'] = 'Courier';\n  t['CourierNew-Bold'] = 'Courier-Bold';\n  t['CourierNew-BoldItalic'] = 'Courier-BoldOblique';\n  t['CourierNew-Italic'] = 'Courier-Oblique';\n  t['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique';\n  t['CourierNewPS-BoldMT'] = 'Courier-Bold';\n  t['CourierNewPS-ItalicMT'] = 'Courier-Oblique';\n  t['CourierNewPSMT'] = 'Courier';\n  t['Helvetica'] = 'Helvetica';\n  t['Helvetica-Bold'] = 'Helvetica-Bold';\n  t['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique';\n  t['Helvetica-Italic'] = 'Helvetica-Oblique';\n  t['Helvetica-Oblique'] = 'Helvetica-Oblique';\n  t['SegoeUISymbol'] = 'Helvetica';\n  t['Symbol-Bold'] = 'Symbol';\n  t['Symbol-BoldItalic'] = 'Symbol';\n  t['Symbol-Italic'] = 'Symbol';\n  t['TimesNewRoman'] = 'Times-Roman';\n  t['TimesNewRoman-Bold'] = 'Times-Bold';\n  t['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRoman-Italic'] = 'Times-Italic';\n  t['TimesNewRomanPS'] = 'Times-Roman';\n  t['TimesNewRomanPS-Bold'] = 'Times-Bold';\n  t['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic';\n  t['TimesNewRomanPS-BoldMT'] = 'Times-Bold';\n  t['TimesNewRomanPS-Italic'] = 'Times-Italic';\n  t['TimesNewRomanPS-ItalicMT'] = 'Times-Italic';\n  t['TimesNewRomanPSMT'] = 'Times-Roman';\n  t['TimesNewRomanPSMT-Bold'] = 'Times-Bold';\n  t['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';\n  t['TimesNewRomanPSMT-Italic'] = 'Times-Italic';\n});\nexports.getStdFontMap = getStdFontMap;\nvar getNonStdFontMap = (0, _util.getLookupTableFactory)(function (t) {\n  t['Calibri'] = 'Helvetica';\n  t['Calibri-Bold'] = 'Helvetica-Bold';\n  t['Calibri-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['Calibri-Italic'] = 'Helvetica-Oblique';\n  t['CenturyGothic'] = 'Helvetica';\n  t['CenturyGothic-Bold'] = 'Helvetica-Bold';\n  t['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique';\n  t['CenturyGothic-Italic'] = 'Helvetica-Oblique';\n  t['ComicSansMS'] = 'Comic Sans MS';\n  t['ComicSansMS-Bold'] = 'Comic Sans MS-Bold';\n  t['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic';\n  t['ComicSansMS-Italic'] = 'Comic Sans MS-Italic';\n  t['LucidaConsole'] = 'Courier';\n  t['LucidaConsole-Bold'] = 'Courier-Bold';\n  t['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique';\n  t['LucidaConsole-Italic'] = 'Courier-Oblique';\n  t['LucidaSans-Demi'] = 'Helvetica-Bold';\n  t['MS-Gothic'] = 'MS Gothic';\n  t['MS-Gothic-Bold'] = 'MS Gothic-Bold';\n  t['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic';\n  t['MS-Gothic-Italic'] = 'MS Gothic-Italic';\n  t['MS-Mincho'] = 'MS Mincho';\n  t['MS-Mincho-Bold'] = 'MS Mincho-Bold';\n  t['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic';\n  t['MS-Mincho-Italic'] = 'MS Mincho-Italic';\n  t['MS-PGothic'] = 'MS PGothic';\n  t['MS-PGothic-Bold'] = 'MS PGothic-Bold';\n  t['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic';\n  t['MS-PGothic-Italic'] = 'MS PGothic-Italic';\n  t['MS-PMincho'] = 'MS PMincho';\n  t['MS-PMincho-Bold'] = 'MS PMincho-Bold';\n  t['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic';\n  t['MS-PMincho-Italic'] = 'MS PMincho-Italic';\n  t['NuptialScript'] = 'Times-Italic';\n  t['Wingdings'] = 'ZapfDingbats';\n});\nexports.getNonStdFontMap = getNonStdFontMap;\nvar getSerifFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t['Adobe Jenson'] = true;\n  t['Adobe Text'] = true;\n  t['Albertus'] = true;\n  t['Aldus'] = true;\n  t['Alexandria'] = true;\n  t['Algerian'] = true;\n  t['American Typewriter'] = true;\n  t['Antiqua'] = true;\n  t['Apex'] = true;\n  t['Arno'] = true;\n  t['Aster'] = true;\n  t['Aurora'] = true;\n  t['Baskerville'] = true;\n  t['Bell'] = true;\n  t['Bembo'] = true;\n  t['Bembo Schoolbook'] = true;\n  t['Benguiat'] = true;\n  t['Berkeley Old Style'] = true;\n  t['Bernhard Modern'] = true;\n  t['Berthold City'] = true;\n  t['Bodoni'] = true;\n  t['Bauer Bodoni'] = true;\n  t['Book Antiqua'] = true;\n  t['Bookman'] = true;\n  t['Bordeaux Roman'] = true;\n  t['Californian FB'] = true;\n  t['Calisto'] = true;\n  t['Calvert'] = true;\n  t['Capitals'] = true;\n  t['Cambria'] = true;\n  t['Cartier'] = true;\n  t['Caslon'] = true;\n  t['Catull'] = true;\n  t['Centaur'] = true;\n  t['Century Old Style'] = true;\n  t['Century Schoolbook'] = true;\n  t['Chaparral'] = true;\n  t['Charis SIL'] = true;\n  t['Cheltenham'] = true;\n  t['Cholla Slab'] = true;\n  t['Clarendon'] = true;\n  t['Clearface'] = true;\n  t['Cochin'] = true;\n  t['Colonna'] = true;\n  t['Computer Modern'] = true;\n  t['Concrete Roman'] = true;\n  t['Constantia'] = true;\n  t['Cooper Black'] = true;\n  t['Corona'] = true;\n  t['Ecotype'] = true;\n  t['Egyptienne'] = true;\n  t['Elephant'] = true;\n  t['Excelsior'] = true;\n  t['Fairfield'] = true;\n  t['FF Scala'] = true;\n  t['Folkard'] = true;\n  t['Footlight'] = true;\n  t['FreeSerif'] = true;\n  t['Friz Quadrata'] = true;\n  t['Garamond'] = true;\n  t['Gentium'] = true;\n  t['Georgia'] = true;\n  t['Gloucester'] = true;\n  t['Goudy Old Style'] = true;\n  t['Goudy Schoolbook'] = true;\n  t['Goudy Pro Font'] = true;\n  t['Granjon'] = true;\n  t['Guardian Egyptian'] = true;\n  t['Heather'] = true;\n  t['Hercules'] = true;\n  t['High Tower Text'] = true;\n  t['Hiroshige'] = true;\n  t['Hoefler Text'] = true;\n  t['Humana Serif'] = true;\n  t['Imprint'] = true;\n  t['Ionic No. 5'] = true;\n  t['Janson'] = true;\n  t['Joanna'] = true;\n  t['Korinna'] = true;\n  t['Lexicon'] = true;\n  t['Liberation Serif'] = true;\n  t['Linux Libertine'] = true;\n  t['Literaturnaya'] = true;\n  t['Lucida'] = true;\n  t['Lucida Bright'] = true;\n  t['Melior'] = true;\n  t['Memphis'] = true;\n  t['Miller'] = true;\n  t['Minion'] = true;\n  t['Modern'] = true;\n  t['Mona Lisa'] = true;\n  t['Mrs Eaves'] = true;\n  t['MS Serif'] = true;\n  t['Museo Slab'] = true;\n  t['New York'] = true;\n  t['Nimbus Roman'] = true;\n  t['NPS Rawlinson Roadway'] = true;\n  t['NuptialScript'] = true;\n  t['Palatino'] = true;\n  t['Perpetua'] = true;\n  t['Plantin'] = true;\n  t['Plantin Schoolbook'] = true;\n  t['Playbill'] = true;\n  t['Poor Richard'] = true;\n  t['Rawlinson Roadway'] = true;\n  t['Renault'] = true;\n  t['Requiem'] = true;\n  t['Rockwell'] = true;\n  t['Roman'] = true;\n  t['Rotis Serif'] = true;\n  t['Sabon'] = true;\n  t['Scala'] = true;\n  t['Seagull'] = true;\n  t['Sistina'] = true;\n  t['Souvenir'] = true;\n  t['STIX'] = true;\n  t['Stone Informal'] = true;\n  t['Stone Serif'] = true;\n  t['Sylfaen'] = true;\n  t['Times'] = true;\n  t['Trajan'] = true;\n  t['Trinité'] = true;\n  t['Trump Mediaeval'] = true;\n  t['Utopia'] = true;\n  t['Vale Type'] = true;\n  t['Bitstream Vera'] = true;\n  t['Vera Serif'] = true;\n  t['Versailles'] = true;\n  t['Wanted'] = true;\n  t['Weiss'] = true;\n  t['Wide Latin'] = true;\n  t['Windsor'] = true;\n  t['XITS'] = true;\n});\nexports.getSerifFonts = getSerifFonts;\nvar getSymbolsFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t['Dingbats'] = true;\n  t['Symbol'] = true;\n  t['ZapfDingbats'] = true;\n});\nexports.getSymbolsFonts = getSymbolsFonts;\nvar getGlyphMapForStandardFonts = (0, _util.getLookupTableFactory)(function (t) {\n  t[2] = 10;\n  t[3] = 32;\n  t[4] = 33;\n  t[5] = 34;\n  t[6] = 35;\n  t[7] = 36;\n  t[8] = 37;\n  t[9] = 38;\n  t[10] = 39;\n  t[11] = 40;\n  t[12] = 41;\n  t[13] = 42;\n  t[14] = 43;\n  t[15] = 44;\n  t[16] = 45;\n  t[17] = 46;\n  t[18] = 47;\n  t[19] = 48;\n  t[20] = 49;\n  t[21] = 50;\n  t[22] = 51;\n  t[23] = 52;\n  t[24] = 53;\n  t[25] = 54;\n  t[26] = 55;\n  t[27] = 56;\n  t[28] = 57;\n  t[29] = 58;\n  t[30] = 894;\n  t[31] = 60;\n  t[32] = 61;\n  t[33] = 62;\n  t[34] = 63;\n  t[35] = 64;\n  t[36] = 65;\n  t[37] = 66;\n  t[38] = 67;\n  t[39] = 68;\n  t[40] = 69;\n  t[41] = 70;\n  t[42] = 71;\n  t[43] = 72;\n  t[44] = 73;\n  t[45] = 74;\n  t[46] = 75;\n  t[47] = 76;\n  t[48] = 77;\n  t[49] = 78;\n  t[50] = 79;\n  t[51] = 80;\n  t[52] = 81;\n  t[53] = 82;\n  t[54] = 83;\n  t[55] = 84;\n  t[56] = 85;\n  t[57] = 86;\n  t[58] = 87;\n  t[59] = 88;\n  t[60] = 89;\n  t[61] = 90;\n  t[62] = 91;\n  t[63] = 92;\n  t[64] = 93;\n  t[65] = 94;\n  t[66] = 95;\n  t[67] = 96;\n  t[68] = 97;\n  t[69] = 98;\n  t[70] = 99;\n  t[71] = 100;\n  t[72] = 101;\n  t[73] = 102;\n  t[74] = 103;\n  t[75] = 104;\n  t[76] = 105;\n  t[77] = 106;\n  t[78] = 107;\n  t[79] = 108;\n  t[80] = 109;\n  t[81] = 110;\n  t[82] = 111;\n  t[83] = 112;\n  t[84] = 113;\n  t[85] = 114;\n  t[86] = 115;\n  t[87] = 116;\n  t[88] = 117;\n  t[89] = 118;\n  t[90] = 119;\n  t[91] = 120;\n  t[92] = 121;\n  t[93] = 122;\n  t[94] = 123;\n  t[95] = 124;\n  t[96] = 125;\n  t[97] = 126;\n  t[98] = 196;\n  t[99] = 197;\n  t[100] = 199;\n  t[101] = 201;\n  t[102] = 209;\n  t[103] = 214;\n  t[104] = 220;\n  t[105] = 225;\n  t[106] = 224;\n  t[107] = 226;\n  t[108] = 228;\n  t[109] = 227;\n  t[110] = 229;\n  t[111] = 231;\n  t[112] = 233;\n  t[113] = 232;\n  t[114] = 234;\n  t[115] = 235;\n  t[116] = 237;\n  t[117] = 236;\n  t[118] = 238;\n  t[119] = 239;\n  t[120] = 241;\n  t[121] = 243;\n  t[122] = 242;\n  t[123] = 244;\n  t[124] = 246;\n  t[125] = 245;\n  t[126] = 250;\n  t[127] = 249;\n  t[128] = 251;\n  t[129] = 252;\n  t[130] = 8224;\n  t[131] = 176;\n  t[132] = 162;\n  t[133] = 163;\n  t[134] = 167;\n  t[135] = 8226;\n  t[136] = 182;\n  t[137] = 223;\n  t[138] = 174;\n  t[139] = 169;\n  t[140] = 8482;\n  t[141] = 180;\n  t[142] = 168;\n  t[143] = 8800;\n  t[144] = 198;\n  t[145] = 216;\n  t[146] = 8734;\n  t[147] = 177;\n  t[148] = 8804;\n  t[149] = 8805;\n  t[150] = 165;\n  t[151] = 181;\n  t[152] = 8706;\n  t[153] = 8721;\n  t[154] = 8719;\n  t[156] = 8747;\n  t[157] = 170;\n  t[158] = 186;\n  t[159] = 8486;\n  t[160] = 230;\n  t[161] = 248;\n  t[162] = 191;\n  t[163] = 161;\n  t[164] = 172;\n  t[165] = 8730;\n  t[166] = 402;\n  t[167] = 8776;\n  t[168] = 8710;\n  t[169] = 171;\n  t[170] = 187;\n  t[171] = 8230;\n  t[210] = 218;\n  t[223] = 711;\n  t[224] = 321;\n  t[225] = 322;\n  t[227] = 353;\n  t[229] = 382;\n  t[234] = 253;\n  t[252] = 263;\n  t[253] = 268;\n  t[254] = 269;\n  t[258] = 258;\n  t[260] = 260;\n  t[261] = 261;\n  t[265] = 280;\n  t[266] = 281;\n  t[268] = 283;\n  t[269] = 313;\n  t[275] = 323;\n  t[276] = 324;\n  t[278] = 328;\n  t[284] = 345;\n  t[285] = 346;\n  t[286] = 347;\n  t[292] = 367;\n  t[295] = 377;\n  t[296] = 378;\n  t[298] = 380;\n  t[305] = 963;\n  t[306] = 964;\n  t[307] = 966;\n  t[308] = 8215;\n  t[309] = 8252;\n  t[310] = 8319;\n  t[311] = 8359;\n  t[312] = 8592;\n  t[313] = 8593;\n  t[337] = 9552;\n  t[493] = 1039;\n  t[494] = 1040;\n  t[705] = 1524;\n  t[706] = 8362;\n  t[710] = 64288;\n  t[711] = 64298;\n  t[759] = 1617;\n  t[761] = 1776;\n  t[763] = 1778;\n  t[775] = 1652;\n  t[777] = 1764;\n  t[778] = 1780;\n  t[779] = 1781;\n  t[780] = 1782;\n  t[782] = 771;\n  t[783] = 64726;\n  t[786] = 8363;\n  t[788] = 8532;\n  t[790] = 768;\n  t[791] = 769;\n  t[792] = 768;\n  t[795] = 803;\n  t[797] = 64336;\n  t[798] = 64337;\n  t[799] = 64342;\n  t[800] = 64343;\n  t[801] = 64344;\n  t[802] = 64345;\n  t[803] = 64362;\n  t[804] = 64363;\n  t[805] = 64364;\n  t[2424] = 7821;\n  t[2425] = 7822;\n  t[2426] = 7823;\n  t[2427] = 7824;\n  t[2428] = 7825;\n  t[2429] = 7826;\n  t[2430] = 7827;\n  t[2433] = 7682;\n  t[2678] = 8045;\n  t[2679] = 8046;\n  t[2830] = 1552;\n  t[2838] = 686;\n  t[2840] = 751;\n  t[2842] = 753;\n  t[2843] = 754;\n  t[2844] = 755;\n  t[2846] = 757;\n  t[2856] = 767;\n  t[2857] = 848;\n  t[2858] = 849;\n  t[2862] = 853;\n  t[2863] = 854;\n  t[2864] = 855;\n  t[2865] = 861;\n  t[2866] = 862;\n  t[2906] = 7460;\n  t[2908] = 7462;\n  t[2909] = 7463;\n  t[2910] = 7464;\n  t[2912] = 7466;\n  t[2913] = 7467;\n  t[2914] = 7468;\n  t[2916] = 7470;\n  t[2917] = 7471;\n  t[2918] = 7472;\n  t[2920] = 7474;\n  t[2921] = 7475;\n  t[2922] = 7476;\n  t[2924] = 7478;\n  t[2925] = 7479;\n  t[2926] = 7480;\n  t[2928] = 7482;\n  t[2929] = 7483;\n  t[2930] = 7484;\n  t[2932] = 7486;\n  t[2933] = 7487;\n  t[2934] = 7488;\n  t[2936] = 7490;\n  t[2937] = 7491;\n  t[2938] = 7492;\n  t[2940] = 7494;\n  t[2941] = 7495;\n  t[2942] = 7496;\n  t[2944] = 7498;\n  t[2946] = 7500;\n  t[2948] = 7502;\n  t[2950] = 7504;\n  t[2951] = 7505;\n  t[2952] = 7506;\n  t[2954] = 7508;\n  t[2955] = 7509;\n  t[2956] = 7510;\n  t[2958] = 7512;\n  t[2959] = 7513;\n  t[2960] = 7514;\n  t[2962] = 7516;\n  t[2963] = 7517;\n  t[2964] = 7518;\n  t[2966] = 7520;\n  t[2967] = 7521;\n  t[2968] = 7522;\n  t[2970] = 7524;\n  t[2971] = 7525;\n  t[2972] = 7526;\n  t[2974] = 7528;\n  t[2975] = 7529;\n  t[2976] = 7530;\n  t[2978] = 1537;\n  t[2979] = 1538;\n  t[2980] = 1539;\n  t[2982] = 1549;\n  t[2983] = 1551;\n  t[2984] = 1552;\n  t[2986] = 1554;\n  t[2987] = 1555;\n  t[2988] = 1556;\n  t[2990] = 1623;\n  t[2991] = 1624;\n  t[2995] = 1775;\n  t[2999] = 1791;\n  t[3002] = 64290;\n  t[3003] = 64291;\n  t[3004] = 64292;\n  t[3006] = 64294;\n  t[3007] = 64295;\n  t[3008] = 64296;\n  t[3011] = 1900;\n  t[3014] = 8223;\n  t[3015] = 8244;\n  t[3017] = 7532;\n  t[3018] = 7533;\n  t[3019] = 7534;\n  t[3075] = 7590;\n  t[3076] = 7591;\n  t[3079] = 7594;\n  t[3080] = 7595;\n  t[3083] = 7598;\n  t[3084] = 7599;\n  t[3087] = 7602;\n  t[3088] = 7603;\n  t[3091] = 7606;\n  t[3092] = 7607;\n  t[3095] = 7610;\n  t[3096] = 7611;\n  t[3099] = 7614;\n  t[3100] = 7615;\n  t[3103] = 7618;\n  t[3104] = 7619;\n  t[3107] = 8337;\n  t[3108] = 8338;\n  t[3116] = 1884;\n  t[3119] = 1885;\n  t[3120] = 1885;\n  t[3123] = 1886;\n  t[3124] = 1886;\n  t[3127] = 1887;\n  t[3128] = 1887;\n  t[3131] = 1888;\n  t[3132] = 1888;\n  t[3135] = 1889;\n  t[3136] = 1889;\n  t[3139] = 1890;\n  t[3140] = 1890;\n  t[3143] = 1891;\n  t[3144] = 1891;\n  t[3147] = 1892;\n  t[3148] = 1892;\n  t[3153] = 580;\n  t[3154] = 581;\n  t[3157] = 584;\n  t[3158] = 585;\n  t[3161] = 588;\n  t[3162] = 589;\n  t[3165] = 891;\n  t[3166] = 892;\n  t[3169] = 1274;\n  t[3170] = 1275;\n  t[3173] = 1278;\n  t[3174] = 1279;\n  t[3181] = 7622;\n  t[3182] = 7623;\n  t[3282] = 11799;\n  t[3316] = 578;\n  t[3379] = 42785;\n  t[3393] = 1159;\n  t[3416] = 8377;\n});\nexports.getGlyphMapForStandardFonts = getGlyphMapForStandardFonts;\nvar getSupplementalGlyphMapForArialBlack = (0, _util.getLookupTableFactory)(function (t) {\n  t[227] = 322;\n  t[264] = 261;\n  t[291] = 346;\n});\nexports.getSupplementalGlyphMapForArialBlack = getSupplementalGlyphMapForArialBlack;\nvar getSupplementalGlyphMapForCalibri = (0, _util.getLookupTableFactory)(function (t) {\n  t[1] = 32;\n  t[4] = 65;\n  t[17] = 66;\n  t[18] = 67;\n  t[24] = 68;\n  t[28] = 69;\n  t[38] = 70;\n  t[39] = 71;\n  t[44] = 72;\n  t[47] = 73;\n  t[58] = 74;\n  t[60] = 75;\n  t[62] = 76;\n  t[68] = 77;\n  t[69] = 78;\n  t[75] = 79;\n  t[87] = 80;\n  t[89] = 81;\n  t[90] = 82;\n  t[94] = 83;\n  t[100] = 84;\n  t[104] = 85;\n  t[115] = 86;\n  t[116] = 87;\n  t[121] = 88;\n  t[122] = 89;\n  t[127] = 90;\n  t[258] = 97;\n  t[268] = 261;\n  t[271] = 98;\n  t[272] = 99;\n  t[273] = 263;\n  t[282] = 100;\n  t[286] = 101;\n  t[295] = 281;\n  t[296] = 102;\n  t[336] = 103;\n  t[346] = 104;\n  t[349] = 105;\n  t[361] = 106;\n  t[364] = 107;\n  t[367] = 108;\n  t[371] = 322;\n  t[373] = 109;\n  t[374] = 110;\n  t[381] = 111;\n  t[383] = 243;\n  t[393] = 112;\n  t[395] = 113;\n  t[396] = 114;\n  t[400] = 115;\n  t[401] = 347;\n  t[410] = 116;\n  t[437] = 117;\n  t[448] = 118;\n  t[449] = 119;\n  t[454] = 120;\n  t[455] = 121;\n  t[460] = 122;\n  t[463] = 380;\n  t[853] = 44;\n  t[855] = 58;\n  t[856] = 46;\n  t[876] = 47;\n  t[878] = 45;\n  t[882] = 45;\n  t[894] = 40;\n  t[895] = 41;\n  t[896] = 91;\n  t[897] = 93;\n  t[923] = 64;\n  t[1004] = 48;\n  t[1005] = 49;\n  t[1006] = 50;\n  t[1007] = 51;\n  t[1008] = 52;\n  t[1009] = 53;\n  t[1010] = 54;\n  t[1011] = 55;\n  t[1012] = 56;\n  t[1013] = 57;\n  t[1081] = 37;\n  t[1085] = 43;\n  t[1086] = 45;\n});\nexports.getSupplementalGlyphMapForCalibri = getSupplementalGlyphMapForCalibri;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nvar getLookupTableFactory = __w_pdfjs_require__(6).getLookupTableFactory;\nvar getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00A9;\n t[63193] = 0x00A9;\n t[63720] = 0x00AE;\n t[63194] = 0x00AE;\n t[63722] = 0x2122;\n t[63195] = 0x2122;\n t[63729] = 0x23A7;\n t[63730] = 0x23A8;\n t[63731] = 0x23A9;\n t[63740] = 0x23AB;\n t[63741] = 0x23AC;\n t[63742] = 0x23AD;\n t[63726] = 0x23A1;\n t[63727] = 0x23A2;\n t[63728] = 0x23A3;\n t[63737] = 0x23A4;\n t[63738] = 0x23A5;\n t[63739] = 0x23A6;\n t[63723] = 0x239B;\n t[63724] = 0x239C;\n t[63725] = 0x239D;\n t[63734] = 0x239E;\n t[63735] = 0x239F;\n t[63736] = 0x23A0;\n});\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xFFF0 && code <= 0xFFFF) {\n  return 0;\n } else if (code >= 0xF600 && code <= 0xF8FF) {\n  return getSpecialPUASymbols()[code] || code;\n } else if (code === 0x00AD) {\n  return 0x002D;\n }\n return code;\n}\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n var unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n  return unicode;\n }\n if (!name) {\n  return -1;\n }\n if (name[0] === 'u') {\n  var nameLen = name.length, hexStr;\n  if (nameLen === 7 && name[1] === 'n' && name[2] === 'i') {\n   hexStr = name.substring(3);\n  } else if (nameLen >= 5 && nameLen <= 7) {\n   hexStr = name.substring(1);\n  } else {\n   return -1;\n  }\n  if (hexStr === hexStr.toUpperCase()) {\n   unicode = parseInt(hexStr, 16);\n   if (unicode >= 0) {\n    return unicode;\n   }\n  }\n }\n return -1;\n}\nvar UnicodeRanges = [\n {\n  'begin': 0x0000,\n  'end': 0x007F\n },\n {\n  'begin': 0x0080,\n  'end': 0x00FF\n },\n {\n  'begin': 0x0100,\n  'end': 0x017F\n },\n {\n  'begin': 0x0180,\n  'end': 0x024F\n },\n {\n  'begin': 0x0250,\n  'end': 0x02AF\n },\n {\n  'begin': 0x02B0,\n  'end': 0x02FF\n },\n {\n  'begin': 0x0300,\n  'end': 0x036F\n },\n {\n  'begin': 0x0370,\n  'end': 0x03FF\n },\n {\n  'begin': 0x2C80,\n  'end': 0x2CFF\n },\n {\n  'begin': 0x0400,\n  'end': 0x04FF\n },\n {\n  'begin': 0x0530,\n  'end': 0x058F\n },\n {\n  'begin': 0x0590,\n  'end': 0x05FF\n },\n {\n  'begin': 0xA500,\n  'end': 0xA63F\n },\n {\n  'begin': 0x0600,\n  'end': 0x06FF\n },\n {\n  'begin': 0x07C0,\n  'end': 0x07FF\n },\n {\n  'begin': 0x0900,\n  'end': 0x097F\n },\n {\n  'begin': 0x0980,\n  'end': 0x09FF\n },\n {\n  'begin': 0x0A00,\n  'end': 0x0A7F\n },\n {\n  'begin': 0x0A80,\n  'end': 0x0AFF\n },\n {\n  'begin': 0x0B00,\n  'end': 0x0B7F\n },\n {\n  'begin': 0x0B80,\n  'end': 0x0BFF\n },\n {\n  'begin': 0x0C00,\n  'end': 0x0C7F\n },\n {\n  'begin': 0x0C80,\n  'end': 0x0CFF\n },\n {\n  'begin': 0x0D00,\n  'end': 0x0D7F\n },\n {\n  'begin': 0x0E00,\n  'end': 0x0E7F\n },\n {\n  'begin': 0x0E80,\n  'end': 0x0EFF\n },\n {\n  'begin': 0x10A0,\n  'end': 0x10FF\n },\n {\n  'begin': 0x1B00,\n  'end': 0x1B7F\n },\n {\n  'begin': 0x1100,\n  'end': 0x11FF\n },\n {\n  'begin': 0x1E00,\n  'end': 0x1EFF\n },\n {\n  'begin': 0x1F00,\n  'end': 0x1FFF\n },\n {\n  'begin': 0x2000,\n  'end': 0x206F\n },\n {\n  'begin': 0x2070,\n  'end': 0x209F\n },\n {\n  'begin': 0x20A0,\n  'end': 0x20CF\n },\n {\n  'begin': 0x20D0,\n  'end': 0x20FF\n },\n {\n  'begin': 0x2100,\n  'end': 0x214F\n },\n {\n  'begin': 0x2150,\n  'end': 0x218F\n },\n {\n  'begin': 0x2190,\n  'end': 0x21FF\n },\n {\n  'begin': 0x2200,\n  'end': 0x22FF\n },\n {\n  'begin': 0x2300,\n  'end': 0x23FF\n },\n {\n  'begin': 0x2400,\n  'end': 0x243F\n },\n {\n  'begin': 0x2440,\n  'end': 0x245F\n },\n {\n  'begin': 0x2460,\n  'end': 0x24FF\n },\n {\n  'begin': 0x2500,\n  'end': 0x257F\n },\n {\n  'begin': 0x2580,\n  'end': 0x259F\n },\n {\n  'begin': 0x25A0,\n  'end': 0x25FF\n },\n {\n  'begin': 0x2600,\n  'end': 0x26FF\n },\n {\n  'begin': 0x2700,\n  'end': 0x27BF\n },\n {\n  'begin': 0x3000,\n  'end': 0x303F\n },\n {\n  'begin': 0x3040,\n  'end': 0x309F\n },\n {\n  'begin': 0x30A0,\n  'end': 0x30FF\n },\n {\n  'begin': 0x3100,\n  'end': 0x312F\n },\n {\n  'begin': 0x3130,\n  'end': 0x318F\n },\n {\n  'begin': 0xA840,\n  'end': 0xA87F\n },\n {\n  'begin': 0x3200,\n  'end': 0x32FF\n },\n {\n  'begin': 0x3300,\n  'end': 0x33FF\n },\n {\n  'begin': 0xAC00,\n  'end': 0xD7AF\n },\n {\n  'begin': 0xD800,\n  'end': 0xDFFF\n },\n {\n  'begin': 0x10900,\n  'end': 0x1091F\n },\n {\n  'begin': 0x4E00,\n  'end': 0x9FFF\n },\n {\n  'begin': 0xE000,\n  'end': 0xF8FF\n },\n {\n  'begin': 0x31C0,\n  'end': 0x31EF\n },\n {\n  'begin': 0xFB00,\n  'end': 0xFB4F\n },\n {\n  'begin': 0xFB50,\n  'end': 0xFDFF\n },\n {\n  'begin': 0xFE20,\n  'end': 0xFE2F\n },\n {\n  'begin': 0xFE10,\n  'end': 0xFE1F\n },\n {\n  'begin': 0xFE50,\n  'end': 0xFE6F\n },\n {\n  'begin': 0xFE70,\n  'end': 0xFEFF\n },\n {\n  'begin': 0xFF00,\n  'end': 0xFFEF\n },\n {\n  'begin': 0xFFF0,\n  'end': 0xFFFF\n },\n {\n  'begin': 0x0F00,\n  'end': 0x0FFF\n },\n {\n  'begin': 0x0700,\n  'end': 0x074F\n },\n {\n  'begin': 0x0780,\n  'end': 0x07BF\n },\n {\n  'begin': 0x0D80,\n  'end': 0x0DFF\n },\n {\n  'begin': 0x1000,\n  'end': 0x109F\n },\n {\n  'begin': 0x1200,\n  'end': 0x137F\n },\n {\n  'begin': 0x13A0,\n  'end': 0x13FF\n },\n {\n  'begin': 0x1400,\n  'end': 0x167F\n },\n {\n  'begin': 0x1680,\n  'end': 0x169F\n },\n {\n  'begin': 0x16A0,\n  'end': 0x16FF\n },\n {\n  'begin': 0x1780,\n  'end': 0x17FF\n },\n {\n  'begin': 0x1800,\n  'end': 0x18AF\n },\n {\n  'begin': 0x2800,\n  'end': 0x28FF\n },\n {\n  'begin': 0xA000,\n  'end': 0xA48F\n },\n {\n  'begin': 0x1700,\n  'end': 0x171F\n },\n {\n  'begin': 0x10300,\n  'end': 0x1032F\n },\n {\n  'begin': 0x10330,\n  'end': 0x1034F\n },\n {\n  'begin': 0x10400,\n  'end': 0x1044F\n },\n {\n  'begin': 0x1D000,\n  'end': 0x1D0FF\n },\n {\n  'begin': 0x1D400,\n  'end': 0x1D7FF\n },\n {\n  'begin': 0xFF000,\n  'end': 0xFFFFD\n },\n {\n  'begin': 0xFE00,\n  'end': 0xFE0F\n },\n {\n  'begin': 0xE0000,\n  'end': 0xE007F\n },\n {\n  'begin': 0x1900,\n  'end': 0x194F\n },\n {\n  'begin': 0x1950,\n  'end': 0x197F\n },\n {\n  'begin': 0x1980,\n  'end': 0x19DF\n },\n {\n  'begin': 0x1A00,\n  'end': 0x1A1F\n },\n {\n  'begin': 0x2C00,\n  'end': 0x2C5F\n },\n {\n  'begin': 0x2D30,\n  'end': 0x2D7F\n },\n {\n  'begin': 0x4DC0,\n  'end': 0x4DFF\n },\n {\n  'begin': 0xA800,\n  'end': 0xA82F\n },\n {\n  'begin': 0x10000,\n  'end': 0x1007F\n },\n {\n  'begin': 0x10140,\n  'end': 0x1018F\n },\n {\n  'begin': 0x10380,\n  'end': 0x1039F\n },\n {\n  'begin': 0x103A0,\n  'end': 0x103DF\n },\n {\n  'begin': 0x10450,\n  'end': 0x1047F\n },\n {\n  'begin': 0x10480,\n  'end': 0x104AF\n },\n {\n  'begin': 0x10800,\n  'end': 0x1083F\n },\n {\n  'begin': 0x10A00,\n  'end': 0x10A5F\n },\n {\n  'begin': 0x1D300,\n  'end': 0x1D35F\n },\n {\n  'begin': 0x12000,\n  'end': 0x123FF\n },\n {\n  'begin': 0x1D360,\n  'end': 0x1D37F\n },\n {\n  'begin': 0x1B80,\n  'end': 0x1BBF\n },\n {\n  'begin': 0x1C00,\n  'end': 0x1C4F\n },\n {\n  'begin': 0x1C50,\n  'end': 0x1C7F\n },\n {\n  'begin': 0xA880,\n  'end': 0xA8DF\n },\n {\n  'begin': 0xA900,\n  'end': 0xA92F\n },\n {\n  'begin': 0xA930,\n  'end': 0xA95F\n },\n {\n  'begin': 0xAA00,\n  'end': 0xAA5F\n },\n {\n  'begin': 0x10190,\n  'end': 0x101CF\n },\n {\n  'begin': 0x101D0,\n  'end': 0x101FF\n },\n {\n  'begin': 0x102A0,\n  'end': 0x102DF\n },\n {\n  'begin': 0x1F030,\n  'end': 0x1F09F\n }\n];\nfunction getUnicodeRangeFor(value) {\n for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n  var range = UnicodeRanges[i];\n  if (value >= range.begin && value < range.end) {\n   return i;\n  }\n }\n return -1;\n}\nfunction isRTLRangeFor(value) {\n var range = UnicodeRanges[13];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n range = UnicodeRanges[11];\n if (value >= range.begin && value < range.end) {\n  return true;\n }\n return false;\n}\nvar getNormalizedUnicodes = getLookupTableFactory(function (t) {\n t['\\u00A8'] = '\\u0020\\u0308';\n t['\\u00AF'] = '\\u0020\\u0304';\n t['\\u00B4'] = '\\u0020\\u0301';\n t['\\u00B5'] = '\\u03BC';\n t['\\u00B8'] = '\\u0020\\u0327';\n t['\\u0132'] = '\\u0049\\u004A';\n t['\\u0133'] = '\\u0069\\u006A';\n t['\\u013F'] = '\\u004C\\u00B7';\n t['\\u0140'] = '\\u006C\\u00B7';\n t['\\u0149'] = '\\u02BC\\u006E';\n t['\\u017F'] = '\\u0073';\n t['\\u01C4'] = '\\u0044\\u017D';\n t['\\u01C5'] = '\\u0044\\u017E';\n t['\\u01C6'] = '\\u0064\\u017E';\n t['\\u01C7'] = '\\u004C\\u004A';\n t['\\u01C8'] = '\\u004C\\u006A';\n t['\\u01C9'] = '\\u006C\\u006A';\n t['\\u01CA'] = '\\u004E\\u004A';\n t['\\u01CB'] = '\\u004E\\u006A';\n t['\\u01CC'] = '\\u006E\\u006A';\n t['\\u01F1'] = '\\u0044\\u005A';\n t['\\u01F2'] = '\\u0044\\u007A';\n t['\\u01F3'] = '\\u0064\\u007A';\n t['\\u02D8'] = '\\u0020\\u0306';\n t['\\u02D9'] = '\\u0020\\u0307';\n t['\\u02DA'] = '\\u0020\\u030A';\n t['\\u02DB'] = '\\u0020\\u0328';\n t['\\u02DC'] = '\\u0020\\u0303';\n t['\\u02DD'] = '\\u0020\\u030B';\n t['\\u037A'] = '\\u0020\\u0345';\n t['\\u0384'] = '\\u0020\\u0301';\n t['\\u03D0'] = '\\u03B2';\n t['\\u03D1'] = '\\u03B8';\n t['\\u03D2'] = '\\u03A5';\n t['\\u03D5'] = '\\u03C6';\n t['\\u03D6'] = '\\u03C0';\n t['\\u03F0'] = '\\u03BA';\n t['\\u03F1'] = '\\u03C1';\n t['\\u03F2'] = '\\u03C2';\n t['\\u03F4'] = '\\u0398';\n t['\\u03F5'] = '\\u03B5';\n t['\\u03F9'] = '\\u03A3';\n t['\\u0587'] = '\\u0565\\u0582';\n t['\\u0675'] = '\\u0627\\u0674';\n t['\\u0676'] = '\\u0648\\u0674';\n t['\\u0677'] = '\\u06C7\\u0674';\n t['\\u0678'] = '\\u064A\\u0674';\n t['\\u0E33'] = '\\u0E4D\\u0E32';\n t['\\u0EB3'] = '\\u0ECD\\u0EB2';\n t['\\u0EDC'] = '\\u0EAB\\u0E99';\n t['\\u0EDD'] = '\\u0EAB\\u0EA1';\n t['\\u0F77'] = '\\u0FB2\\u0F81';\n t['\\u0F79'] = '\\u0FB3\\u0F81';\n t['\\u1E9A'] = '\\u0061\\u02BE';\n t['\\u1FBD'] = '\\u0020\\u0313';\n t['\\u1FBF'] = '\\u0020\\u0313';\n t['\\u1FC0'] = '\\u0020\\u0342';\n t['\\u1FFE'] = '\\u0020\\u0314';\n t['\\u2002'] = '\\u0020';\n t['\\u2003'] = '\\u0020';\n t['\\u2004'] = '\\u0020';\n t['\\u2005'] = '\\u0020';\n t['\\u2006'] = '\\u0020';\n t['\\u2008'] = '\\u0020';\n t['\\u2009'] = '\\u0020';\n t['\\u200A'] = '\\u0020';\n t['\\u2017'] = '\\u0020\\u0333';\n t['\\u2024'] = '\\u002E';\n t['\\u2025'] = '\\u002E\\u002E';\n t['\\u2026'] = '\\u002E\\u002E\\u002E';\n t['\\u2033'] = '\\u2032\\u2032';\n t['\\u2034'] = '\\u2032\\u2032\\u2032';\n t['\\u2036'] = '\\u2035\\u2035';\n t['\\u2037'] = '\\u2035\\u2035\\u2035';\n t['\\u203C'] = '\\u0021\\u0021';\n t['\\u203E'] = '\\u0020\\u0305';\n t['\\u2047'] = '\\u003F\\u003F';\n t['\\u2048'] = '\\u003F\\u0021';\n t['\\u2049'] = '\\u0021\\u003F';\n t['\\u2057'] = '\\u2032\\u2032\\u2032\\u2032';\n t['\\u205F'] = '\\u0020';\n t['\\u20A8'] = '\\u0052\\u0073';\n t['\\u2100'] = '\\u0061\\u002F\\u0063';\n t['\\u2101'] = '\\u0061\\u002F\\u0073';\n t['\\u2103'] = '\\u00B0\\u0043';\n t['\\u2105'] = '\\u0063\\u002F\\u006F';\n t['\\u2106'] = '\\u0063\\u002F\\u0075';\n t['\\u2107'] = '\\u0190';\n t['\\u2109'] = '\\u00B0\\u0046';\n t['\\u2116'] = '\\u004E\\u006F';\n t['\\u2121'] = '\\u0054\\u0045\\u004C';\n t['\\u2135'] = '\\u05D0';\n t['\\u2136'] = '\\u05D1';\n t['\\u2137'] = '\\u05D2';\n t['\\u2138'] = '\\u05D3';\n t['\\u213B'] = '\\u0046\\u0041\\u0058';\n t['\\u2160'] = '\\u0049';\n t['\\u2161'] = '\\u0049\\u0049';\n t['\\u2162'] = '\\u0049\\u0049\\u0049';\n t['\\u2163'] = '\\u0049\\u0056';\n t['\\u2164'] = '\\u0056';\n t['\\u2165'] = '\\u0056\\u0049';\n t['\\u2166'] = '\\u0056\\u0049\\u0049';\n t['\\u2167'] = '\\u0056\\u0049\\u0049\\u0049';\n t['\\u2168'] = '\\u0049\\u0058';\n t['\\u2169'] = '\\u0058';\n t['\\u216A'] = '\\u0058\\u0049';\n t['\\u216B'] = '\\u0058\\u0049\\u0049';\n t['\\u216C'] = '\\u004C';\n t['\\u216D'] = '\\u0043';\n t['\\u216E'] = '\\u0044';\n t['\\u216F'] = '\\u004D';\n t['\\u2170'] = '\\u0069';\n t['\\u2171'] = '\\u0069\\u0069';\n t['\\u2172'] = '\\u0069\\u0069\\u0069';\n t['\\u2173'] = '\\u0069\\u0076';\n t['\\u2174'] = '\\u0076';\n t['\\u2175'] = '\\u0076\\u0069';\n t['\\u2176'] = '\\u0076\\u0069\\u0069';\n t['\\u2177'] = '\\u0076\\u0069\\u0069\\u0069';\n t['\\u2178'] = '\\u0069\\u0078';\n t['\\u2179'] = '\\u0078';\n t['\\u217A'] = '\\u0078\\u0069';\n t['\\u217B'] = '\\u0078\\u0069\\u0069';\n t['\\u217C'] = '\\u006C';\n t['\\u217D'] = '\\u0063';\n t['\\u217E'] = '\\u0064';\n t['\\u217F'] = '\\u006D';\n t['\\u222C'] = '\\u222B\\u222B';\n t['\\u222D'] = '\\u222B\\u222B\\u222B';\n t['\\u222F'] = '\\u222E\\u222E';\n t['\\u2230'] = '\\u222E\\u222E\\u222E';\n t['\\u2474'] = '\\u0028\\u0031\\u0029';\n t['\\u2475'] = '\\u0028\\u0032\\u0029';\n t['\\u2476'] = '\\u0028\\u0033\\u0029';\n t['\\u2477'] = '\\u0028\\u0034\\u0029';\n t['\\u2478'] = '\\u0028\\u0035\\u0029';\n t['\\u2479'] = '\\u0028\\u0036\\u0029';\n t['\\u247A'] = '\\u0028\\u0037\\u0029';\n t['\\u247B'] = '\\u0028\\u0038\\u0029';\n t['\\u247C'] = '\\u0028\\u0039\\u0029';\n t['\\u247D'] = '\\u0028\\u0031\\u0030\\u0029';\n t['\\u247E'] = '\\u0028\\u0031\\u0031\\u0029';\n t['\\u247F'] = '\\u0028\\u0031\\u0032\\u0029';\n t['\\u2480'] = '\\u0028\\u0031\\u0033\\u0029';\n t['\\u2481'] = '\\u0028\\u0031\\u0034\\u0029';\n t['\\u2482'] = '\\u0028\\u0031\\u0035\\u0029';\n t['\\u2483'] = '\\u0028\\u0031\\u0036\\u0029';\n t['\\u2484'] = '\\u0028\\u0031\\u0037\\u0029';\n t['\\u2485'] = '\\u0028\\u0031\\u0038\\u0029';\n t['\\u2486'] = '\\u0028\\u0031\\u0039\\u0029';\n t['\\u2487'] = '\\u0028\\u0032\\u0030\\u0029';\n t['\\u2488'] = '\\u0031\\u002E';\n t['\\u2489'] = '\\u0032\\u002E';\n t['\\u248A'] = '\\u0033\\u002E';\n t['\\u248B'] = '\\u0034\\u002E';\n t['\\u248C'] = '\\u0035\\u002E';\n t['\\u248D'] = '\\u0036\\u002E';\n t['\\u248E'] = '\\u0037\\u002E';\n t['\\u248F'] = '\\u0038\\u002E';\n t['\\u2490'] = '\\u0039\\u002E';\n t['\\u2491'] = '\\u0031\\u0030\\u002E';\n t['\\u2492'] = '\\u0031\\u0031\\u002E';\n t['\\u2493'] = '\\u0031\\u0032\\u002E';\n t['\\u2494'] = '\\u0031\\u0033\\u002E';\n t['\\u2495'] = '\\u0031\\u0034\\u002E';\n t['\\u2496'] = '\\u0031\\u0035\\u002E';\n t['\\u2497'] = '\\u0031\\u0036\\u002E';\n t['\\u2498'] = '\\u0031\\u0037\\u002E';\n t['\\u2499'] = '\\u0031\\u0038\\u002E';\n t['\\u249A'] = '\\u0031\\u0039\\u002E';\n t['\\u249B'] = '\\u0032\\u0030\\u002E';\n t['\\u249C'] = '\\u0028\\u0061\\u0029';\n t['\\u249D'] = '\\u0028\\u0062\\u0029';\n t['\\u249E'] = '\\u0028\\u0063\\u0029';\n t['\\u249F'] = '\\u0028\\u0064\\u0029';\n t['\\u24A0'] = '\\u0028\\u0065\\u0029';\n t['\\u24A1'] = '\\u0028\\u0066\\u0029';\n t['\\u24A2'] = '\\u0028\\u0067\\u0029';\n t['\\u24A3'] = '\\u0028\\u0068\\u0029';\n t['\\u24A4'] = '\\u0028\\u0069\\u0029';\n t['\\u24A5'] = '\\u0028\\u006A\\u0029';\n t['\\u24A6'] = '\\u0028\\u006B\\u0029';\n t['\\u24A7'] = '\\u0028\\u006C\\u0029';\n t['\\u24A8'] = '\\u0028\\u006D\\u0029';\n t['\\u24A9'] = '\\u0028\\u006E\\u0029';\n t['\\u24AA'] = '\\u0028\\u006F\\u0029';\n t['\\u24AB'] = '\\u0028\\u0070\\u0029';\n t['\\u24AC'] = '\\u0028\\u0071\\u0029';\n t['\\u24AD'] = '\\u0028\\u0072\\u0029';\n t['\\u24AE'] = '\\u0028\\u0073\\u0029';\n t['\\u24AF'] = '\\u0028\\u0074\\u0029';\n t['\\u24B0'] = '\\u0028\\u0075\\u0029';\n t['\\u24B1'] = '\\u0028\\u0076\\u0029';\n t['\\u24B2'] = '\\u0028\\u0077\\u0029';\n t['\\u24B3'] = '\\u0028\\u0078\\u0029';\n t['\\u24B4'] = '\\u0028\\u0079\\u0029';\n t['\\u24B5'] = '\\u0028\\u007A\\u0029';\n t['\\u2A0C'] = '\\u222B\\u222B\\u222B\\u222B';\n t['\\u2A74'] = '\\u003A\\u003A\\u003D';\n t['\\u2A75'] = '\\u003D\\u003D';\n t['\\u2A76'] = '\\u003D\\u003D\\u003D';\n t['\\u2E9F'] = '\\u6BCD';\n t['\\u2EF3'] = '\\u9F9F';\n t['\\u2F00'] = '\\u4E00';\n t['\\u2F01'] = '\\u4E28';\n t['\\u2F02'] = '\\u4E36';\n t['\\u2F03'] = '\\u4E3F';\n t['\\u2F04'] = '\\u4E59';\n t['\\u2F05'] = '\\u4E85';\n t['\\u2F06'] = '\\u4E8C';\n t['\\u2F07'] = '\\u4EA0';\n t['\\u2F08'] = '\\u4EBA';\n t['\\u2F09'] = '\\u513F';\n t['\\u2F0A'] = '\\u5165';\n t['\\u2F0B'] = '\\u516B';\n t['\\u2F0C'] = '\\u5182';\n t['\\u2F0D'] = '\\u5196';\n t['\\u2F0E'] = '\\u51AB';\n t['\\u2F0F'] = '\\u51E0';\n t['\\u2F10'] = '\\u51F5';\n t['\\u2F11'] = '\\u5200';\n t['\\u2F12'] = '\\u529B';\n t['\\u2F13'] = '\\u52F9';\n t['\\u2F14'] = '\\u5315';\n t['\\u2F15'] = '\\u531A';\n t['\\u2F16'] = '\\u5338';\n t['\\u2F17'] = '\\u5341';\n t['\\u2F18'] = '\\u535C';\n t['\\u2F19'] = '\\u5369';\n t['\\u2F1A'] = '\\u5382';\n t['\\u2F1B'] = '\\u53B6';\n t['\\u2F1C'] = '\\u53C8';\n t['\\u2F1D'] = '\\u53E3';\n t['\\u2F1E'] = '\\u56D7';\n t['\\u2F1F'] = '\\u571F';\n t['\\u2F20'] = '\\u58EB';\n t['\\u2F21'] = '\\u5902';\n t['\\u2F22'] = '\\u590A';\n t['\\u2F23'] = '\\u5915';\n t['\\u2F24'] = '\\u5927';\n t['\\u2F25'] = '\\u5973';\n t['\\u2F26'] = '\\u5B50';\n t['\\u2F27'] = '\\u5B80';\n t['\\u2F28'] = '\\u5BF8';\n t['\\u2F29'] = '\\u5C0F';\n t['\\u2F2A'] = '\\u5C22';\n t['\\u2F2B'] = '\\u5C38';\n t['\\u2F2C'] = '\\u5C6E';\n t['\\u2F2D'] = '\\u5C71';\n t['\\u2F2E'] = '\\u5DDB';\n t['\\u2F2F'] = '\\u5DE5';\n t['\\u2F30'] = '\\u5DF1';\n t['\\u2F31'] = '\\u5DFE';\n t['\\u2F32'] = '\\u5E72';\n t['\\u2F33'] = '\\u5E7A';\n t['\\u2F34'] = '\\u5E7F';\n t['\\u2F35'] = '\\u5EF4';\n t['\\u2F36'] = '\\u5EFE';\n t['\\u2F37'] = '\\u5F0B';\n t['\\u2F38'] = '\\u5F13';\n t['\\u2F39'] = '\\u5F50';\n t['\\u2F3A'] = '\\u5F61';\n t['\\u2F3B'] = '\\u5F73';\n t['\\u2F3C'] = '\\u5FC3';\n t['\\u2F3D'] = '\\u6208';\n t['\\u2F3E'] = '\\u6236';\n t['\\u2F3F'] = '\\u624B';\n t['\\u2F40'] = '\\u652F';\n t['\\u2F41'] = '\\u6534';\n t['\\u2F42'] = '\\u6587';\n t['\\u2F43'] = '\\u6597';\n t['\\u2F44'] = '\\u65A4';\n t['\\u2F45'] = '\\u65B9';\n t['\\u2F46'] = '\\u65E0';\n t['\\u2F47'] = '\\u65E5';\n t['\\u2F48'] = '\\u66F0';\n t['\\u2F49'] = '\\u6708';\n t['\\u2F4A'] = '\\u6728';\n t['\\u2F4B'] = '\\u6B20';\n t['\\u2F4C'] = '\\u6B62';\n t['\\u2F4D'] = '\\u6B79';\n t['\\u2F4E'] = '\\u6BB3';\n t['\\u2F4F'] = '\\u6BCB';\n t['\\u2F50'] = '\\u6BD4';\n t['\\u2F51'] = '\\u6BDB';\n t['\\u2F52'] = '\\u6C0F';\n t['\\u2F53'] = '\\u6C14';\n t['\\u2F54'] = '\\u6C34';\n t['\\u2F55'] = '\\u706B';\n t['\\u2F56'] = '\\u722A';\n t['\\u2F57'] = '\\u7236';\n t['\\u2F58'] = '\\u723B';\n t['\\u2F59'] = '\\u723F';\n t['\\u2F5A'] = '\\u7247';\n t['\\u2F5B'] = '\\u7259';\n t['\\u2F5C'] = '\\u725B';\n t['\\u2F5D'] = '\\u72AC';\n t['\\u2F5E'] = '\\u7384';\n t['\\u2F5F'] = '\\u7389';\n t['\\u2F60'] = '\\u74DC';\n t['\\u2F61'] = '\\u74E6';\n t['\\u2F62'] = '\\u7518';\n t['\\u2F63'] = '\\u751F';\n t['\\u2F64'] = '\\u7528';\n t['\\u2F65'] = '\\u7530';\n t['\\u2F66'] = '\\u758B';\n t['\\u2F67'] = '\\u7592';\n t['\\u2F68'] = '\\u7676';\n t['\\u2F69'] = '\\u767D';\n t['\\u2F6A'] = '\\u76AE';\n t['\\u2F6B'] = '\\u76BF';\n t['\\u2F6C'] = '\\u76EE';\n t['\\u2F6D'] = '\\u77DB';\n t['\\u2F6E'] = '\\u77E2';\n t['\\u2F6F'] = '\\u77F3';\n t['\\u2F70'] = '\\u793A';\n t['\\u2F71'] = '\\u79B8';\n t['\\u2F72'] = '\\u79BE';\n t['\\u2F73'] = '\\u7A74';\n t['\\u2F74'] = '\\u7ACB';\n t['\\u2F75'] = '\\u7AF9';\n t['\\u2F76'] = '\\u7C73';\n t['\\u2F77'] = '\\u7CF8';\n t['\\u2F78'] = '\\u7F36';\n t['\\u2F79'] = '\\u7F51';\n t['\\u2F7A'] = '\\u7F8A';\n t['\\u2F7B'] = '\\u7FBD';\n t['\\u2F7C'] = '\\u8001';\n t['\\u2F7D'] = '\\u800C';\n t['\\u2F7E'] = '\\u8012';\n t['\\u2F7F'] = '\\u8033';\n t['\\u2F80'] = '\\u807F';\n t['\\u2F81'] = '\\u8089';\n t['\\u2F82'] = '\\u81E3';\n t['\\u2F83'] = '\\u81EA';\n t['\\u2F84'] = '\\u81F3';\n t['\\u2F85'] = '\\u81FC';\n t['\\u2F86'] = '\\u820C';\n t['\\u2F87'] = '\\u821B';\n t['\\u2F88'] = '\\u821F';\n t['\\u2F89'] = '\\u826E';\n t['\\u2F8A'] = '\\u8272';\n t['\\u2F8B'] = '\\u8278';\n t['\\u2F8C'] = '\\u864D';\n t['\\u2F8D'] = '\\u866B';\n t['\\u2F8E'] = '\\u8840';\n t['\\u2F8F'] = '\\u884C';\n t['\\u2F90'] = '\\u8863';\n t['\\u2F91'] = '\\u897E';\n t['\\u2F92'] = '\\u898B';\n t['\\u2F93'] = '\\u89D2';\n t['\\u2F94'] = '\\u8A00';\n t['\\u2F95'] = '\\u8C37';\n t['\\u2F96'] = '\\u8C46';\n t['\\u2F97'] = '\\u8C55';\n t['\\u2F98'] = '\\u8C78';\n t['\\u2F99'] = '\\u8C9D';\n t['\\u2F9A'] = '\\u8D64';\n t['\\u2F9B'] = '\\u8D70';\n t['\\u2F9C'] = '\\u8DB3';\n t['\\u2F9D'] = '\\u8EAB';\n t['\\u2F9E'] = '\\u8ECA';\n t['\\u2F9F'] = '\\u8F9B';\n t['\\u2FA0'] = '\\u8FB0';\n t['\\u2FA1'] = '\\u8FB5';\n t['\\u2FA2'] = '\\u9091';\n t['\\u2FA3'] = '\\u9149';\n t['\\u2FA4'] = '\\u91C6';\n t['\\u2FA5'] = '\\u91CC';\n t['\\u2FA6'] = '\\u91D1';\n t['\\u2FA7'] = '\\u9577';\n t['\\u2FA8'] = '\\u9580';\n t['\\u2FA9'] = '\\u961C';\n t['\\u2FAA'] = '\\u96B6';\n t['\\u2FAB'] = '\\u96B9';\n t['\\u2FAC'] = '\\u96E8';\n t['\\u2FAD'] = '\\u9751';\n t['\\u2FAE'] = '\\u975E';\n t['\\u2FAF'] = '\\u9762';\n t['\\u2FB0'] = '\\u9769';\n t['\\u2FB1'] = '\\u97CB';\n t['\\u2FB2'] = '\\u97ED';\n t['\\u2FB3'] = '\\u97F3';\n t['\\u2FB4'] = '\\u9801';\n t['\\u2FB5'] = '\\u98A8';\n t['\\u2FB6'] = '\\u98DB';\n t['\\u2FB7'] = '\\u98DF';\n t['\\u2FB8'] = '\\u9996';\n t['\\u2FB9'] = '\\u9999';\n t['\\u2FBA'] = '\\u99AC';\n t['\\u2FBB'] = '\\u9AA8';\n t['\\u2FBC'] = '\\u9AD8';\n t['\\u2FBD'] = '\\u9ADF';\n t['\\u2FBE'] = '\\u9B25';\n t['\\u2FBF'] = '\\u9B2F';\n t['\\u2FC0'] = '\\u9B32';\n t['\\u2FC1'] = '\\u9B3C';\n t['\\u2FC2'] = '\\u9B5A';\n t['\\u2FC3'] = '\\u9CE5';\n t['\\u2FC4'] = '\\u9E75';\n t['\\u2FC5'] = '\\u9E7F';\n t['\\u2FC6'] = '\\u9EA5';\n t['\\u2FC7'] = '\\u9EBB';\n t['\\u2FC8'] = '\\u9EC3';\n t['\\u2FC9'] = '\\u9ECD';\n t['\\u2FCA'] = '\\u9ED1';\n t['\\u2FCB'] = '\\u9EF9';\n t['\\u2FCC'] = '\\u9EFD';\n t['\\u2FCD'] = '\\u9F0E';\n t['\\u2FCE'] = '\\u9F13';\n t['\\u2FCF'] = '\\u9F20';\n t['\\u2FD0'] = '\\u9F3B';\n t['\\u2FD1'] = '\\u9F4A';\n t['\\u2FD2'] = '\\u9F52';\n t['\\u2FD3'] = '\\u9F8D';\n t['\\u2FD4'] = '\\u9F9C';\n t['\\u2FD5'] = '\\u9FA0';\n t['\\u3036'] = '\\u3012';\n t['\\u3038'] = '\\u5341';\n t['\\u3039'] = '\\u5344';\n t['\\u303A'] = '\\u5345';\n t['\\u309B'] = '\\u0020\\u3099';\n t['\\u309C'] = '\\u0020\\u309A';\n t['\\u3131'] = '\\u1100';\n t['\\u3132'] = '\\u1101';\n t['\\u3133'] = '\\u11AA';\n t['\\u3134'] = '\\u1102';\n t['\\u3135'] = '\\u11AC';\n t['\\u3136'] = '\\u11AD';\n t['\\u3137'] = '\\u1103';\n t['\\u3138'] = '\\u1104';\n t['\\u3139'] = '\\u1105';\n t['\\u313A'] = '\\u11B0';\n t['\\u313B'] = '\\u11B1';\n t['\\u313C'] = '\\u11B2';\n t['\\u313D'] = '\\u11B3';\n t['\\u313E'] = '\\u11B4';\n t['\\u313F'] = '\\u11B5';\n t['\\u3140'] = '\\u111A';\n t['\\u3141'] = '\\u1106';\n t['\\u3142'] = '\\u1107';\n t['\\u3143'] = '\\u1108';\n t['\\u3144'] = '\\u1121';\n t['\\u3145'] = '\\u1109';\n t['\\u3146'] = '\\u110A';\n t['\\u3147'] = '\\u110B';\n t['\\u3148'] = '\\u110C';\n t['\\u3149'] = '\\u110D';\n t['\\u314A'] = '\\u110E';\n t['\\u314B'] = '\\u110F';\n t['\\u314C'] = '\\u1110';\n t['\\u314D'] = '\\u1111';\n t['\\u314E'] = '\\u1112';\n t['\\u314F'] = '\\u1161';\n t['\\u3150'] = '\\u1162';\n t['\\u3151'] = '\\u1163';\n t['\\u3152'] = '\\u1164';\n t['\\u3153'] = '\\u1165';\n t['\\u3154'] = '\\u1166';\n t['\\u3155'] = '\\u1167';\n t['\\u3156'] = '\\u1168';\n t['\\u3157'] = '\\u1169';\n t['\\u3158'] = '\\u116A';\n t['\\u3159'] = '\\u116B';\n t['\\u315A'] = '\\u116C';\n t['\\u315B'] = '\\u116D';\n t['\\u315C'] = '\\u116E';\n t['\\u315D'] = '\\u116F';\n t['\\u315E'] = '\\u1170';\n t['\\u315F'] = '\\u1171';\n t['\\u3160'] = '\\u1172';\n t['\\u3161'] = '\\u1173';\n t['\\u3162'] = '\\u1174';\n t['\\u3163'] = '\\u1175';\n t['\\u3164'] = '\\u1160';\n t['\\u3165'] = '\\u1114';\n t['\\u3166'] = '\\u1115';\n t['\\u3167'] = '\\u11C7';\n t['\\u3168'] = '\\u11C8';\n t['\\u3169'] = '\\u11CC';\n t['\\u316A'] = '\\u11CE';\n t['\\u316B'] = '\\u11D3';\n t['\\u316C'] = '\\u11D7';\n t['\\u316D'] = '\\u11D9';\n t['\\u316E'] = '\\u111C';\n t['\\u316F'] = '\\u11DD';\n t['\\u3170'] = '\\u11DF';\n t['\\u3171'] = '\\u111D';\n t['\\u3172'] = '\\u111E';\n t['\\u3173'] = '\\u1120';\n t['\\u3174'] = '\\u1122';\n t['\\u3175'] = '\\u1123';\n t['\\u3176'] = '\\u1127';\n t['\\u3177'] = '\\u1129';\n t['\\u3178'] = '\\u112B';\n t['\\u3179'] = '\\u112C';\n t['\\u317A'] = '\\u112D';\n t['\\u317B'] = '\\u112E';\n t['\\u317C'] = '\\u112F';\n t['\\u317D'] = '\\u1132';\n t['\\u317E'] = '\\u1136';\n t['\\u317F'] = '\\u1140';\n t['\\u3180'] = '\\u1147';\n t['\\u3181'] = '\\u114C';\n t['\\u3182'] = '\\u11F1';\n t['\\u3183'] = '\\u11F2';\n t['\\u3184'] = '\\u1157';\n t['\\u3185'] = '\\u1158';\n t['\\u3186'] = '\\u1159';\n t['\\u3187'] = '\\u1184';\n t['\\u3188'] = '\\u1185';\n t['\\u3189'] = '\\u1188';\n t['\\u318A'] = '\\u1191';\n t['\\u318B'] = '\\u1192';\n t['\\u318C'] = '\\u1194';\n t['\\u318D'] = '\\u119E';\n t['\\u318E'] = '\\u11A1';\n t['\\u3200'] = '\\u0028\\u1100\\u0029';\n t['\\u3201'] = '\\u0028\\u1102\\u0029';\n t['\\u3202'] = '\\u0028\\u1103\\u0029';\n t['\\u3203'] = '\\u0028\\u1105\\u0029';\n t['\\u3204'] = '\\u0028\\u1106\\u0029';\n t['\\u3205'] = '\\u0028\\u1107\\u0029';\n t['\\u3206'] = '\\u0028\\u1109\\u0029';\n t['\\u3207'] = '\\u0028\\u110B\\u0029';\n t['\\u3208'] = '\\u0028\\u110C\\u0029';\n t['\\u3209'] = '\\u0028\\u110E\\u0029';\n t['\\u320A'] = '\\u0028\\u110F\\u0029';\n t['\\u320B'] = '\\u0028\\u1110\\u0029';\n t['\\u320C'] = '\\u0028\\u1111\\u0029';\n t['\\u320D'] = '\\u0028\\u1112\\u0029';\n t['\\u320E'] = '\\u0028\\u1100\\u1161\\u0029';\n t['\\u320F'] = '\\u0028\\u1102\\u1161\\u0029';\n t['\\u3210'] = '\\u0028\\u1103\\u1161\\u0029';\n t['\\u3211'] = '\\u0028\\u1105\\u1161\\u0029';\n t['\\u3212'] = '\\u0028\\u1106\\u1161\\u0029';\n t['\\u3213'] = '\\u0028\\u1107\\u1161\\u0029';\n t['\\u3214'] = '\\u0028\\u1109\\u1161\\u0029';\n t['\\u3215'] = '\\u0028\\u110B\\u1161\\u0029';\n t['\\u3216'] = '\\u0028\\u110C\\u1161\\u0029';\n t['\\u3217'] = '\\u0028\\u110E\\u1161\\u0029';\n t['\\u3218'] = '\\u0028\\u110F\\u1161\\u0029';\n t['\\u3219'] = '\\u0028\\u1110\\u1161\\u0029';\n t['\\u321A'] = '\\u0028\\u1111\\u1161\\u0029';\n t['\\u321B'] = '\\u0028\\u1112\\u1161\\u0029';\n t['\\u321C'] = '\\u0028\\u110C\\u116E\\u0029';\n t['\\u321D'] = '\\u0028\\u110B\\u1169\\u110C\\u1165\\u11AB\\u0029';\n t['\\u321E'] = '\\u0028\\u110B\\u1169\\u1112\\u116E\\u0029';\n t['\\u3220'] = '\\u0028\\u4E00\\u0029';\n t['\\u3221'] = '\\u0028\\u4E8C\\u0029';\n t['\\u3222'] = '\\u0028\\u4E09\\u0029';\n t['\\u3223'] = '\\u0028\\u56DB\\u0029';\n t['\\u3224'] = '\\u0028\\u4E94\\u0029';\n t['\\u3225'] = '\\u0028\\u516D\\u0029';\n t['\\u3226'] = '\\u0028\\u4E03\\u0029';\n t['\\u3227'] = '\\u0028\\u516B\\u0029';\n t['\\u3228'] = '\\u0028\\u4E5D\\u0029';\n t['\\u3229'] = '\\u0028\\u5341\\u0029';\n t['\\u322A'] = '\\u0028\\u6708\\u0029';\n t['\\u322B'] = '\\u0028\\u706B\\u0029';\n t['\\u322C'] = '\\u0028\\u6C34\\u0029';\n t['\\u322D'] = '\\u0028\\u6728\\u0029';\n t['\\u322E'] = '\\u0028\\u91D1\\u0029';\n t['\\u322F'] = '\\u0028\\u571F\\u0029';\n t['\\u3230'] = '\\u0028\\u65E5\\u0029';\n t['\\u3231'] = '\\u0028\\u682A\\u0029';\n t['\\u3232'] = '\\u0028\\u6709\\u0029';\n t['\\u3233'] = '\\u0028\\u793E\\u0029';\n t['\\u3234'] = '\\u0028\\u540D\\u0029';\n t['\\u3235'] = '\\u0028\\u7279\\u0029';\n t['\\u3236'] = '\\u0028\\u8CA1\\u0029';\n t['\\u3237'] = '\\u0028\\u795D\\u0029';\n t['\\u3238'] = '\\u0028\\u52B4\\u0029';\n t['\\u3239'] = '\\u0028\\u4EE3\\u0029';\n t['\\u323A'] = '\\u0028\\u547C\\u0029';\n t['\\u323B'] = '\\u0028\\u5B66\\u0029';\n t['\\u323C'] = '\\u0028\\u76E3\\u0029';\n t['\\u323D'] = '\\u0028\\u4F01\\u0029';\n t['\\u323E'] = '\\u0028\\u8CC7\\u0029';\n t['\\u323F'] = '\\u0028\\u5354\\u0029';\n t['\\u3240'] = '\\u0028\\u796D\\u0029';\n t['\\u3241'] = '\\u0028\\u4F11\\u0029';\n t['\\u3242'] = '\\u0028\\u81EA\\u0029';\n t['\\u3243'] = '\\u0028\\u81F3\\u0029';\n t['\\u32C0'] = '\\u0031\\u6708';\n t['\\u32C1'] = '\\u0032\\u6708';\n t['\\u32C2'] = '\\u0033\\u6708';\n t['\\u32C3'] = '\\u0034\\u6708';\n t['\\u32C4'] = '\\u0035\\u6708';\n t['\\u32C5'] = '\\u0036\\u6708';\n t['\\u32C6'] = '\\u0037\\u6708';\n t['\\u32C7'] = '\\u0038\\u6708';\n t['\\u32C8'] = '\\u0039\\u6708';\n t['\\u32C9'] = '\\u0031\\u0030\\u6708';\n t['\\u32CA'] = '\\u0031\\u0031\\u6708';\n t['\\u32CB'] = '\\u0031\\u0032\\u6708';\n t['\\u3358'] = '\\u0030\\u70B9';\n t['\\u3359'] = '\\u0031\\u70B9';\n t['\\u335A'] = '\\u0032\\u70B9';\n t['\\u335B'] = '\\u0033\\u70B9';\n t['\\u335C'] = '\\u0034\\u70B9';\n t['\\u335D'] = '\\u0035\\u70B9';\n t['\\u335E'] = '\\u0036\\u70B9';\n t['\\u335F'] = '\\u0037\\u70B9';\n t['\\u3360'] = '\\u0038\\u70B9';\n t['\\u3361'] = '\\u0039\\u70B9';\n t['\\u3362'] = '\\u0031\\u0030\\u70B9';\n t['\\u3363'] = '\\u0031\\u0031\\u70B9';\n t['\\u3364'] = '\\u0031\\u0032\\u70B9';\n t['\\u3365'] = '\\u0031\\u0033\\u70B9';\n t['\\u3366'] = '\\u0031\\u0034\\u70B9';\n t['\\u3367'] = '\\u0031\\u0035\\u70B9';\n t['\\u3368'] = '\\u0031\\u0036\\u70B9';\n t['\\u3369'] = '\\u0031\\u0037\\u70B9';\n t['\\u336A'] = '\\u0031\\u0038\\u70B9';\n t['\\u336B'] = '\\u0031\\u0039\\u70B9';\n t['\\u336C'] = '\\u0032\\u0030\\u70B9';\n t['\\u336D'] = '\\u0032\\u0031\\u70B9';\n t['\\u336E'] = '\\u0032\\u0032\\u70B9';\n t['\\u336F'] = '\\u0032\\u0033\\u70B9';\n t['\\u3370'] = '\\u0032\\u0034\\u70B9';\n t['\\u33E0'] = '\\u0031\\u65E5';\n t['\\u33E1'] = '\\u0032\\u65E5';\n t['\\u33E2'] = '\\u0033\\u65E5';\n t['\\u33E3'] = '\\u0034\\u65E5';\n t['\\u33E4'] = '\\u0035\\u65E5';\n t['\\u33E5'] = '\\u0036\\u65E5';\n t['\\u33E6'] = '\\u0037\\u65E5';\n t['\\u33E7'] = '\\u0038\\u65E5';\n t['\\u33E8'] = '\\u0039\\u65E5';\n t['\\u33E9'] = '\\u0031\\u0030\\u65E5';\n t['\\u33EA'] = '\\u0031\\u0031\\u65E5';\n t['\\u33EB'] = '\\u0031\\u0032\\u65E5';\n t['\\u33EC'] = '\\u0031\\u0033\\u65E5';\n t['\\u33ED'] = '\\u0031\\u0034\\u65E5';\n t['\\u33EE'] = '\\u0031\\u0035\\u65E5';\n t['\\u33EF'] = '\\u0031\\u0036\\u65E5';\n t['\\u33F0'] = '\\u0031\\u0037\\u65E5';\n t['\\u33F1'] = '\\u0031\\u0038\\u65E5';\n t['\\u33F2'] = '\\u0031\\u0039\\u65E5';\n t['\\u33F3'] = '\\u0032\\u0030\\u65E5';\n t['\\u33F4'] = '\\u0032\\u0031\\u65E5';\n t['\\u33F5'] = '\\u0032\\u0032\\u65E5';\n t['\\u33F6'] = '\\u0032\\u0033\\u65E5';\n t['\\u33F7'] = '\\u0032\\u0034\\u65E5';\n t['\\u33F8'] = '\\u0032\\u0035\\u65E5';\n t['\\u33F9'] = '\\u0032\\u0036\\u65E5';\n t['\\u33FA'] = '\\u0032\\u0037\\u65E5';\n t['\\u33FB'] = '\\u0032\\u0038\\u65E5';\n t['\\u33FC'] = '\\u0032\\u0039\\u65E5';\n t['\\u33FD'] = '\\u0033\\u0030\\u65E5';\n t['\\u33FE'] = '\\u0033\\u0031\\u65E5';\n t['\\uFB00'] = '\\u0066\\u0066';\n t['\\uFB01'] = '\\u0066\\u0069';\n t['\\uFB02'] = '\\u0066\\u006C';\n t['\\uFB03'] = '\\u0066\\u0066\\u0069';\n t['\\uFB04'] = '\\u0066\\u0066\\u006C';\n t['\\uFB05'] = '\\u017F\\u0074';\n t['\\uFB06'] = '\\u0073\\u0074';\n t['\\uFB13'] = '\\u0574\\u0576';\n t['\\uFB14'] = '\\u0574\\u0565';\n t['\\uFB15'] = '\\u0574\\u056B';\n t['\\uFB16'] = '\\u057E\\u0576';\n t['\\uFB17'] = '\\u0574\\u056D';\n t['\\uFB4F'] = '\\u05D0\\u05DC';\n t['\\uFB50'] = '\\u0671';\n t['\\uFB51'] = '\\u0671';\n t['\\uFB52'] = '\\u067B';\n t['\\uFB53'] = '\\u067B';\n t['\\uFB54'] = '\\u067B';\n t['\\uFB55'] = '\\u067B';\n t['\\uFB56'] = '\\u067E';\n t['\\uFB57'] = '\\u067E';\n t['\\uFB58'] = '\\u067E';\n t['\\uFB59'] = '\\u067E';\n t['\\uFB5A'] = '\\u0680';\n t['\\uFB5B'] = '\\u0680';\n t['\\uFB5C'] = '\\u0680';\n t['\\uFB5D'] = '\\u0680';\n t['\\uFB5E'] = '\\u067A';\n t['\\uFB5F'] = '\\u067A';\n t['\\uFB60'] = '\\u067A';\n t['\\uFB61'] = '\\u067A';\n t['\\uFB62'] = '\\u067F';\n t['\\uFB63'] = '\\u067F';\n t['\\uFB64'] = '\\u067F';\n t['\\uFB65'] = '\\u067F';\n t['\\uFB66'] = '\\u0679';\n t['\\uFB67'] = '\\u0679';\n t['\\uFB68'] = '\\u0679';\n t['\\uFB69'] = '\\u0679';\n t['\\uFB6A'] = '\\u06A4';\n t['\\uFB6B'] = '\\u06A4';\n t['\\uFB6C'] = '\\u06A4';\n t['\\uFB6D'] = '\\u06A4';\n t['\\uFB6E'] = '\\u06A6';\n t['\\uFB6F'] = '\\u06A6';\n t['\\uFB70'] = '\\u06A6';\n t['\\uFB71'] = '\\u06A6';\n t['\\uFB72'] = '\\u0684';\n t['\\uFB73'] = '\\u0684';\n t['\\uFB74'] = '\\u0684';\n t['\\uFB75'] = '\\u0684';\n t['\\uFB76'] = '\\u0683';\n t['\\uFB77'] = '\\u0683';\n t['\\uFB78'] = '\\u0683';\n t['\\uFB79'] = '\\u0683';\n t['\\uFB7A'] = '\\u0686';\n t['\\uFB7B'] = '\\u0686';\n t['\\uFB7C'] = '\\u0686';\n t['\\uFB7D'] = '\\u0686';\n t['\\uFB7E'] = '\\u0687';\n t['\\uFB7F'] = '\\u0687';\n t['\\uFB80'] = '\\u0687';\n t['\\uFB81'] = '\\u0687';\n t['\\uFB82'] = '\\u068D';\n t['\\uFB83'] = '\\u068D';\n t['\\uFB84'] = '\\u068C';\n t['\\uFB85'] = '\\u068C';\n t['\\uFB86'] = '\\u068E';\n t['\\uFB87'] = '\\u068E';\n t['\\uFB88'] = '\\u0688';\n t['\\uFB89'] = '\\u0688';\n t['\\uFB8A'] = '\\u0698';\n t['\\uFB8B'] = '\\u0698';\n t['\\uFB8C'] = '\\u0691';\n t['\\uFB8D'] = '\\u0691';\n t['\\uFB8E'] = '\\u06A9';\n t['\\uFB8F'] = '\\u06A9';\n t['\\uFB90'] = '\\u06A9';\n t['\\uFB91'] = '\\u06A9';\n t['\\uFB92'] = '\\u06AF';\n t['\\uFB93'] = '\\u06AF';\n t['\\uFB94'] = '\\u06AF';\n t['\\uFB95'] = '\\u06AF';\n t['\\uFB96'] = '\\u06B3';\n t['\\uFB97'] = '\\u06B3';\n t['\\uFB98'] = '\\u06B3';\n t['\\uFB99'] = '\\u06B3';\n t['\\uFB9A'] = '\\u06B1';\n t['\\uFB9B'] = '\\u06B1';\n t['\\uFB9C'] = '\\u06B1';\n t['\\uFB9D'] = '\\u06B1';\n t['\\uFB9E'] = '\\u06BA';\n t['\\uFB9F'] = '\\u06BA';\n t['\\uFBA0'] = '\\u06BB';\n t['\\uFBA1'] = '\\u06BB';\n t['\\uFBA2'] = '\\u06BB';\n t['\\uFBA3'] = '\\u06BB';\n t['\\uFBA4'] = '\\u06C0';\n t['\\uFBA5'] = '\\u06C0';\n t['\\uFBA6'] = '\\u06C1';\n t['\\uFBA7'] = '\\u06C1';\n t['\\uFBA8'] = '\\u06C1';\n t['\\uFBA9'] = '\\u06C1';\n t['\\uFBAA'] = '\\u06BE';\n t['\\uFBAB'] = '\\u06BE';\n t['\\uFBAC'] = '\\u06BE';\n t['\\uFBAD'] = '\\u06BE';\n t['\\uFBAE'] = '\\u06D2';\n t['\\uFBAF'] = '\\u06D2';\n t['\\uFBB0'] = '\\u06D3';\n t['\\uFBB1'] = '\\u06D3';\n t['\\uFBD3'] = '\\u06AD';\n t['\\uFBD4'] = '\\u06AD';\n t['\\uFBD5'] = '\\u06AD';\n t['\\uFBD6'] = '\\u06AD';\n t['\\uFBD7'] = '\\u06C7';\n t['\\uFBD8'] = '\\u06C7';\n t['\\uFBD9'] = '\\u06C6';\n t['\\uFBDA'] = '\\u06C6';\n t['\\uFBDB'] = '\\u06C8';\n t['\\uFBDC'] = '\\u06C8';\n t['\\uFBDD'] = '\\u0677';\n t['\\uFBDE'] = '\\u06CB';\n t['\\uFBDF'] = '\\u06CB';\n t['\\uFBE0'] = '\\u06C5';\n t['\\uFBE1'] = '\\u06C5';\n t['\\uFBE2'] = '\\u06C9';\n t['\\uFBE3'] = '\\u06C9';\n t['\\uFBE4'] = '\\u06D0';\n t['\\uFBE5'] = '\\u06D0';\n t['\\uFBE6'] = '\\u06D0';\n t['\\uFBE7'] = '\\u06D0';\n t['\\uFBE8'] = '\\u0649';\n t['\\uFBE9'] = '\\u0649';\n t['\\uFBEA'] = '\\u0626\\u0627';\n t['\\uFBEB'] = '\\u0626\\u0627';\n t['\\uFBEC'] = '\\u0626\\u06D5';\n t['\\uFBED'] = '\\u0626\\u06D5';\n t['\\uFBEE'] = '\\u0626\\u0648';\n t['\\uFBEF'] = '\\u0626\\u0648';\n t['\\uFBF0'] = '\\u0626\\u06C7';\n t['\\uFBF1'] = '\\u0626\\u06C7';\n t['\\uFBF2'] = '\\u0626\\u06C6';\n t['\\uFBF3'] = '\\u0626\\u06C6';\n t['\\uFBF4'] = '\\u0626\\u06C8';\n t['\\uFBF5'] = '\\u0626\\u06C8';\n t['\\uFBF6'] = '\\u0626\\u06D0';\n t['\\uFBF7'] = '\\u0626\\u06D0';\n t['\\uFBF8'] = '\\u0626\\u06D0';\n t['\\uFBF9'] = '\\u0626\\u0649';\n t['\\uFBFA'] = '\\u0626\\u0649';\n t['\\uFBFB'] = '\\u0626\\u0649';\n t['\\uFBFC'] = '\\u06CC';\n t['\\uFBFD'] = '\\u06CC';\n t['\\uFBFE'] = '\\u06CC';\n t['\\uFBFF'] = '\\u06CC';\n t['\\uFC00'] = '\\u0626\\u062C';\n t['\\uFC01'] = '\\u0626\\u062D';\n t['\\uFC02'] = '\\u0626\\u0645';\n t['\\uFC03'] = '\\u0626\\u0649';\n t['\\uFC04'] = '\\u0626\\u064A';\n t['\\uFC05'] = '\\u0628\\u062C';\n t['\\uFC06'] = '\\u0628\\u062D';\n t['\\uFC07'] = '\\u0628\\u062E';\n t['\\uFC08'] = '\\u0628\\u0645';\n t['\\uFC09'] = '\\u0628\\u0649';\n t['\\uFC0A'] = '\\u0628\\u064A';\n t['\\uFC0B'] = '\\u062A\\u062C';\n t['\\uFC0C'] = '\\u062A\\u062D';\n t['\\uFC0D'] = '\\u062A\\u062E';\n t['\\uFC0E'] = '\\u062A\\u0645';\n t['\\uFC0F'] = '\\u062A\\u0649';\n t['\\uFC10'] = '\\u062A\\u064A';\n t['\\uFC11'] = '\\u062B\\u062C';\n t['\\uFC12'] = '\\u062B\\u0645';\n t['\\uFC13'] = '\\u062B\\u0649';\n t['\\uFC14'] = '\\u062B\\u064A';\n t['\\uFC15'] = '\\u062C\\u062D';\n t['\\uFC16'] = '\\u062C\\u0645';\n t['\\uFC17'] = '\\u062D\\u062C';\n t['\\uFC18'] = '\\u062D\\u0645';\n t['\\uFC19'] = '\\u062E\\u062C';\n t['\\uFC1A'] = '\\u062E\\u062D';\n t['\\uFC1B'] = '\\u062E\\u0645';\n t['\\uFC1C'] = '\\u0633\\u062C';\n t['\\uFC1D'] = '\\u0633\\u062D';\n t['\\uFC1E'] = '\\u0633\\u062E';\n t['\\uFC1F'] = '\\u0633\\u0645';\n t['\\uFC20'] = '\\u0635\\u062D';\n t['\\uFC21'] = '\\u0635\\u0645';\n t['\\uFC22'] = '\\u0636\\u062C';\n t['\\uFC23'] = '\\u0636\\u062D';\n t['\\uFC24'] = '\\u0636\\u062E';\n t['\\uFC25'] = '\\u0636\\u0645';\n t['\\uFC26'] = '\\u0637\\u062D';\n t['\\uFC27'] = '\\u0637\\u0645';\n t['\\uFC28'] = '\\u0638\\u0645';\n t['\\uFC29'] = '\\u0639\\u062C';\n t['\\uFC2A'] = '\\u0639\\u0645';\n t['\\uFC2B'] = '\\u063A\\u062C';\n t['\\uFC2C'] = '\\u063A\\u0645';\n t['\\uFC2D'] = '\\u0641\\u062C';\n t['\\uFC2E'] = '\\u0641\\u062D';\n t['\\uFC2F'] = '\\u0641\\u062E';\n t['\\uFC30'] = '\\u0641\\u0645';\n t['\\uFC31'] = '\\u0641\\u0649';\n t['\\uFC32'] = '\\u0641\\u064A';\n t['\\uFC33'] = '\\u0642\\u062D';\n t['\\uFC34'] = '\\u0642\\u0645';\n t['\\uFC35'] = '\\u0642\\u0649';\n t['\\uFC36'] = '\\u0642\\u064A';\n t['\\uFC37'] = '\\u0643\\u0627';\n t['\\uFC38'] = '\\u0643\\u062C';\n t['\\uFC39'] = '\\u0643\\u062D';\n t['\\uFC3A'] = '\\u0643\\u062E';\n t['\\uFC3B'] = '\\u0643\\u0644';\n t['\\uFC3C'] = '\\u0643\\u0645';\n t['\\uFC3D'] = '\\u0643\\u0649';\n t['\\uFC3E'] = '\\u0643\\u064A';\n t['\\uFC3F'] = '\\u0644\\u062C';\n t['\\uFC40'] = '\\u0644\\u062D';\n t['\\uFC41'] = '\\u0644\\u062E';\n t['\\uFC42'] = '\\u0644\\u0645';\n t['\\uFC43'] = '\\u0644\\u0649';\n t['\\uFC44'] = '\\u0644\\u064A';\n t['\\uFC45'] = '\\u0645\\u062C';\n t['\\uFC46'] = '\\u0645\\u062D';\n t['\\uFC47'] = '\\u0645\\u062E';\n t['\\uFC48'] = '\\u0645\\u0645';\n t['\\uFC49'] = '\\u0645\\u0649';\n t['\\uFC4A'] = '\\u0645\\u064A';\n t['\\uFC4B'] = '\\u0646\\u062C';\n t['\\uFC4C'] = '\\u0646\\u062D';\n t['\\uFC4D'] = '\\u0646\\u062E';\n t['\\uFC4E'] = '\\u0646\\u0645';\n t['\\uFC4F'] = '\\u0646\\u0649';\n t['\\uFC50'] = '\\u0646\\u064A';\n t['\\uFC51'] = '\\u0647\\u062C';\n t['\\uFC52'] = '\\u0647\\u0645';\n t['\\uFC53'] = '\\u0647\\u0649';\n t['\\uFC54'] = '\\u0647\\u064A';\n t['\\uFC55'] = '\\u064A\\u062C';\n t['\\uFC56'] = '\\u064A\\u062D';\n t['\\uFC57'] = '\\u064A\\u062E';\n t['\\uFC58'] = '\\u064A\\u0645';\n t['\\uFC59'] = '\\u064A\\u0649';\n t['\\uFC5A'] = '\\u064A\\u064A';\n t['\\uFC5B'] = '\\u0630\\u0670';\n t['\\uFC5C'] = '\\u0631\\u0670';\n t['\\uFC5D'] = '\\u0649\\u0670';\n t['\\uFC5E'] = '\\u0020\\u064C\\u0651';\n t['\\uFC5F'] = '\\u0020\\u064D\\u0651';\n t['\\uFC60'] = '\\u0020\\u064E\\u0651';\n t['\\uFC61'] = '\\u0020\\u064F\\u0651';\n t['\\uFC62'] = '\\u0020\\u0650\\u0651';\n t['\\uFC63'] = '\\u0020\\u0651\\u0670';\n t['\\uFC64'] = '\\u0626\\u0631';\n t['\\uFC65'] = '\\u0626\\u0632';\n t['\\uFC66'] = '\\u0626\\u0645';\n t['\\uFC67'] = '\\u0626\\u0646';\n t['\\uFC68'] = '\\u0626\\u0649';\n t['\\uFC69'] = '\\u0626\\u064A';\n t['\\uFC6A'] = '\\u0628\\u0631';\n t['\\uFC6B'] = '\\u0628\\u0632';\n t['\\uFC6C'] = '\\u0628\\u0645';\n t['\\uFC6D'] = '\\u0628\\u0646';\n t['\\uFC6E'] = '\\u0628\\u0649';\n t['\\uFC6F'] = '\\u0628\\u064A';\n t['\\uFC70'] = '\\u062A\\u0631';\n t['\\uFC71'] = '\\u062A\\u0632';\n t['\\uFC72'] = '\\u062A\\u0645';\n t['\\uFC73'] = '\\u062A\\u0646';\n t['\\uFC74'] = '\\u062A\\u0649';\n t['\\uFC75'] = '\\u062A\\u064A';\n t['\\uFC76'] = '\\u062B\\u0631';\n t['\\uFC77'] = '\\u062B\\u0632';\n t['\\uFC78'] = '\\u062B\\u0645';\n t['\\uFC79'] = '\\u062B\\u0646';\n t['\\uFC7A'] = '\\u062B\\u0649';\n t['\\uFC7B'] = '\\u062B\\u064A';\n t['\\uFC7C'] = '\\u0641\\u0649';\n t['\\uFC7D'] = '\\u0641\\u064A';\n t['\\uFC7E'] = '\\u0642\\u0649';\n t['\\uFC7F'] = '\\u0642\\u064A';\n t['\\uFC80'] = '\\u0643\\u0627';\n t['\\uFC81'] = '\\u0643\\u0644';\n t['\\uFC82'] = '\\u0643\\u0645';\n t['\\uFC83'] = '\\u0643\\u0649';\n t['\\uFC84'] = '\\u0643\\u064A';\n t['\\uFC85'] = '\\u0644\\u0645';\n t['\\uFC86'] = '\\u0644\\u0649';\n t['\\uFC87'] = '\\u0644\\u064A';\n t['\\uFC88'] = '\\u0645\\u0627';\n t['\\uFC89'] = '\\u0645\\u0645';\n t['\\uFC8A'] = '\\u0646\\u0631';\n t['\\uFC8B'] = '\\u0646\\u0632';\n t['\\uFC8C'] = '\\u0646\\u0645';\n t['\\uFC8D'] = '\\u0646\\u0646';\n t['\\uFC8E'] = '\\u0646\\u0649';\n t['\\uFC8F'] = '\\u0646\\u064A';\n t['\\uFC90'] = '\\u0649\\u0670';\n t['\\uFC91'] = '\\u064A\\u0631';\n t['\\uFC92'] = '\\u064A\\u0632';\n t['\\uFC93'] = '\\u064A\\u0645';\n t['\\uFC94'] = '\\u064A\\u0646';\n t['\\uFC95'] = '\\u064A\\u0649';\n t['\\uFC96'] = '\\u064A\\u064A';\n t['\\uFC97'] = '\\u0626\\u062C';\n t['\\uFC98'] = '\\u0626\\u062D';\n t['\\uFC99'] = '\\u0626\\u062E';\n t['\\uFC9A'] = '\\u0626\\u0645';\n t['\\uFC9B'] = '\\u0626\\u0647';\n t['\\uFC9C'] = '\\u0628\\u062C';\n t['\\uFC9D'] = '\\u0628\\u062D';\n t['\\uFC9E'] = '\\u0628\\u062E';\n t['\\uFC9F'] = '\\u0628\\u0645';\n t['\\uFCA0'] = '\\u0628\\u0647';\n t['\\uFCA1'] = '\\u062A\\u062C';\n t['\\uFCA2'] = '\\u062A\\u062D';\n t['\\uFCA3'] = '\\u062A\\u062E';\n t['\\uFCA4'] = '\\u062A\\u0645';\n t['\\uFCA5'] = '\\u062A\\u0647';\n t['\\uFCA6'] = '\\u062B\\u0645';\n t['\\uFCA7'] = '\\u062C\\u062D';\n t['\\uFCA8'] = '\\u062C\\u0645';\n t['\\uFCA9'] = '\\u062D\\u062C';\n t['\\uFCAA'] = '\\u062D\\u0645';\n t['\\uFCAB'] = '\\u062E\\u062C';\n t['\\uFCAC'] = '\\u062E\\u0645';\n t['\\uFCAD'] = '\\u0633\\u062C';\n t['\\uFCAE'] = '\\u0633\\u062D';\n t['\\uFCAF'] = '\\u0633\\u062E';\n t['\\uFCB0'] = '\\u0633\\u0645';\n t['\\uFCB1'] = '\\u0635\\u062D';\n t['\\uFCB2'] = '\\u0635\\u062E';\n t['\\uFCB3'] = '\\u0635\\u0645';\n t['\\uFCB4'] = '\\u0636\\u062C';\n t['\\uFCB5'] = '\\u0636\\u062D';\n t['\\uFCB6'] = '\\u0636\\u062E';\n t['\\uFCB7'] = '\\u0636\\u0645';\n t['\\uFCB8'] = '\\u0637\\u062D';\n t['\\uFCB9'] = '\\u0638\\u0645';\n t['\\uFCBA'] = '\\u0639\\u062C';\n t['\\uFCBB'] = '\\u0639\\u0645';\n t['\\uFCBC'] = '\\u063A\\u062C';\n t['\\uFCBD'] = '\\u063A\\u0645';\n t['\\uFCBE'] = '\\u0641\\u062C';\n t['\\uFCBF'] = '\\u0641\\u062D';\n t['\\uFCC0'] = '\\u0641\\u062E';\n t['\\uFCC1'] = '\\u0641\\u0645';\n t['\\uFCC2'] = '\\u0642\\u062D';\n t['\\uFCC3'] = '\\u0642\\u0645';\n t['\\uFCC4'] = '\\u0643\\u062C';\n t['\\uFCC5'] = '\\u0643\\u062D';\n t['\\uFCC6'] = '\\u0643\\u062E';\n t['\\uFCC7'] = '\\u0643\\u0644';\n t['\\uFCC8'] = '\\u0643\\u0645';\n t['\\uFCC9'] = '\\u0644\\u062C';\n t['\\uFCCA'] = '\\u0644\\u062D';\n t['\\uFCCB'] = '\\u0644\\u062E';\n t['\\uFCCC'] = '\\u0644\\u0645';\n t['\\uFCCD'] = '\\u0644\\u0647';\n t['\\uFCCE'] = '\\u0645\\u062C';\n t['\\uFCCF'] = '\\u0645\\u062D';\n t['\\uFCD0'] = '\\u0645\\u062E';\n t['\\uFCD1'] = '\\u0645\\u0645';\n t['\\uFCD2'] = '\\u0646\\u062C';\n t['\\uFCD3'] = '\\u0646\\u062D';\n t['\\uFCD4'] = '\\u0646\\u062E';\n t['\\uFCD5'] = '\\u0646\\u0645';\n t['\\uFCD6'] = '\\u0646\\u0647';\n t['\\uFCD7'] = '\\u0647\\u062C';\n t['\\uFCD8'] = '\\u0647\\u0645';\n t['\\uFCD9'] = '\\u0647\\u0670';\n t['\\uFCDA'] = '\\u064A\\u062C';\n t['\\uFCDB'] = '\\u064A\\u062D';\n t['\\uFCDC'] = '\\u064A\\u062E';\n t['\\uFCDD'] = '\\u064A\\u0645';\n t['\\uFCDE'] = '\\u064A\\u0647';\n t['\\uFCDF'] = '\\u0626\\u0645';\n t['\\uFCE0'] = '\\u0626\\u0647';\n t['\\uFCE1'] = '\\u0628\\u0645';\n t['\\uFCE2'] = '\\u0628\\u0647';\n t['\\uFCE3'] = '\\u062A\\u0645';\n t['\\uFCE4'] = '\\u062A\\u0647';\n t['\\uFCE5'] = '\\u062B\\u0645';\n t['\\uFCE6'] = '\\u062B\\u0647';\n t['\\uFCE7'] = '\\u0633\\u0645';\n t['\\uFCE8'] = '\\u0633\\u0647';\n t['\\uFCE9'] = '\\u0634\\u0645';\n t['\\uFCEA'] = '\\u0634\\u0647';\n t['\\uFCEB'] = '\\u0643\\u0644';\n t['\\uFCEC'] = '\\u0643\\u0645';\n t['\\uFCED'] = '\\u0644\\u0645';\n t['\\uFCEE'] = '\\u0646\\u0645';\n t['\\uFCEF'] = '\\u0646\\u0647';\n t['\\uFCF0'] = '\\u064A\\u0645';\n t['\\uFCF1'] = '\\u064A\\u0647';\n t['\\uFCF2'] = '\\u0640\\u064E\\u0651';\n t['\\uFCF3'] = '\\u0640\\u064F\\u0651';\n t['\\uFCF4'] = '\\u0640\\u0650\\u0651';\n t['\\uFCF5'] = '\\u0637\\u0649';\n t['\\uFCF6'] = '\\u0637\\u064A';\n t['\\uFCF7'] = '\\u0639\\u0649';\n t['\\uFCF8'] = '\\u0639\\u064A';\n t['\\uFCF9'] = '\\u063A\\u0649';\n t['\\uFCFA'] = '\\u063A\\u064A';\n t['\\uFCFB'] = '\\u0633\\u0649';\n t['\\uFCFC'] = '\\u0633\\u064A';\n t['\\uFCFD'] = '\\u0634\\u0649';\n t['\\uFCFE'] = '\\u0634\\u064A';\n t['\\uFCFF'] = '\\u062D\\u0649';\n t['\\uFD00'] = '\\u062D\\u064A';\n t['\\uFD01'] = '\\u062C\\u0649';\n t['\\uFD02'] = '\\u062C\\u064A';\n t['\\uFD03'] = '\\u062E\\u0649';\n t['\\uFD04'] = '\\u062E\\u064A';\n t['\\uFD05'] = '\\u0635\\u0649';\n t['\\uFD06'] = '\\u0635\\u064A';\n t['\\uFD07'] = '\\u0636\\u0649';\n t['\\uFD08'] = '\\u0636\\u064A';\n t['\\uFD09'] = '\\u0634\\u062C';\n t['\\uFD0A'] = '\\u0634\\u062D';\n t['\\uFD0B'] = '\\u0634\\u062E';\n t['\\uFD0C'] = '\\u0634\\u0645';\n t['\\uFD0D'] = '\\u0634\\u0631';\n t['\\uFD0E'] = '\\u0633\\u0631';\n t['\\uFD0F'] = '\\u0635\\u0631';\n t['\\uFD10'] = '\\u0636\\u0631';\n t['\\uFD11'] = '\\u0637\\u0649';\n t['\\uFD12'] = '\\u0637\\u064A';\n t['\\uFD13'] = '\\u0639\\u0649';\n t['\\uFD14'] = '\\u0639\\u064A';\n t['\\uFD15'] = '\\u063A\\u0649';\n t['\\uFD16'] = '\\u063A\\u064A';\n t['\\uFD17'] = '\\u0633\\u0649';\n t['\\uFD18'] = '\\u0633\\u064A';\n t['\\uFD19'] = '\\u0634\\u0649';\n t['\\uFD1A'] = '\\u0634\\u064A';\n t['\\uFD1B'] = '\\u062D\\u0649';\n t['\\uFD1C'] = '\\u062D\\u064A';\n t['\\uFD1D'] = '\\u062C\\u0649';\n t['\\uFD1E'] = '\\u062C\\u064A';\n t['\\uFD1F'] = '\\u062E\\u0649';\n t['\\uFD20'] = '\\u062E\\u064A';\n t['\\uFD21'] = '\\u0635\\u0649';\n t['\\uFD22'] = '\\u0635\\u064A';\n t['\\uFD23'] = '\\u0636\\u0649';\n t['\\uFD24'] = '\\u0636\\u064A';\n t['\\uFD25'] = '\\u0634\\u062C';\n t['\\uFD26'] = '\\u0634\\u062D';\n t['\\uFD27'] = '\\u0634\\u062E';\n t['\\uFD28'] = '\\u0634\\u0645';\n t['\\uFD29'] = '\\u0634\\u0631';\n t['\\uFD2A'] = '\\u0633\\u0631';\n t['\\uFD2B'] = '\\u0635\\u0631';\n t['\\uFD2C'] = '\\u0636\\u0631';\n t['\\uFD2D'] = '\\u0634\\u062C';\n t['\\uFD2E'] = '\\u0634\\u062D';\n t['\\uFD2F'] = '\\u0634\\u062E';\n t['\\uFD30'] = '\\u0634\\u0645';\n t['\\uFD31'] = '\\u0633\\u0647';\n t['\\uFD32'] = '\\u0634\\u0647';\n t['\\uFD33'] = '\\u0637\\u0645';\n t['\\uFD34'] = '\\u0633\\u062C';\n t['\\uFD35'] = '\\u0633\\u062D';\n t['\\uFD36'] = '\\u0633\\u062E';\n t['\\uFD37'] = '\\u0634\\u062C';\n t['\\uFD38'] = '\\u0634\\u062D';\n t['\\uFD39'] = '\\u0634\\u062E';\n t['\\uFD3A'] = '\\u0637\\u0645';\n t['\\uFD3B'] = '\\u0638\\u0645';\n t['\\uFD3C'] = '\\u0627\\u064B';\n t['\\uFD3D'] = '\\u0627\\u064B';\n t['\\uFD50'] = '\\u062A\\u062C\\u0645';\n t['\\uFD51'] = '\\u062A\\u062D\\u062C';\n t['\\uFD52'] = '\\u062A\\u062D\\u062C';\n t['\\uFD53'] = '\\u062A\\u062D\\u0645';\n t['\\uFD54'] = '\\u062A\\u062E\\u0645';\n t['\\uFD55'] = '\\u062A\\u0645\\u062C';\n t['\\uFD56'] = '\\u062A\\u0645\\u062D';\n t['\\uFD57'] = '\\u062A\\u0645\\u062E';\n t['\\uFD58'] = '\\u062C\\u0645\\u062D';\n t['\\uFD59'] = '\\u062C\\u0645\\u062D';\n t['\\uFD5A'] = '\\u062D\\u0645\\u064A';\n t['\\uFD5B'] = '\\u062D\\u0645\\u0649';\n t['\\uFD5C'] = '\\u0633\\u062D\\u062C';\n t['\\uFD5D'] = '\\u0633\\u062C\\u062D';\n t['\\uFD5E'] = '\\u0633\\u062C\\u0649';\n t['\\uFD5F'] = '\\u0633\\u0645\\u062D';\n t['\\uFD60'] = '\\u0633\\u0645\\u062D';\n t['\\uFD61'] = '\\u0633\\u0645\\u062C';\n t['\\uFD62'] = '\\u0633\\u0645\\u0645';\n t['\\uFD63'] = '\\u0633\\u0645\\u0645';\n t['\\uFD64'] = '\\u0635\\u062D\\u062D';\n t['\\uFD65'] = '\\u0635\\u062D\\u062D';\n t['\\uFD66'] = '\\u0635\\u0645\\u0645';\n t['\\uFD67'] = '\\u0634\\u062D\\u0645';\n t['\\uFD68'] = '\\u0634\\u062D\\u0645';\n t['\\uFD69'] = '\\u0634\\u062C\\u064A';\n t['\\uFD6A'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6B'] = '\\u0634\\u0645\\u062E';\n t['\\uFD6C'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6D'] = '\\u0634\\u0645\\u0645';\n t['\\uFD6E'] = '\\u0636\\u062D\\u0649';\n t['\\uFD6F'] = '\\u0636\\u062E\\u0645';\n t['\\uFD70'] = '\\u0636\\u062E\\u0645';\n t['\\uFD71'] = '\\u0637\\u0645\\u062D';\n t['\\uFD72'] = '\\u0637\\u0645\\u062D';\n t['\\uFD73'] = '\\u0637\\u0645\\u0645';\n t['\\uFD74'] = '\\u0637\\u0645\\u064A';\n t['\\uFD75'] = '\\u0639\\u062C\\u0645';\n t['\\uFD76'] = '\\u0639\\u0645\\u0645';\n t['\\uFD77'] = '\\u0639\\u0645\\u0645';\n t['\\uFD78'] = '\\u0639\\u0645\\u0649';\n t['\\uFD79'] = '\\u063A\\u0645\\u0645';\n t['\\uFD7A'] = '\\u063A\\u0645\\u064A';\n t['\\uFD7B'] = '\\u063A\\u0645\\u0649';\n t['\\uFD7C'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7D'] = '\\u0641\\u062E\\u0645';\n t['\\uFD7E'] = '\\u0642\\u0645\\u062D';\n t['\\uFD7F'] = '\\u0642\\u0645\\u0645';\n t['\\uFD80'] = '\\u0644\\u062D\\u0645';\n t['\\uFD81'] = '\\u0644\\u062D\\u064A';\n t['\\uFD82'] = '\\u0644\\u062D\\u0649';\n t['\\uFD83'] = '\\u0644\\u062C\\u062C';\n t['\\uFD84'] = '\\u0644\\u062C\\u062C';\n t['\\uFD85'] = '\\u0644\\u062E\\u0645';\n t['\\uFD86'] = '\\u0644\\u062E\\u0645';\n t['\\uFD87'] = '\\u0644\\u0645\\u062D';\n t['\\uFD88'] = '\\u0644\\u0645\\u062D';\n t['\\uFD89'] = '\\u0645\\u062D\\u062C';\n t['\\uFD8A'] = '\\u0645\\u062D\\u0645';\n t['\\uFD8B'] = '\\u0645\\u062D\\u064A';\n t['\\uFD8C'] = '\\u0645\\u062C\\u062D';\n t['\\uFD8D'] = '\\u0645\\u062C\\u0645';\n t['\\uFD8E'] = '\\u0645\\u062E\\u062C';\n t['\\uFD8F'] = '\\u0645\\u062E\\u0645';\n t['\\uFD92'] = '\\u0645\\u062C\\u062E';\n t['\\uFD93'] = '\\u0647\\u0645\\u062C';\n t['\\uFD94'] = '\\u0647\\u0645\\u0645';\n t['\\uFD95'] = '\\u0646\\u062D\\u0645';\n t['\\uFD96'] = '\\u0646\\u062D\\u0649';\n t['\\uFD97'] = '\\u0646\\u062C\\u0645';\n t['\\uFD98'] = '\\u0646\\u062C\\u0645';\n t['\\uFD99'] = '\\u0646\\u062C\\u0649';\n t['\\uFD9A'] = '\\u0646\\u0645\\u064A';\n t['\\uFD9B'] = '\\u0646\\u0645\\u0649';\n t['\\uFD9C'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9D'] = '\\u064A\\u0645\\u0645';\n t['\\uFD9E'] = '\\u0628\\u062E\\u064A';\n t['\\uFD9F'] = '\\u062A\\u062C\\u064A';\n t['\\uFDA0'] = '\\u062A\\u062C\\u0649';\n t['\\uFDA1'] = '\\u062A\\u062E\\u064A';\n t['\\uFDA2'] = '\\u062A\\u062E\\u0649';\n t['\\uFDA3'] = '\\u062A\\u0645\\u064A';\n t['\\uFDA4'] = '\\u062A\\u0645\\u0649';\n t['\\uFDA5'] = '\\u062C\\u0645\\u064A';\n t['\\uFDA6'] = '\\u062C\\u062D\\u0649';\n t['\\uFDA7'] = '\\u062C\\u0645\\u0649';\n t['\\uFDA8'] = '\\u0633\\u062E\\u0649';\n t['\\uFDA9'] = '\\u0635\\u062D\\u064A';\n t['\\uFDAA'] = '\\u0634\\u062D\\u064A';\n t['\\uFDAB'] = '\\u0636\\u062D\\u064A';\n t['\\uFDAC'] = '\\u0644\\u062C\\u064A';\n t['\\uFDAD'] = '\\u0644\\u0645\\u064A';\n t['\\uFDAE'] = '\\u064A\\u062D\\u064A';\n t['\\uFDAF'] = '\\u064A\\u062C\\u064A';\n t['\\uFDB0'] = '\\u064A\\u0645\\u064A';\n t['\\uFDB1'] = '\\u0645\\u0645\\u064A';\n t['\\uFDB2'] = '\\u0642\\u0645\\u064A';\n t['\\uFDB3'] = '\\u0646\\u062D\\u064A';\n t['\\uFDB4'] = '\\u0642\\u0645\\u062D';\n t['\\uFDB5'] = '\\u0644\\u062D\\u0645';\n t['\\uFDB6'] = '\\u0639\\u0645\\u064A';\n t['\\uFDB7'] = '\\u0643\\u0645\\u064A';\n t['\\uFDB8'] = '\\u0646\\u062C\\u062D';\n t['\\uFDB9'] = '\\u0645\\u062E\\u064A';\n t['\\uFDBA'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBB'] = '\\u0643\\u0645\\u0645';\n t['\\uFDBC'] = '\\u0644\\u062C\\u0645';\n t['\\uFDBD'] = '\\u0646\\u062C\\u062D';\n t['\\uFDBE'] = '\\u062C\\u062D\\u064A';\n t['\\uFDBF'] = '\\u062D\\u062C\\u064A';\n t['\\uFDC0'] = '\\u0645\\u062C\\u064A';\n t['\\uFDC1'] = '\\u0641\\u0645\\u064A';\n t['\\uFDC2'] = '\\u0628\\u062D\\u064A';\n t['\\uFDC3'] = '\\u0643\\u0645\\u0645';\n t['\\uFDC4'] = '\\u0639\\u062C\\u0645';\n t['\\uFDC5'] = '\\u0635\\u0645\\u0645';\n t['\\uFDC6'] = '\\u0633\\u062E\\u064A';\n t['\\uFDC7'] = '\\u0646\\u062C\\u064A';\n t['\\uFE49'] = '\\u203E';\n t['\\uFE4A'] = '\\u203E';\n t['\\uFE4B'] = '\\u203E';\n t['\\uFE4C'] = '\\u203E';\n t['\\uFE4D'] = '\\u005F';\n t['\\uFE4E'] = '\\u005F';\n t['\\uFE4F'] = '\\u005F';\n t['\\uFE80'] = '\\u0621';\n t['\\uFE81'] = '\\u0622';\n t['\\uFE82'] = '\\u0622';\n t['\\uFE83'] = '\\u0623';\n t['\\uFE84'] = '\\u0623';\n t['\\uFE85'] = '\\u0624';\n t['\\uFE86'] = '\\u0624';\n t['\\uFE87'] = '\\u0625';\n t['\\uFE88'] = '\\u0625';\n t['\\uFE89'] = '\\u0626';\n t['\\uFE8A'] = '\\u0626';\n t['\\uFE8B'] = '\\u0626';\n t['\\uFE8C'] = '\\u0626';\n t['\\uFE8D'] = '\\u0627';\n t['\\uFE8E'] = '\\u0627';\n t['\\uFE8F'] = '\\u0628';\n t['\\uFE90'] = '\\u0628';\n t['\\uFE91'] = '\\u0628';\n t['\\uFE92'] = '\\u0628';\n t['\\uFE93'] = '\\u0629';\n t['\\uFE94'] = '\\u0629';\n t['\\uFE95'] = '\\u062A';\n t['\\uFE96'] = '\\u062A';\n t['\\uFE97'] = '\\u062A';\n t['\\uFE98'] = '\\u062A';\n t['\\uFE99'] = '\\u062B';\n t['\\uFE9A'] = '\\u062B';\n t['\\uFE9B'] = '\\u062B';\n t['\\uFE9C'] = '\\u062B';\n t['\\uFE9D'] = '\\u062C';\n t['\\uFE9E'] = '\\u062C';\n t['\\uFE9F'] = '\\u062C';\n t['\\uFEA0'] = '\\u062C';\n t['\\uFEA1'] = '\\u062D';\n t['\\uFEA2'] = '\\u062D';\n t['\\uFEA3'] = '\\u062D';\n t['\\uFEA4'] = '\\u062D';\n t['\\uFEA5'] = '\\u062E';\n t['\\uFEA6'] = '\\u062E';\n t['\\uFEA7'] = '\\u062E';\n t['\\uFEA8'] = '\\u062E';\n t['\\uFEA9'] = '\\u062F';\n t['\\uFEAA'] = '\\u062F';\n t['\\uFEAB'] = '\\u0630';\n t['\\uFEAC'] = '\\u0630';\n t['\\uFEAD'] = '\\u0631';\n t['\\uFEAE'] = '\\u0631';\n t['\\uFEAF'] = '\\u0632';\n t['\\uFEB0'] = '\\u0632';\n t['\\uFEB1'] = '\\u0633';\n t['\\uFEB2'] = '\\u0633';\n t['\\uFEB3'] = '\\u0633';\n t['\\uFEB4'] = '\\u0633';\n t['\\uFEB5'] = '\\u0634';\n t['\\uFEB6'] = '\\u0634';\n t['\\uFEB7'] = '\\u0634';\n t['\\uFEB8'] = '\\u0634';\n t['\\uFEB9'] = '\\u0635';\n t['\\uFEBA'] = '\\u0635';\n t['\\uFEBB'] = '\\u0635';\n t['\\uFEBC'] = '\\u0635';\n t['\\uFEBD'] = '\\u0636';\n t['\\uFEBE'] = '\\u0636';\n t['\\uFEBF'] = '\\u0636';\n t['\\uFEC0'] = '\\u0636';\n t['\\uFEC1'] = '\\u0637';\n t['\\uFEC2'] = '\\u0637';\n t['\\uFEC3'] = '\\u0637';\n t['\\uFEC4'] = '\\u0637';\n t['\\uFEC5'] = '\\u0638';\n t['\\uFEC6'] = '\\u0638';\n t['\\uFEC7'] = '\\u0638';\n t['\\uFEC8'] = '\\u0638';\n t['\\uFEC9'] = '\\u0639';\n t['\\uFECA'] = '\\u0639';\n t['\\uFECB'] = '\\u0639';\n t['\\uFECC'] = '\\u0639';\n t['\\uFECD'] = '\\u063A';\n t['\\uFECE'] = '\\u063A';\n t['\\uFECF'] = '\\u063A';\n t['\\uFED0'] = '\\u063A';\n t['\\uFED1'] = '\\u0641';\n t['\\uFED2'] = '\\u0641';\n t['\\uFED3'] = '\\u0641';\n t['\\uFED4'] = '\\u0641';\n t['\\uFED5'] = '\\u0642';\n t['\\uFED6'] = '\\u0642';\n t['\\uFED7'] = '\\u0642';\n t['\\uFED8'] = '\\u0642';\n t['\\uFED9'] = '\\u0643';\n t['\\uFEDA'] = '\\u0643';\n t['\\uFEDB'] = '\\u0643';\n t['\\uFEDC'] = '\\u0643';\n t['\\uFEDD'] = '\\u0644';\n t['\\uFEDE'] = '\\u0644';\n t['\\uFEDF'] = '\\u0644';\n t['\\uFEE0'] = '\\u0644';\n t['\\uFEE1'] = '\\u0645';\n t['\\uFEE2'] = '\\u0645';\n t['\\uFEE3'] = '\\u0645';\n t['\\uFEE4'] = '\\u0645';\n t['\\uFEE5'] = '\\u0646';\n t['\\uFEE6'] = '\\u0646';\n t['\\uFEE7'] = '\\u0646';\n t['\\uFEE8'] = '\\u0646';\n t['\\uFEE9'] = '\\u0647';\n t['\\uFEEA'] = '\\u0647';\n t['\\uFEEB'] = '\\u0647';\n t['\\uFEEC'] = '\\u0647';\n t['\\uFEED'] = '\\u0648';\n t['\\uFEEE'] = '\\u0648';\n t['\\uFEEF'] = '\\u0649';\n t['\\uFEF0'] = '\\u0649';\n t['\\uFEF1'] = '\\u064A';\n t['\\uFEF2'] = '\\u064A';\n t['\\uFEF3'] = '\\u064A';\n t['\\uFEF4'] = '\\u064A';\n t['\\uFEF5'] = '\\u0644\\u0622';\n t['\\uFEF6'] = '\\u0644\\u0622';\n t['\\uFEF7'] = '\\u0644\\u0623';\n t['\\uFEF8'] = '\\u0644\\u0623';\n t['\\uFEF9'] = '\\u0644\\u0625';\n t['\\uFEFA'] = '\\u0644\\u0625';\n t['\\uFEFB'] = '\\u0644\\u0627';\n t['\\uFEFC'] = '\\u0644\\u0627';\n});\nfunction reverseIfRtl(chars) {\n var charsLength = chars.length;\n if (charsLength <= 1 || !isRTLRangeFor(chars.charCodeAt(0))) {\n  return chars;\n }\n var s = '';\n for (var ii = charsLength - 1; ii >= 0; ii--) {\n  s += chars[ii];\n }\n return s;\n}\nexports.mapSpecialUnicodeValues = mapSpecialUnicodeValues;\nexports.reverseIfRtl = reverseIfRtl;\nexports.getUnicodeRangeFor = getUnicodeRangeFor;\nexports.getNormalizedUnicodes = getNormalizedUnicodes;\nexports.getUnicodeForGlyph = getUnicodeForGlyph;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.FontRendererFactory = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _cff_parser = __w_pdfjs_require__(174);\n\nvar _glyphlist = __w_pdfjs_require__(177);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _stream = __w_pdfjs_require__(157);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar FontRendererFactory = function FontRendererFactoryClosure() {\n  function getLong(data, offset) {\n    return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n  }\n\n  function getUshort(data, offset) {\n    return data[offset] << 8 | data[offset + 1];\n  }\n\n  function parseCmap(data, start, end) {\n    var offset = getUshort(data, start + 2) === 1 ? getLong(data, start + 8) : getLong(data, start + 16);\n    var format = getUshort(data, start + offset);\n    var ranges, p, i;\n\n    if (format === 4) {\n      getUshort(data, start + offset + 2);\n      var segCount = getUshort(data, start + offset + 6) >> 1;\n      p = start + offset + 14;\n      ranges = [];\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i] = {\n          end: getUshort(data, p)\n        };\n      }\n\n      p += 2;\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].start = getUshort(data, p);\n      }\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        ranges[i].idDelta = getUshort(data, p);\n      }\n\n      for (i = 0; i < segCount; i++, p += 2) {\n        var idOffset = getUshort(data, p);\n\n        if (idOffset === 0) {\n          continue;\n        }\n\n        ranges[i].ids = [];\n\n        for (var j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n          ranges[i].ids[j] = getUshort(data, p + idOffset);\n          idOffset += 2;\n        }\n      }\n\n      return ranges;\n    } else if (format === 12) {\n      getLong(data, start + offset + 4);\n      var groups = getLong(data, start + offset + 12);\n      p = start + offset + 16;\n      ranges = [];\n\n      for (i = 0; i < groups; i++) {\n        ranges.push({\n          start: getLong(data, p),\n          end: getLong(data, p + 4),\n          idDelta: getLong(data, p + 8) - getLong(data, p)\n        });\n        p += 12;\n      }\n\n      return ranges;\n    }\n\n    throw new _util.FormatError(\"unsupported cmap: \".concat(format));\n  }\n\n  function parseCff(data, start, end, seacAnalysisEnabled) {\n    var properties = {};\n    var parser = new _cff_parser.CFFParser(new _stream.Stream(data, start, end - start), properties, seacAnalysisEnabled);\n    var cff = parser.parse();\n    return {\n      glyphs: cff.charStrings.objects,\n      subrs: cff.topDict.privateDict && cff.topDict.privateDict.subrsIndex && cff.topDict.privateDict.subrsIndex.objects,\n      gsubrs: cff.globalSubrIndex && cff.globalSubrIndex.objects,\n      isCFFCIDFont: cff.isCIDFont,\n      fdSelect: cff.fdSelect,\n      fdArray: cff.fdArray\n    };\n  }\n\n  function parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n    var itemSize, itemDecode;\n\n    if (isGlyphLocationsLong) {\n      itemSize = 4;\n\n      itemDecode = function fontItemDecodeLong(data, offset) {\n        return data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3];\n      };\n    } else {\n      itemSize = 2;\n\n      itemDecode = function fontItemDecode(data, offset) {\n        return data[offset] << 9 | data[offset + 1] << 1;\n      };\n    }\n\n    var glyphs = [];\n    var startOffset = itemDecode(loca, 0);\n\n    for (var j = itemSize; j < loca.length; j += itemSize) {\n      var endOffset = itemDecode(loca, j);\n      glyphs.push(glyf.subarray(startOffset, endOffset));\n      startOffset = endOffset;\n    }\n\n    return glyphs;\n  }\n\n  function lookupCmap(ranges, unicode) {\n    var code = unicode.codePointAt(0),\n        gid = 0;\n    var l = 0,\n        r = ranges.length - 1;\n\n    while (l < r) {\n      var c = l + r + 1 >> 1;\n\n      if (code < ranges[c].start) {\n        r = c - 1;\n      } else {\n        l = c;\n      }\n    }\n\n    if (ranges[l].start <= code && code <= ranges[l].end) {\n      gid = ranges[l].idDelta + (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code) & 0xFFFF;\n    }\n\n    return {\n      charCode: code,\n      glyphId: gid\n    };\n  }\n\n  function compileGlyf(code, cmds, font) {\n    function moveTo(x, y) {\n      cmds.push({\n        cmd: 'moveTo',\n        args: [x, y]\n      });\n    }\n\n    function lineTo(x, y) {\n      cmds.push({\n        cmd: 'lineTo',\n        args: [x, y]\n      });\n    }\n\n    function quadraticCurveTo(xa, ya, x, y) {\n      cmds.push({\n        cmd: 'quadraticCurveTo',\n        args: [xa, ya, x, y]\n      });\n    }\n\n    var i = 0;\n    var numberOfContours = (code[i] << 24 | code[i + 1] << 16) >> 16;\n    var flags;\n    var x = 0,\n        y = 0;\n    i += 10;\n\n    if (numberOfContours < 0) {\n      do {\n        flags = code[i] << 8 | code[i + 1];\n        var glyphIndex = code[i + 2] << 8 | code[i + 3];\n        i += 4;\n        var arg1, arg2;\n\n        if (flags & 0x01) {\n          arg1 = (code[i] << 24 | code[i + 1] << 16) >> 16;\n          arg2 = (code[i + 2] << 24 | code[i + 3] << 16) >> 16;\n          i += 4;\n        } else {\n          arg1 = code[i++];\n          arg2 = code[i++];\n        }\n\n        if (flags & 0x02) {\n          x = arg1;\n          y = arg2;\n        } else {\n          x = 0;\n          y = 0;\n        }\n\n        var scaleX = 1,\n            scaleY = 1,\n            scale01 = 0,\n            scale10 = 0;\n\n        if (flags & 0x08) {\n          scaleX = scaleY = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          i += 2;\n        } else if (flags & 0x40) {\n          scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          scaleY = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n          i += 4;\n        } else if (flags & 0x80) {\n          scaleX = (code[i] << 24 | code[i + 1] << 16) / 1073741824;\n          scale01 = (code[i + 2] << 24 | code[i + 3] << 16) / 1073741824;\n          scale10 = (code[i + 4] << 24 | code[i + 5] << 16) / 1073741824;\n          scaleY = (code[i + 6] << 24 | code[i + 7] << 16) / 1073741824;\n          i += 8;\n        }\n\n        var subglyph = font.glyphs[glyphIndex];\n\n        if (subglyph) {\n          cmds.push({\n            cmd: 'save'\n          });\n          cmds.push({\n            cmd: 'transform',\n            args: [scaleX, scale01, scale10, scaleY, x, y]\n          });\n          compileGlyf(subglyph, cmds, font);\n          cmds.push({\n            cmd: 'restore'\n          });\n        }\n      } while (flags & 0x20);\n    } else {\n      var endPtsOfContours = [];\n      var j, jj;\n\n      for (j = 0; j < numberOfContours; j++) {\n        endPtsOfContours.push(code[i] << 8 | code[i + 1]);\n        i += 2;\n      }\n\n      var instructionLength = code[i] << 8 | code[i + 1];\n      i += 2 + instructionLength;\n      var numberOfPoints = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n      var points = [];\n\n      while (points.length < numberOfPoints) {\n        flags = code[i++];\n        var repeat = 1;\n\n        if (flags & 0x08) {\n          repeat += code[i++];\n        }\n\n        while (repeat-- > 0) {\n          points.push({\n            flags: flags\n          });\n        }\n      }\n\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x12) {\n          case 0x00:\n            x += (code[i] << 24 | code[i + 1] << 16) >> 16;\n            i += 2;\n            break;\n\n          case 0x02:\n            x -= code[i++];\n            break;\n\n          case 0x12:\n            x += code[i++];\n            break;\n        }\n\n        points[j].x = x;\n      }\n\n      for (j = 0; j < numberOfPoints; j++) {\n        switch (points[j].flags & 0x24) {\n          case 0x00:\n            y += (code[i] << 24 | code[i + 1] << 16) >> 16;\n            i += 2;\n            break;\n\n          case 0x04:\n            y -= code[i++];\n            break;\n\n          case 0x24:\n            y += code[i++];\n            break;\n        }\n\n        points[j].y = y;\n      }\n\n      var startPoint = 0;\n\n      for (i = 0; i < numberOfContours; i++) {\n        var endPoint = endPtsOfContours[i];\n        var contour = points.slice(startPoint, endPoint + 1);\n\n        if (contour[0].flags & 1) {\n          contour.push(contour[0]);\n        } else if (contour[contour.length - 1].flags & 1) {\n          contour.unshift(contour[contour.length - 1]);\n        } else {\n          var p = {\n            flags: 1,\n            x: (contour[0].x + contour[contour.length - 1].x) / 2,\n            y: (contour[0].y + contour[contour.length - 1].y) / 2\n          };\n          contour.unshift(p);\n          contour.push(p);\n        }\n\n        moveTo(contour[0].x, contour[0].y);\n\n        for (j = 1, jj = contour.length; j < jj; j++) {\n          if (contour[j].flags & 1) {\n            lineTo(contour[j].x, contour[j].y);\n          } else if (contour[j + 1].flags & 1) {\n            quadraticCurveTo(contour[j].x, contour[j].y, contour[j + 1].x, contour[j + 1].y);\n            j++;\n          } else {\n            quadraticCurveTo(contour[j].x, contour[j].y, (contour[j].x + contour[j + 1].x) / 2, (contour[j].y + contour[j + 1].y) / 2);\n          }\n        }\n\n        startPoint = endPoint + 1;\n      }\n    }\n  }\n\n  function compileCharString(code, cmds, font, glyphId) {\n    var stack = [];\n    var x = 0,\n        y = 0;\n    var stems = 0;\n\n    function moveTo(x, y) {\n      cmds.push({\n        cmd: 'moveTo',\n        args: [x, y]\n      });\n    }\n\n    function lineTo(x, y) {\n      cmds.push({\n        cmd: 'lineTo',\n        args: [x, y]\n      });\n    }\n\n    function bezierCurveTo(x1, y1, x2, y2, x, y) {\n      cmds.push({\n        cmd: 'bezierCurveTo',\n        args: [x1, y1, x2, y2, x, y]\n      });\n    }\n\n    function parse(code) {\n      var i = 0;\n\n      while (i < code.length) {\n        var stackClean = false;\n        var v = code[i++];\n        var xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n\n        switch (v) {\n          case 1:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 3:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 4:\n            y += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 5:\n            while (stack.length > 0) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 6:\n            while (stack.length > 0) {\n              x += stack.shift();\n              lineTo(x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 7:\n            while (stack.length > 0) {\n              y += stack.shift();\n              lineTo(x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              x += stack.shift();\n              lineTo(x, y);\n            }\n\n            break;\n\n          case 8:\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 10:\n            n = stack.pop();\n            subrCode = null;\n\n            if (font.isCFFCIDFont) {\n              var fdIndex = font.fdSelect.getFDIndex(glyphId);\n\n              if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n                var fontDict = font.fdArray[fdIndex],\n                    subrs = void 0;\n\n                if (fontDict.privateDict && fontDict.privateDict.subrsIndex) {\n                  subrs = fontDict.privateDict.subrsIndex.objects;\n                }\n\n                if (subrs) {\n                  var numSubrs = subrs.length;\n                  n += numSubrs < 1240 ? 107 : numSubrs < 33900 ? 1131 : 32768;\n                  subrCode = subrs[n];\n                }\n              } else {\n                (0, _util.warn)('Invalid fd index for glyph index.');\n              }\n            } else {\n              subrCode = font.subrs[n + font.subrsBias];\n            }\n\n            if (subrCode) {\n              parse(subrCode);\n            }\n\n            break;\n\n          case 11:\n            return;\n\n          case 12:\n            v = code[i++];\n\n            switch (v) {\n              case 34:\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y1 = y + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y, xb, y1, x, y1);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y, x, y);\n                break;\n\n              case 35:\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                stack.pop();\n                break;\n\n              case 36:\n                xa = x + stack.shift();\n                y1 = y + stack.shift();\n                xb = xa + stack.shift();\n                y2 = y1 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y1, xb, y2, x, y2);\n                xa = x + stack.shift();\n                xb = xa + stack.shift();\n                y3 = y2 + stack.shift();\n                x = xb + stack.shift();\n                bezierCurveTo(xa, y2, xb, y3, x, y);\n                break;\n\n              case 37:\n                var x0 = x,\n                    y0 = y;\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb + stack.shift();\n                y = yb + stack.shift();\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                xa = x + stack.shift();\n                ya = y + stack.shift();\n                xb = xa + stack.shift();\n                yb = ya + stack.shift();\n                x = xb;\n                y = yb;\n\n                if (Math.abs(x - x0) > Math.abs(y - y0)) {\n                  x += stack.shift();\n                } else {\n                  y += stack.shift();\n                }\n\n                bezierCurveTo(xa, ya, xb, yb, x, y);\n                break;\n\n              default:\n                throw new _util.FormatError(\"unknown operator: 12 \".concat(v));\n            }\n\n            break;\n\n          case 14:\n            if (stack.length >= 4) {\n              var achar = stack.pop();\n              var bchar = stack.pop();\n              y = stack.pop();\n              x = stack.pop();\n              cmds.push({\n                cmd: 'save'\n              });\n              cmds.push({\n                cmd: 'translate',\n                args: [x, y]\n              });\n              var cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[achar]]));\n              compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n              cmds.push({\n                cmd: 'restore'\n              });\n              cmap = lookupCmap(font.cmap, String.fromCharCode(font.glyphNameMap[_encodings.StandardEncoding[bchar]]));\n              compileCharString(font.glyphs[cmap.glyphId], cmds, font, cmap.glyphId);\n            }\n\n            return;\n\n          case 18:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 19:\n            stems += stack.length >> 1;\n            i += stems + 7 >> 3;\n            stackClean = true;\n            break;\n\n          case 20:\n            stems += stack.length >> 1;\n            i += stems + 7 >> 3;\n            stackClean = true;\n            break;\n\n          case 21:\n            y += stack.pop();\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 22:\n            x += stack.pop();\n            moveTo(x, y);\n            stackClean = true;\n            break;\n\n          case 23:\n            stems += stack.length >> 1;\n            stackClean = true;\n            break;\n\n          case 24:\n            while (stack.length > 2) {\n              xa = x + stack.shift();\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            x += stack.shift();\n            y += stack.shift();\n            lineTo(x, y);\n            break;\n\n          case 25:\n            while (stack.length > 6) {\n              x += stack.shift();\n              y += stack.shift();\n              lineTo(x, y);\n            }\n\n            xa = x + stack.shift();\n            ya = y + stack.shift();\n            xb = xa + stack.shift();\n            yb = ya + stack.shift();\n            x = xb + stack.shift();\n            y = yb + stack.shift();\n            bezierCurveTo(xa, ya, xb, yb, x, y);\n            break;\n\n          case 26:\n            if (stack.length % 2) {\n              x += stack.shift();\n            }\n\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb;\n              y = yb + stack.shift();\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 27:\n            if (stack.length % 2) {\n              y += stack.shift();\n            }\n\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb;\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 28:\n            stack.push((code[i] << 24 | code[i + 1] << 16) >> 16);\n            i += 2;\n            break;\n\n          case 29:\n            n = stack.pop() + font.gsubrsBias;\n            subrCode = font.gsubrs[n];\n\n            if (subrCode) {\n              parse(subrCode);\n            }\n\n            break;\n\n          case 30:\n            while (stack.length > 0) {\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          case 31:\n            while (stack.length > 0) {\n              xa = x + stack.shift();\n              ya = y;\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              y = yb + stack.shift();\n              x = xb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n\n              if (stack.length === 0) {\n                break;\n              }\n\n              xa = x;\n              ya = y + stack.shift();\n              xb = xa + stack.shift();\n              yb = ya + stack.shift();\n              x = xb + stack.shift();\n              y = yb + (stack.length === 1 ? stack.shift() : 0);\n              bezierCurveTo(xa, ya, xb, yb, x, y);\n            }\n\n            break;\n\n          default:\n            if (v < 32) {\n              throw new _util.FormatError(\"unknown operator: \".concat(v));\n            }\n\n            if (v < 247) {\n              stack.push(v - 139);\n            } else if (v < 251) {\n              stack.push((v - 247) * 256 + code[i++] + 108);\n            } else if (v < 255) {\n              stack.push(-(v - 251) * 256 - code[i++] - 108);\n            } else {\n              stack.push((code[i] << 24 | code[i + 1] << 16 | code[i + 2] << 8 | code[i + 3]) / 65536);\n              i += 4;\n            }\n\n            break;\n        }\n\n        if (stackClean) {\n          stack.length = 0;\n        }\n      }\n    }\n\n    parse(code);\n  }\n\n  var NOOP = [];\n\n  var CompiledFont =\n  /*#__PURE__*/\n  function () {\n    function CompiledFont(fontMatrix) {\n      _classCallCheck(this, CompiledFont);\n\n      if (this.constructor === CompiledFont) {\n        (0, _util.unreachable)('Cannot initialize CompiledFont.');\n      }\n\n      this.fontMatrix = fontMatrix;\n      this.compiledGlyphs = Object.create(null);\n      this.compiledCharCodeToGlyphId = Object.create(null);\n    }\n\n    _createClass(CompiledFont, [{\n      key: \"getPathJs\",\n      value: function getPathJs(unicode) {\n        var cmap = lookupCmap(this.cmap, unicode);\n        var fn = this.compiledGlyphs[cmap.glyphId];\n\n        if (!fn) {\n          fn = this.compileGlyph(this.glyphs[cmap.glyphId], cmap.glyphId);\n          this.compiledGlyphs[cmap.glyphId] = fn;\n        }\n\n        if (this.compiledCharCodeToGlyphId[cmap.charCode] === undefined) {\n          this.compiledCharCodeToGlyphId[cmap.charCode] = cmap.glyphId;\n        }\n\n        return fn;\n      }\n    }, {\n      key: \"compileGlyph\",\n      value: function compileGlyph(code, glyphId) {\n        if (!code || code.length === 0 || code[0] === 14) {\n          return NOOP;\n        }\n\n        var fontMatrix = this.fontMatrix;\n\n        if (this.isCFFCIDFont) {\n          var fdIndex = this.fdSelect.getFDIndex(glyphId);\n\n          if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n            var fontDict = this.fdArray[fdIndex];\n            fontMatrix = fontDict.getByName('FontMatrix') || _util.FONT_IDENTITY_MATRIX;\n          } else {\n            (0, _util.warn)('Invalid fd index for glyph index.');\n          }\n        }\n\n        var cmds = [];\n        cmds.push({\n          cmd: 'save'\n        });\n        cmds.push({\n          cmd: 'transform',\n          args: fontMatrix.slice()\n        });\n        cmds.push({\n          cmd: 'scale',\n          args: ['size', '-size']\n        });\n        this.compileGlyphImpl(code, cmds, glyphId);\n        cmds.push({\n          cmd: 'restore'\n        });\n        return cmds;\n      }\n    }, {\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl() {\n        (0, _util.unreachable)('Children classes should implement this.');\n      }\n    }, {\n      key: \"hasBuiltPath\",\n      value: function hasBuiltPath(unicode) {\n        var cmap = lookupCmap(this.cmap, unicode);\n        return this.compiledGlyphs[cmap.glyphId] !== undefined && this.compiledCharCodeToGlyphId[cmap.charCode] !== undefined;\n      }\n    }]);\n\n    return CompiledFont;\n  }();\n\n  var TrueTypeCompiled =\n  /*#__PURE__*/\n  function (_CompiledFont) {\n    _inherits(TrueTypeCompiled, _CompiledFont);\n\n    function TrueTypeCompiled(glyphs, cmap, fontMatrix) {\n      var _this;\n\n      _classCallCheck(this, TrueTypeCompiled);\n\n      _this = _possibleConstructorReturn(this, _getPrototypeOf(TrueTypeCompiled).call(this, fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]));\n      _this.glyphs = glyphs;\n      _this.cmap = cmap;\n      return _this;\n    }\n\n    _createClass(TrueTypeCompiled, [{\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl(code, cmds) {\n        compileGlyf(code, cmds, this);\n      }\n    }]);\n\n    return TrueTypeCompiled;\n  }(CompiledFont);\n\n  var Type2Compiled =\n  /*#__PURE__*/\n  function (_CompiledFont2) {\n    _inherits(Type2Compiled, _CompiledFont2);\n\n    function Type2Compiled(cffInfo, cmap, fontMatrix, glyphNameMap) {\n      var _this2;\n\n      _classCallCheck(this, Type2Compiled);\n\n      _this2 = _possibleConstructorReturn(this, _getPrototypeOf(Type2Compiled).call(this, fontMatrix || [0.001, 0, 0, 0.001, 0, 0]));\n      _this2.glyphs = cffInfo.glyphs;\n      _this2.gsubrs = cffInfo.gsubrs || [];\n      _this2.subrs = cffInfo.subrs || [];\n      _this2.cmap = cmap;\n      _this2.glyphNameMap = glyphNameMap || (0, _glyphlist.getGlyphsUnicode)();\n      _this2.gsubrsBias = _this2.gsubrs.length < 1240 ? 107 : _this2.gsubrs.length < 33900 ? 1131 : 32768;\n      _this2.subrsBias = _this2.subrs.length < 1240 ? 107 : _this2.subrs.length < 33900 ? 1131 : 32768;\n      _this2.isCFFCIDFont = cffInfo.isCFFCIDFont;\n      _this2.fdSelect = cffInfo.fdSelect;\n      _this2.fdArray = cffInfo.fdArray;\n      return _this2;\n    }\n\n    _createClass(Type2Compiled, [{\n      key: \"compileGlyphImpl\",\n      value: function compileGlyphImpl(code, cmds, glyphId) {\n        compileCharString(code, cmds, this, glyphId);\n      }\n    }]);\n\n    return Type2Compiled;\n  }(CompiledFont);\n\n  return {\n    create: function FontRendererFactory_create(font, seacAnalysisEnabled) {\n      var data = new Uint8Array(font.data);\n      var cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n      var numTables = getUshort(data, 4);\n\n      for (var i = 0, p = 12; i < numTables; i++, p += 16) {\n        var tag = (0, _util.bytesToString)(data.subarray(p, p + 4));\n        var offset = getLong(data, p + 8);\n        var length = getLong(data, p + 12);\n\n        switch (tag) {\n          case 'cmap':\n            cmap = parseCmap(data, offset, offset + length);\n            break;\n\n          case 'glyf':\n            glyf = data.subarray(offset, offset + length);\n            break;\n\n          case 'loca':\n            loca = data.subarray(offset, offset + length);\n            break;\n\n          case 'head':\n            unitsPerEm = getUshort(data, offset + 18);\n            indexToLocFormat = getUshort(data, offset + 50);\n            break;\n\n          case 'CFF ':\n            cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n            break;\n        }\n      }\n\n      if (glyf) {\n        var fontMatrix = !unitsPerEm ? font.fontMatrix : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n        return new TrueTypeCompiled(parseGlyfTable(glyf, loca, indexToLocFormat), cmap, fontMatrix);\n      }\n\n      return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n    }\n  };\n}();\n\nexports.FontRendererFactory = FontRendererFactory;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Type1Parser = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _encodings = __w_pdfjs_require__(176);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar HINTING_ENABLED = false;\n\nvar Type1CharString = function Type1CharStringClosure() {\n  var COMMAND_MAP = {\n    'hstem': [1],\n    'vstem': [3],\n    'vmoveto': [4],\n    'rlineto': [5],\n    'hlineto': [6],\n    'vlineto': [7],\n    'rrcurveto': [8],\n    'callsubr': [10],\n    'flex': [12, 35],\n    'drop': [12, 18],\n    'endchar': [14],\n    'rmoveto': [21],\n    'hmoveto': [22],\n    'vhcurveto': [30],\n    'hvcurveto': [31]\n  };\n\n  function Type1CharString() {\n    this.width = 0;\n    this.lsb = 0;\n    this.flexing = false;\n    this.output = [];\n    this.stack = [];\n  }\n\n  Type1CharString.prototype = {\n    convert: function Type1CharString_convert(encoded, subrs, seacAnalysisEnabled) {\n      var count = encoded.length;\n      var error = false;\n      var wx, sbx, subrNumber;\n\n      for (var i = 0; i < count; i++) {\n        var value = encoded[i];\n\n        if (value < 32) {\n          if (value === 12) {\n            value = (value << 8) + encoded[++i];\n          }\n\n          switch (value) {\n            case 1:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n\n            case 3:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n\n            case 4:\n              if (this.flexing) {\n                if (this.stack.length < 1) {\n                  error = true;\n                  break;\n                }\n\n                var dy = this.stack.pop();\n                this.stack.push(0, dy);\n                break;\n              }\n\n              error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n              break;\n\n            case 5:\n              error = this.executeCommand(2, COMMAND_MAP.rlineto);\n              break;\n\n            case 6:\n              error = this.executeCommand(1, COMMAND_MAP.hlineto);\n              break;\n\n            case 7:\n              error = this.executeCommand(1, COMMAND_MAP.vlineto);\n              break;\n\n            case 8:\n              error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n              break;\n\n            case 9:\n              this.stack = [];\n              break;\n\n            case 10:\n              if (this.stack.length < 1) {\n                error = true;\n                break;\n              }\n\n              subrNumber = this.stack.pop();\n\n              if (!subrs[subrNumber]) {\n                error = true;\n                break;\n              }\n\n              error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n              break;\n\n            case 11:\n              return error;\n\n            case 13:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              wx = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx);\n              error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n              break;\n\n            case 14:\n              this.output.push(COMMAND_MAP.endchar[0]);\n              break;\n\n            case 21:\n              if (this.flexing) {\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n              break;\n\n            case 22:\n              if (this.flexing) {\n                this.stack.push(0);\n                break;\n              }\n\n              error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n              break;\n\n            case 30:\n              error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n              break;\n\n            case 31:\n              error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n              break;\n\n            case (12 << 8) + 0:\n              this.stack = [];\n              break;\n\n            case (12 << 8) + 1:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.vstem);\n              break;\n\n            case (12 << 8) + 2:\n              if (!HINTING_ENABLED) {\n                this.stack = [];\n                break;\n              }\n\n              error = this.executeCommand(2, COMMAND_MAP.hstem);\n              break;\n\n            case (12 << 8) + 6:\n              if (seacAnalysisEnabled) {\n                this.seac = this.stack.splice(-4, 4);\n                error = this.executeCommand(0, COMMAND_MAP.endchar);\n              } else {\n                error = this.executeCommand(4, COMMAND_MAP.endchar);\n              }\n\n              break;\n\n            case (12 << 8) + 7:\n              if (this.stack.length < 4) {\n                error = true;\n                break;\n              }\n\n              this.stack.pop();\n              wx = this.stack.pop();\n              var sby = this.stack.pop();\n              sbx = this.stack.pop();\n              this.lsb = sbx;\n              this.width = wx;\n              this.stack.push(wx, sbx, sby);\n              error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n              break;\n\n            case (12 << 8) + 12:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              var num2 = this.stack.pop();\n              var num1 = this.stack.pop();\n              this.stack.push(num1 / num2);\n              break;\n\n            case (12 << 8) + 16:\n              if (this.stack.length < 2) {\n                error = true;\n                break;\n              }\n\n              subrNumber = this.stack.pop();\n              var numArgs = this.stack.pop();\n\n              if (subrNumber === 0 && numArgs === 3) {\n                var flexArgs = this.stack.splice(this.stack.length - 17, 17);\n                this.stack.push(flexArgs[2] + flexArgs[0], flexArgs[3] + flexArgs[1], flexArgs[4], flexArgs[5], flexArgs[6], flexArgs[7], flexArgs[8], flexArgs[9], flexArgs[10], flexArgs[11], flexArgs[12], flexArgs[13], flexArgs[14]);\n                error = this.executeCommand(13, COMMAND_MAP.flex, true);\n                this.flexing = false;\n                this.stack.push(flexArgs[15], flexArgs[16]);\n              } else if (subrNumber === 1 && numArgs === 0) {\n                this.flexing = true;\n              }\n\n              break;\n\n            case (12 << 8) + 17:\n              break;\n\n            case (12 << 8) + 33:\n              this.stack = [];\n              break;\n\n            default:\n              (0, _util.warn)('Unknown type 1 charstring command of \"' + value + '\"');\n              break;\n          }\n\n          if (error) {\n            break;\n          }\n\n          continue;\n        } else if (value <= 246) {\n          value = value - 139;\n        } else if (value <= 250) {\n          value = (value - 247) * 256 + encoded[++i] + 108;\n        } else if (value <= 254) {\n          value = -((value - 251) * 256) - encoded[++i] - 108;\n        } else {\n          value = (encoded[++i] & 0xff) << 24 | (encoded[++i] & 0xff) << 16 | (encoded[++i] & 0xff) << 8 | (encoded[++i] & 0xff) << 0;\n        }\n\n        this.stack.push(value);\n      }\n\n      return error;\n    },\n    executeCommand: function executeCommand(howManyArgs, command, keepStack) {\n      var stackLength = this.stack.length;\n\n      if (howManyArgs > stackLength) {\n        return true;\n      }\n\n      var start = stackLength - howManyArgs;\n\n      for (var i = start; i < stackLength; i++) {\n        var value = this.stack[i];\n\n        if (Number.isInteger(value)) {\n          this.output.push(28, value >> 8 & 0xff, value & 0xff);\n        } else {\n          value = 65536 * value | 0;\n          this.output.push(255, value >> 24 & 0xFF, value >> 16 & 0xFF, value >> 8 & 0xFF, value & 0xFF);\n        }\n      }\n\n      this.output.push.apply(this.output, command);\n\n      if (keepStack) {\n        this.stack.splice(start, howManyArgs);\n      } else {\n        this.stack.length = 0;\n      }\n\n      return false;\n    }\n  };\n  return Type1CharString;\n}();\n\nvar Type1Parser = function Type1ParserClosure() {\n  var EEXEC_ENCRYPT_KEY = 55665;\n  var CHAR_STRS_ENCRYPT_KEY = 4330;\n\n  function isHexDigit(code) {\n    return code >= 48 && code <= 57 || code >= 65 && code <= 70 || code >= 97 && code <= 102;\n  }\n\n  function decrypt(data, key, discardNumber) {\n    if (discardNumber >= data.length) {\n      return new Uint8Array(0);\n    }\n\n    var r = key | 0,\n        c1 = 52845,\n        c2 = 22719,\n        i,\n        j;\n\n    for (i = 0; i < discardNumber; i++) {\n      r = (data[i] + r) * c1 + c2 & (1 << 16) - 1;\n    }\n\n    var count = data.length - discardNumber;\n    var decrypted = new Uint8Array(count);\n\n    for (i = discardNumber, j = 0; j < count; i++, j++) {\n      var value = data[i];\n      decrypted[j] = value ^ r >> 8;\n      r = (value + r) * c1 + c2 & (1 << 16) - 1;\n    }\n\n    return decrypted;\n  }\n\n  function decryptAscii(data, key, discardNumber) {\n    var r = key | 0,\n        c1 = 52845,\n        c2 = 22719;\n    var count = data.length,\n        maybeLength = count >>> 1;\n    var decrypted = new Uint8Array(maybeLength);\n    var i, j;\n\n    for (i = 0, j = 0; i < count; i++) {\n      var digit1 = data[i];\n\n      if (!isHexDigit(digit1)) {\n        continue;\n      }\n\n      i++;\n      var digit2;\n\n      while (i < count && !isHexDigit(digit2 = data[i])) {\n        i++;\n      }\n\n      if (i < count) {\n        var value = parseInt(String.fromCharCode(digit1, digit2), 16);\n        decrypted[j++] = value ^ r >> 8;\n        r = (value + r) * c1 + c2 & (1 << 16) - 1;\n      }\n    }\n\n    return Array.prototype.slice.call(decrypted, discardNumber, j);\n  }\n\n  function isSpecial(c) {\n    return c === 0x2F || c === 0x5B || c === 0x5D || c === 0x7B || c === 0x7D || c === 0x28 || c === 0x29;\n  }\n\n  function Type1Parser(stream, encrypted, seacAnalysisEnabled) {\n    if (encrypted) {\n      var data = stream.getBytes();\n      var isBinary = !(isHexDigit(data[0]) && isHexDigit(data[1]) && isHexDigit(data[2]) && isHexDigit(data[3]));\n      stream = new _stream.Stream(isBinary ? decrypt(data, EEXEC_ENCRYPT_KEY, 4) : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4));\n    }\n\n    this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n    this.stream = stream;\n    this.nextChar();\n  }\n\n  Type1Parser.prototype = {\n    readNumberArray: function Type1Parser_readNumberArray() {\n      this.getToken();\n      var array = [];\n\n      while (true) {\n        var token = this.getToken();\n\n        if (token === null || token === ']' || token === '}') {\n          break;\n        }\n\n        array.push(parseFloat(token || 0));\n      }\n\n      return array;\n    },\n    readNumber: function Type1Parser_readNumber() {\n      var token = this.getToken();\n      return parseFloat(token || 0);\n    },\n    readInt: function Type1Parser_readInt() {\n      var token = this.getToken();\n      return parseInt(token || 0, 10) | 0;\n    },\n    readBoolean: function Type1Parser_readBoolean() {\n      var token = this.getToken();\n      return token === 'true' ? 1 : 0;\n    },\n    nextChar: function Type1_nextChar() {\n      return this.currentChar = this.stream.getByte();\n    },\n    getToken: function Type1Parser_getToken() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch === -1) {\n          return null;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (!(0, _util.isSpace)(ch)) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      if (isSpecial(ch)) {\n        this.nextChar();\n        return String.fromCharCode(ch);\n      }\n\n      var token = '';\n\n      do {\n        token += String.fromCharCode(ch);\n        ch = this.nextChar();\n      } while (ch >= 0 && !(0, _util.isSpace)(ch) && !isSpecial(ch));\n\n      return token;\n    },\n    readCharStrings: function Type1Parser_readCharStrings(bytes, lenIV) {\n      if (lenIV === -1) {\n        return bytes;\n      }\n\n      return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n    },\n    extractFontProgram: function Type1Parser_extractFontProgram() {\n      var stream = this.stream;\n      var subrs = [],\n          charstrings = [];\n      var privateData = Object.create(null);\n      privateData['lenIV'] = 4;\n      var program = {\n        subrs: [],\n        charstrings: [],\n        properties: {\n          'privateData': privateData\n        }\n      };\n      var token, length, data, lenIV, encoded;\n\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n\n        token = this.getToken();\n\n        switch (token) {\n          case 'CharStrings':\n            this.getToken();\n            this.getToken();\n            this.getToken();\n            this.getToken();\n\n            while (true) {\n              token = this.getToken();\n\n              if (token === null || token === 'end') {\n                break;\n              }\n\n              if (token !== '/') {\n                continue;\n              }\n\n              var glyph = this.getToken();\n              length = this.readInt();\n              this.getToken();\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData['lenIV'];\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken();\n\n              if (token === 'noaccess') {\n                this.getToken();\n              }\n\n              charstrings.push({\n                glyph: glyph,\n                encoded: encoded\n              });\n            }\n\n            break;\n\n          case 'Subrs':\n            this.readInt();\n            this.getToken();\n\n            while (this.getToken() === 'dup') {\n              var index = this.readInt();\n              length = this.readInt();\n              this.getToken();\n              data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n              lenIV = program.properties.privateData['lenIV'];\n              encoded = this.readCharStrings(data, lenIV);\n              this.nextChar();\n              token = this.getToken();\n\n              if (token === 'noaccess') {\n                this.getToken();\n              }\n\n              subrs[index] = encoded;\n            }\n\n            break;\n\n          case 'BlueValues':\n          case 'OtherBlues':\n          case 'FamilyBlues':\n          case 'FamilyOtherBlues':\n            var blueArray = this.readNumberArray();\n\n            if (blueArray.length > 0 && blueArray.length % 2 === 0 && HINTING_ENABLED) {\n              program.properties.privateData[token] = blueArray;\n            }\n\n            break;\n\n          case 'StemSnapH':\n          case 'StemSnapV':\n            program.properties.privateData[token] = this.readNumberArray();\n            break;\n\n          case 'StdHW':\n          case 'StdVW':\n            program.properties.privateData[token] = this.readNumberArray()[0];\n            break;\n\n          case 'BlueShift':\n          case 'lenIV':\n          case 'BlueFuzz':\n          case 'BlueScale':\n          case 'LanguageGroup':\n          case 'ExpansionFactor':\n            program.properties.privateData[token] = this.readNumber();\n            break;\n\n          case 'ForceBold':\n            program.properties.privateData[token] = this.readBoolean();\n            break;\n        }\n      }\n\n      for (var i = 0; i < charstrings.length; i++) {\n        glyph = charstrings[i].glyph;\n        encoded = charstrings[i].encoded;\n        var charString = new Type1CharString();\n        var error = charString.convert(encoded, subrs, this.seacAnalysisEnabled);\n        var output = charString.output;\n\n        if (error) {\n          output = [14];\n        }\n\n        program.charstrings.push({\n          glyphName: glyph,\n          charstring: output,\n          width: charString.width,\n          lsb: charString.lsb,\n          seac: charString.seac\n        });\n      }\n\n      return program;\n    },\n    extractFontHeader: function Type1Parser_extractFontHeader(properties) {\n      var token;\n\n      while ((token = this.getToken()) !== null) {\n        if (token !== '/') {\n          continue;\n        }\n\n        token = this.getToken();\n\n        switch (token) {\n          case 'FontMatrix':\n            var matrix = this.readNumberArray();\n            properties.fontMatrix = matrix;\n            break;\n\n          case 'Encoding':\n            var encodingArg = this.getToken();\n            var encoding;\n\n            if (!/^\\d+$/.test(encodingArg)) {\n              encoding = (0, _encodings.getEncoding)(encodingArg);\n            } else {\n              encoding = [];\n              var size = parseInt(encodingArg, 10) | 0;\n              this.getToken();\n\n              for (var j = 0; j < size; j++) {\n                token = this.getToken();\n\n                while (token !== 'dup' && token !== 'def') {\n                  token = this.getToken();\n\n                  if (token === null) {\n                    return;\n                  }\n                }\n\n                if (token === 'def') {\n                  break;\n                }\n\n                var index = this.readInt();\n                this.getToken();\n                var glyph = this.getToken();\n                encoding[index] = glyph;\n                this.getToken();\n              }\n            }\n\n            properties.builtInEncoding = encoding;\n            break;\n\n          case 'FontBBox':\n            var fontBBox = this.readNumberArray();\n            properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n            properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n            properties.ascentScaled = true;\n            break;\n        }\n      }\n    }\n  };\n  return Type1Parser;\n}();\n\nexports.Type1Parser = Type1Parser;\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getTilingPatternIR = getTilingPatternIR;\nexports.Pattern = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar ShadingType = {\n  FUNCTION_BASED: 1,\n  AXIAL: 2,\n  RADIAL: 3,\n  FREE_FORM_MESH: 4,\n  LATTICE_FORM_MESH: 5,\n  COONS_PATCH_MESH: 6,\n  TENSOR_PATCH_MESH: 7\n};\n\nvar Pattern = function PatternClosure() {\n  function Pattern() {\n    (0, _util.unreachable)('should not call Pattern constructor');\n  }\n\n  Pattern.prototype = {\n    getPattern: function Pattern_getPattern(ctx) {\n      (0, _util.unreachable)(\"Should not call Pattern.getStyle: \".concat(ctx));\n    }\n  };\n\n  Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {\n    var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;\n    var type = dict.get('ShadingType');\n\n    try {\n      switch (type) {\n        case ShadingType.AXIAL:\n        case ShadingType.RADIAL:\n          return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);\n\n        case ShadingType.FREE_FORM_MESH:\n        case ShadingType.LATTICE_FORM_MESH:\n        case ShadingType.COONS_PATCH_MESH:\n        case ShadingType.TENSOR_PATCH_MESH:\n          return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory);\n\n        default:\n          throw new _util.FormatError('Unsupported ShadingType: ' + type);\n      }\n    } catch (ex) {\n      if (ex instanceof _util.MissingDataException) {\n        throw ex;\n      }\n\n      handler.send('UnsupportedFeature', {\n        featureId: _util.UNSUPPORTED_FEATURES.shadingPattern\n      });\n      (0, _util.warn)(ex);\n      return new Shadings.Dummy();\n    }\n  };\n\n  return Pattern;\n}();\n\nexports.Pattern = Pattern;\nvar Shadings = {};\nShadings.SMALL_NUMBER = 1e-6;\n\nShadings.RadialAxial = function RadialAxialClosure() {\n  function RadialAxial(dict, matrix, xref, res, pdfFunctionFactory) {\n    this.matrix = matrix;\n    this.coordsArr = dict.getArray('Coords');\n    this.shadingType = dict.get('ShadingType');\n    this.type = 'Pattern';\n    var cs = dict.get('ColorSpace', 'CS');\n    cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    var t0 = 0.0,\n        t1 = 1.0;\n\n    if (dict.has('Domain')) {\n      var domainArr = dict.getArray('Domain');\n      t0 = domainArr[0];\n      t1 = domainArr[1];\n    }\n\n    var extendStart = false,\n        extendEnd = false;\n\n    if (dict.has('Extend')) {\n      var extendArr = dict.getArray('Extend');\n      extendStart = extendArr[0];\n      extendEnd = extendArr[1];\n    }\n\n    if (this.shadingType === ShadingType.RADIAL && (!extendStart || !extendEnd)) {\n      var x1 = this.coordsArr[0];\n      var y1 = this.coordsArr[1];\n      var r1 = this.coordsArr[2];\n      var x2 = this.coordsArr[3];\n      var y2 = this.coordsArr[4];\n      var r2 = this.coordsArr[5];\n      var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));\n\n      if (r1 <= r2 + distance && r2 <= r1 + distance) {\n        (0, _util.warn)('Unsupported radial gradient.');\n      }\n    }\n\n    this.extendStart = extendStart;\n    this.extendEnd = extendEnd;\n    var fnObj = dict.get('Function');\n    var fn = pdfFunctionFactory.createFromArray(fnObj);\n    var diff = t1 - t0;\n    var step = diff / 10;\n    var colorStops = this.colorStops = [];\n\n    if (t0 >= t1 || step <= 0) {\n      (0, _util.info)('Bad shading domain.');\n      return;\n    }\n\n    var color = new Float32Array(cs.numComps),\n        ratio = new Float32Array(1);\n    var rgbColor;\n\n    for (var i = t0; i <= t1; i += step) {\n      ratio[0] = i;\n      fn(ratio, 0, color, 0);\n      rgbColor = cs.getRgb(color, 0);\n\n      var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n\n      colorStops.push([(i - t0) / diff, cssColor]);\n    }\n\n    var background = 'transparent';\n\n    if (dict.has('Background')) {\n      rgbColor = cs.getRgb(dict.get('Background'), 0);\n      background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);\n    }\n\n    if (!extendStart) {\n      colorStops.unshift([0, background]);\n      colorStops[1][0] += Shadings.SMALL_NUMBER;\n    }\n\n    if (!extendEnd) {\n      colorStops[colorStops.length - 1][0] -= Shadings.SMALL_NUMBER;\n      colorStops.push([1, background]);\n    }\n\n    this.colorStops = colorStops;\n  }\n\n  RadialAxial.prototype = {\n    getIR: function RadialAxial_getIR() {\n      var coordsArr = this.coordsArr;\n      var shadingType = this.shadingType;\n      var type, p0, p1, r0, r1;\n\n      if (shadingType === ShadingType.AXIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[2], coordsArr[3]];\n        r0 = null;\n        r1 = null;\n        type = 'axial';\n      } else if (shadingType === ShadingType.RADIAL) {\n        p0 = [coordsArr[0], coordsArr[1]];\n        p1 = [coordsArr[3], coordsArr[4]];\n        r0 = coordsArr[2];\n        r1 = coordsArr[5];\n        type = 'radial';\n      } else {\n        (0, _util.unreachable)(\"getPattern type unknown: \".concat(shadingType));\n      }\n\n      var matrix = this.matrix;\n\n      if (matrix) {\n        p0 = _util.Util.applyTransform(p0, matrix);\n        p1 = _util.Util.applyTransform(p1, matrix);\n\n        if (shadingType === ShadingType.RADIAL) {\n          var scale = _util.Util.singularValueDecompose2dScale(matrix);\n\n          r0 *= scale[0];\n          r1 *= scale[1];\n        }\n      }\n\n      return ['RadialAxial', type, this.colorStops, p0, p1, r0, r1];\n    }\n  };\n  return RadialAxial;\n}();\n\nShadings.Mesh = function MeshClosure() {\n  function MeshStreamReader(stream, context) {\n    this.stream = stream;\n    this.context = context;\n    this.buffer = 0;\n    this.bufferLength = 0;\n    var numComps = context.numComps;\n    this.tmpCompsBuf = new Float32Array(numComps);\n    var csNumComps = context.colorSpace.numComps;\n    this.tmpCsCompsBuf = context.colorFn ? new Float32Array(csNumComps) : this.tmpCompsBuf;\n  }\n\n  MeshStreamReader.prototype = {\n    get hasData() {\n      if (this.stream.end) {\n        return this.stream.pos < this.stream.end;\n      }\n\n      if (this.bufferLength > 0) {\n        return true;\n      }\n\n      var nextByte = this.stream.getByte();\n\n      if (nextByte < 0) {\n        return false;\n      }\n\n      this.buffer = nextByte;\n      this.bufferLength = 8;\n      return true;\n    },\n\n    readBits: function MeshStreamReader_readBits(n) {\n      var buffer = this.buffer;\n      var bufferLength = this.bufferLength;\n\n      if (n === 32) {\n        if (bufferLength === 0) {\n          return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0;\n        }\n\n        buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();\n        var nextByte = this.stream.getByte();\n        this.buffer = nextByte & (1 << bufferLength) - 1;\n        return (buffer << 8 - bufferLength | (nextByte & 0xFF) >> bufferLength) >>> 0;\n      }\n\n      if (n === 8 && bufferLength === 0) {\n        return this.stream.getByte();\n      }\n\n      while (bufferLength < n) {\n        buffer = buffer << 8 | this.stream.getByte();\n        bufferLength += 8;\n      }\n\n      bufferLength -= n;\n      this.bufferLength = bufferLength;\n      this.buffer = buffer & (1 << bufferLength) - 1;\n      return buffer >> bufferLength;\n    },\n    align: function MeshStreamReader_align() {\n      this.buffer = 0;\n      this.bufferLength = 0;\n    },\n    readFlag: function MeshStreamReader_readFlag() {\n      return this.readBits(this.context.bitsPerFlag);\n    },\n    readCoordinate: function MeshStreamReader_readCoordinate() {\n      var bitsPerCoordinate = this.context.bitsPerCoordinate;\n      var xi = this.readBits(bitsPerCoordinate);\n      var yi = this.readBits(bitsPerCoordinate);\n      var decode = this.context.decode;\n      var scale = bitsPerCoordinate < 32 ? 1 / ((1 << bitsPerCoordinate) - 1) : 2.3283064365386963e-10;\n      return [xi * scale * (decode[1] - decode[0]) + decode[0], yi * scale * (decode[3] - decode[2]) + decode[2]];\n    },\n    readComponents: function MeshStreamReader_readComponents() {\n      var numComps = this.context.numComps;\n      var bitsPerComponent = this.context.bitsPerComponent;\n      var scale = bitsPerComponent < 32 ? 1 / ((1 << bitsPerComponent) - 1) : 2.3283064365386963e-10;\n      var decode = this.context.decode;\n      var components = this.tmpCompsBuf;\n\n      for (var i = 0, j = 4; i < numComps; i++, j += 2) {\n        var ci = this.readBits(bitsPerComponent);\n        components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n      }\n\n      var color = this.tmpCsCompsBuf;\n\n      if (this.context.colorFn) {\n        this.context.colorFn(components, 0, color, 0);\n      }\n\n      return this.context.colorSpace.getRgb(color, 0);\n    }\n  };\n\n  function decodeType4Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var operators = [];\n    var ps = [];\n    var verticesLeft = 0;\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n\n      if (verticesLeft === 0) {\n        if (!(0 <= f && f <= 2)) {\n          throw new _util.FormatError('Unknown type4 flag');\n        }\n\n        switch (f) {\n          case 0:\n            verticesLeft = 3;\n            break;\n\n          case 1:\n            ps.push(ps[ps.length - 2], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n\n          case 2:\n            ps.push(ps[ps.length - 3], ps[ps.length - 1]);\n            verticesLeft = 1;\n            break;\n        }\n\n        operators.push(f);\n      }\n\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n      verticesLeft--;\n      reader.align();\n    }\n\n    mesh.figures.push({\n      type: 'triangles',\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps)\n    });\n  }\n\n  function decodeType5Shading(mesh, reader, verticesPerRow) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = [];\n\n    while (reader.hasData) {\n      var coord = reader.readCoordinate();\n      var color = reader.readComponents();\n      ps.push(coords.length);\n      coords.push(coord);\n      colors.push(color);\n    }\n\n    mesh.figures.push({\n      type: 'lattice',\n      coords: new Int32Array(ps),\n      colors: new Int32Array(ps),\n      verticesPerRow: verticesPerRow\n    });\n  }\n\n  var MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n  var MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n  var TRIANGLE_DENSITY = 20;\n\n  var getB = function getBClosure() {\n    function buildB(count) {\n      var lut = [];\n\n      for (var i = 0; i <= count; i++) {\n        var t = i / count,\n            t_ = 1 - t;\n        lut.push(new Float32Array([t_ * t_ * t_, 3 * t * t_ * t_, 3 * t * t * t_, t * t * t]));\n      }\n\n      return lut;\n    }\n\n    var cache = [];\n    return function getB(count) {\n      if (!cache[count]) {\n        cache[count] = buildB(count);\n      }\n\n      return cache[count];\n    };\n  }();\n\n  function buildFigureFromPatch(mesh, index) {\n    var figure = mesh.figures[index];\n    (0, _util.assert)(figure.type === 'patch', 'Unexpected patch mesh figure');\n    var coords = mesh.coords,\n        colors = mesh.colors;\n    var pi = figure.coords;\n    var ci = figure.colors;\n    var figureMinX = Math.min(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    var figureMinY = Math.min(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    var figureMaxX = Math.max(coords[pi[0]][0], coords[pi[3]][0], coords[pi[12]][0], coords[pi[15]][0]);\n    var figureMaxY = Math.max(coords[pi[0]][1], coords[pi[3]][1], coords[pi[12]][1], coords[pi[15]][1]);\n    var splitXBy = Math.ceil((figureMaxX - figureMinX) * TRIANGLE_DENSITY / (mesh.bounds[2] - mesh.bounds[0]));\n    splitXBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy));\n    var splitYBy = Math.ceil((figureMaxY - figureMinY) * TRIANGLE_DENSITY / (mesh.bounds[3] - mesh.bounds[1]));\n    splitYBy = Math.max(MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy));\n    var verticesPerRow = splitXBy + 1;\n    var figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n    var k = 0;\n    var cl = new Uint8Array(3),\n        cr = new Uint8Array(3);\n    var c0 = colors[ci[0]],\n        c1 = colors[ci[1]],\n        c2 = colors[ci[2]],\n        c3 = colors[ci[3]];\n    var bRow = getB(splitYBy),\n        bCol = getB(splitXBy);\n\n    for (var row = 0; row <= splitYBy; row++) {\n      cl[0] = (c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy | 0;\n      cl[1] = (c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy | 0;\n      cl[2] = (c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy | 0;\n      cr[0] = (c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy | 0;\n      cr[1] = (c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy | 0;\n      cr[2] = (c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy | 0;\n\n      for (var col = 0; col <= splitXBy; col++, k++) {\n        if ((row === 0 || row === splitYBy) && (col === 0 || col === splitXBy)) {\n          continue;\n        }\n\n        var x = 0,\n            y = 0;\n        var q = 0;\n\n        for (var i = 0; i <= 3; i++) {\n          for (var j = 0; j <= 3; j++, q++) {\n            var m = bRow[row][i] * bCol[col][j];\n            x += coords[pi[q]][0] * m;\n            y += coords[pi[q]][1] * m;\n          }\n        }\n\n        figureCoords[k] = coords.length;\n        coords.push([x, y]);\n        figureColors[k] = colors.length;\n        var newColor = new Uint8Array(3);\n        newColor[0] = (cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy | 0;\n        newColor[1] = (cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy | 0;\n        newColor[2] = (cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy | 0;\n        colors.push(newColor);\n      }\n    }\n\n    figureCoords[0] = pi[0];\n    figureColors[0] = ci[0];\n    figureCoords[splitXBy] = pi[3];\n    figureColors[splitXBy] = ci[1];\n    figureCoords[verticesPerRow * splitYBy] = pi[12];\n    figureColors[verticesPerRow * splitYBy] = ci[2];\n    figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n    figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n    mesh.figures[index] = {\n      type: 'lattice',\n      coords: figureCoords,\n      colors: figureColors,\n      verticesPerRow: verticesPerRow\n    };\n  }\n\n  function decodeType6Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16);\n    var cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError('Unknown type6 flag');\n      }\n\n      var i, ii;\n      var pi = coords.length;\n\n      for (i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      var ci = colors.length;\n\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      var tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      ps[5] = coords.length;\n      coords.push([(-4 * coords[ps[0]][0] - coords[ps[15]][0] + 6 * (coords[ps[4]][0] + coords[ps[1]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[13]][0] + coords[ps[7]][0])) / 9, (-4 * coords[ps[0]][1] - coords[ps[15]][1] + 6 * (coords[ps[4]][1] + coords[ps[1]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[13]][1] + coords[ps[7]][1])) / 9]);\n      ps[6] = coords.length;\n      coords.push([(-4 * coords[ps[3]][0] - coords[ps[12]][0] + 6 * (coords[ps[2]][0] + coords[ps[7]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[4]][0] + coords[ps[14]][0])) / 9, (-4 * coords[ps[3]][1] - coords[ps[12]][1] + 6 * (coords[ps[2]][1] + coords[ps[7]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[4]][1] + coords[ps[14]][1])) / 9]);\n      ps[9] = coords.length;\n      coords.push([(-4 * coords[ps[12]][0] - coords[ps[3]][0] + 6 * (coords[ps[8]][0] + coords[ps[13]][0]) - 2 * (coords[ps[0]][0] + coords[ps[15]][0]) + 3 * (coords[ps[11]][0] + coords[ps[1]][0])) / 9, (-4 * coords[ps[12]][1] - coords[ps[3]][1] + 6 * (coords[ps[8]][1] + coords[ps[13]][1]) - 2 * (coords[ps[0]][1] + coords[ps[15]][1]) + 3 * (coords[ps[11]][1] + coords[ps[1]][1])) / 9]);\n      ps[10] = coords.length;\n      coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);\n      mesh.figures.push({\n        type: 'patch',\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  function decodeType7Shading(mesh, reader) {\n    var coords = mesh.coords;\n    var colors = mesh.colors;\n    var ps = new Int32Array(16);\n    var cs = new Int32Array(4);\n\n    while (reader.hasData) {\n      var f = reader.readFlag();\n\n      if (!(0 <= f && f <= 3)) {\n        throw new _util.FormatError('Unknown type7 flag');\n      }\n\n      var i, ii;\n      var pi = coords.length;\n\n      for (i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n        coords.push(reader.readCoordinate());\n      }\n\n      var ci = colors.length;\n\n      for (i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n        colors.push(reader.readComponents());\n      }\n\n      var tmp1, tmp2, tmp3, tmp4;\n\n      switch (f) {\n        case 0:\n          ps[12] = pi + 3;\n          ps[13] = pi + 4;\n          ps[14] = pi + 5;\n          ps[15] = pi + 6;\n          ps[8] = pi + 2;\n          ps[9] = pi + 13;\n          ps[10] = pi + 14;\n          ps[11] = pi + 7;\n          ps[4] = pi + 1;\n          ps[5] = pi + 12;\n          ps[6] = pi + 15;\n          ps[7] = pi + 8;\n          ps[0] = pi;\n          ps[1] = pi + 11;\n          ps[2] = pi + 10;\n          ps[3] = pi + 9;\n          cs[2] = ci + 1;\n          cs[3] = ci + 2;\n          cs[0] = ci;\n          cs[1] = ci + 3;\n          break;\n\n        case 1:\n          tmp1 = ps[12];\n          tmp2 = ps[13];\n          tmp3 = ps[14];\n          tmp4 = ps[15];\n          ps[12] = tmp4;\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = tmp3;\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[2];\n          tmp2 = cs[3];\n          cs[2] = tmp2;\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 2:\n          tmp1 = ps[15];\n          tmp2 = ps[11];\n          ps[12] = ps[3];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[7];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = tmp2;\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = tmp1;\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          tmp1 = cs[3];\n          cs[2] = cs[1];\n          cs[3] = ci;\n          cs[0] = tmp1;\n          cs[1] = ci + 1;\n          break;\n\n        case 3:\n          ps[12] = ps[0];\n          ps[13] = pi + 0;\n          ps[14] = pi + 1;\n          ps[15] = pi + 2;\n          ps[8] = ps[1];\n          ps[9] = pi + 9;\n          ps[10] = pi + 10;\n          ps[11] = pi + 3;\n          ps[4] = ps[2];\n          ps[5] = pi + 8;\n          ps[6] = pi + 11;\n          ps[7] = pi + 4;\n          ps[0] = ps[3];\n          ps[1] = pi + 7;\n          ps[2] = pi + 6;\n          ps[3] = pi + 5;\n          cs[2] = cs[0];\n          cs[3] = ci;\n          cs[0] = cs[1];\n          cs[1] = ci + 1;\n          break;\n      }\n\n      mesh.figures.push({\n        type: 'patch',\n        coords: new Int32Array(ps),\n        colors: new Int32Array(cs)\n      });\n    }\n  }\n\n  function updateBounds(mesh) {\n    var minX = mesh.coords[0][0],\n        minY = mesh.coords[0][1],\n        maxX = minX,\n        maxY = minY;\n\n    for (var i = 1, ii = mesh.coords.length; i < ii; i++) {\n      var x = mesh.coords[i][0],\n          y = mesh.coords[i][1];\n      minX = minX > x ? x : minX;\n      minY = minY > y ? y : minY;\n      maxX = maxX < x ? x : maxX;\n      maxY = maxY < y ? y : maxY;\n    }\n\n    mesh.bounds = [minX, minY, maxX, maxY];\n  }\n\n  function packData(mesh) {\n    var i, ii, j, jj;\n    var coords = mesh.coords;\n    var coordsPacked = new Float32Array(coords.length * 2);\n\n    for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n      var xy = coords[i];\n      coordsPacked[j++] = xy[0];\n      coordsPacked[j++] = xy[1];\n    }\n\n    mesh.coords = coordsPacked;\n    var colors = mesh.colors;\n    var colorsPacked = new Uint8Array(colors.length * 3);\n\n    for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n      var c = colors[i];\n      colorsPacked[j++] = c[0];\n      colorsPacked[j++] = c[1];\n      colorsPacked[j++] = c[2];\n    }\n\n    mesh.colors = colorsPacked;\n    var figures = mesh.figures;\n\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      var figure = figures[i],\n          ps = figure.coords,\n          cs = figure.colors;\n\n      for (j = 0, jj = ps.length; j < jj; j++) {\n        ps[j] *= 2;\n        cs[j] *= 3;\n      }\n    }\n  }\n\n  function Mesh(stream, matrix, xref, res, pdfFunctionFactory) {\n    if (!(0, _primitives.isStream)(stream)) {\n      throw new _util.FormatError('Mesh data is not a stream');\n    }\n\n    var dict = stream.dict;\n    this.matrix = matrix;\n    this.shadingType = dict.get('ShadingType');\n    this.type = 'Pattern';\n    this.bbox = dict.getArray('BBox');\n    var cs = dict.get('ColorSpace', 'CS');\n    cs = _colorspace.ColorSpace.parse(cs, xref, res, pdfFunctionFactory);\n    this.cs = cs;\n    this.background = dict.has('Background') ? cs.getRgb(dict.get('Background'), 0) : null;\n    var fnObj = dict.get('Function');\n    var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n    this.coords = [];\n    this.colors = [];\n    this.figures = [];\n    var decodeContext = {\n      bitsPerCoordinate: dict.get('BitsPerCoordinate'),\n      bitsPerComponent: dict.get('BitsPerComponent'),\n      bitsPerFlag: dict.get('BitsPerFlag'),\n      decode: dict.getArray('Decode'),\n      colorFn: fn,\n      colorSpace: cs,\n      numComps: fn ? 1 : cs.numComps\n    };\n    var reader = new MeshStreamReader(stream, decodeContext);\n    var patchMesh = false;\n\n    switch (this.shadingType) {\n      case ShadingType.FREE_FORM_MESH:\n        decodeType4Shading(this, reader);\n        break;\n\n      case ShadingType.LATTICE_FORM_MESH:\n        var verticesPerRow = dict.get('VerticesPerRow') | 0;\n\n        if (verticesPerRow < 2) {\n          throw new _util.FormatError('Invalid VerticesPerRow');\n        }\n\n        decodeType5Shading(this, reader, verticesPerRow);\n        break;\n\n      case ShadingType.COONS_PATCH_MESH:\n        decodeType6Shading(this, reader);\n        patchMesh = true;\n        break;\n\n      case ShadingType.TENSOR_PATCH_MESH:\n        decodeType7Shading(this, reader);\n        patchMesh = true;\n        break;\n\n      default:\n        (0, _util.unreachable)('Unsupported mesh type.');\n        break;\n    }\n\n    if (patchMesh) {\n      updateBounds(this);\n\n      for (var i = 0, ii = this.figures.length; i < ii; i++) {\n        buildFigureFromPatch(this, i);\n      }\n    }\n\n    updateBounds(this);\n    packData(this);\n  }\n\n  Mesh.prototype = {\n    getIR: function Mesh_getIR() {\n      return ['Mesh', this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];\n    }\n  };\n  return Mesh;\n}();\n\nShadings.Dummy = function DummyClosure() {\n  function Dummy() {\n    this.type = 'Pattern';\n  }\n\n  Dummy.prototype = {\n    getIR: function Dummy_getIR() {\n      return ['Dummy'];\n    }\n  };\n  return Dummy;\n}();\n\nfunction getTilingPatternIR(operatorList, dict, args) {\n  var matrix = dict.getArray('Matrix');\n\n  var bbox = _util.Util.normalizeRect(dict.getArray('BBox'));\n\n  var xstep = dict.get('XStep');\n  var ystep = dict.get('YStep');\n  var paintType = dict.get('PaintType');\n  var tilingType = dict.get('TilingType');\n\n  if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n    throw new _util.FormatError(\"Invalid getTilingPatternIR /BBox array: [\".concat(bbox, \"].\"));\n  }\n\n  return ['TilingPattern', args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];\n}\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.bidi = bidi;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar baseTypes = ['BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'S', 'B', 'S', 'WS', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'B', 'B', 'S', 'WS', 'ON', 'ON', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'ON', 'ES', 'CS', 'ES', 'CS', 'CS', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'CS', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'ON', 'ON', 'ON', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'B', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'BN', 'CS', 'ON', 'ET', 'ET', 'ET', 'ET', 'ON', 'ON', 'ON', 'ON', 'L', 'ON', 'ON', 'BN', 'ON', 'ON', 'ET', 'ET', 'EN', 'EN', 'ON', 'L', 'ON', 'ON', 'ON', 'EN', 'L', 'ON', 'ON', 'ON', 'ON', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'ON', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'];\nvar arabicTypes = ['AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ON', 'ON', 'AL', 'ET', 'ET', 'AL', 'CS', 'AL', 'ON', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', '', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'AN', 'ET', 'AN', 'AN', 'AL', 'AL', 'AL', 'NSM', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AN', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'NSM', 'NSM', 'ON', 'NSM', 'NSM', 'NSM', 'NSM', 'AL', 'AL', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'EN', 'AL', 'AL', 'AL', 'AL', 'AL', 'AL'];\n\nfunction isOdd(i) {\n  return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n  return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n  for (var j = start, jj = arr.length; j < jj; ++j) {\n    if (arr[j] !== value) {\n      return j;\n    }\n  }\n\n  return j;\n}\n\nfunction setValues(arr, start, end, value) {\n  for (var j = start; j < end; ++j) {\n    arr[j] = value;\n  }\n}\n\nfunction reverseValues(arr, start, end) {\n  for (var i = start, j = end - 1; i < j; ++i, --j) {\n    var temp = arr[i];\n    arr[i] = arr[j];\n    arr[j] = temp;\n  }\n}\n\nfunction createBidiText(str, isLTR, vertical) {\n  return {\n    str: str,\n    dir: vertical ? 'ttb' : isLTR ? 'ltr' : 'rtl'\n  };\n}\n\nvar chars = [];\nvar types = [];\n\nfunction bidi(str, startLevel, vertical) {\n  var isLTR = true;\n  var strLength = str.length;\n\n  if (strLength === 0 || vertical) {\n    return createBidiText(str, isLTR, vertical);\n  }\n\n  chars.length = strLength;\n  types.length = strLength;\n  var numBidi = 0;\n  var i, ii;\n\n  for (i = 0; i < strLength; ++i) {\n    chars[i] = str.charAt(i);\n    var charCode = str.charCodeAt(i);\n    var charType = 'L';\n\n    if (charCode <= 0x00ff) {\n      charType = baseTypes[charCode];\n    } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n      charType = 'R';\n    } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n      charType = arabicTypes[charCode & 0xff];\n\n      if (!charType) {\n        (0, _util.warn)('Bidi: invalid Unicode character ' + charCode.toString(16));\n      }\n    } else if (0x0700 <= charCode && charCode <= 0x08AC) {\n      charType = 'AL';\n    }\n\n    if (charType === 'R' || charType === 'AL' || charType === 'AN') {\n      numBidi++;\n    }\n\n    types[i] = charType;\n  }\n\n  if (numBidi === 0) {\n    isLTR = true;\n    return createBidiText(str, isLTR);\n  }\n\n  if (startLevel === -1) {\n    if (numBidi / strLength < 0.3) {\n      isLTR = true;\n      startLevel = 0;\n    } else {\n      isLTR = false;\n      startLevel = 1;\n    }\n  }\n\n  var levels = [];\n\n  for (i = 0; i < strLength; ++i) {\n    levels[i] = startLevel;\n  }\n\n  var e = isOdd(startLevel) ? 'R' : 'L';\n  var sor = e;\n  var eor = sor;\n  var lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'NSM') {\n      types[i] = lastType;\n    } else {\n      lastType = types[i];\n    }\n  }\n\n  lastType = sor;\n  var t;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'EN') {\n      types[i] = lastType === 'AL' ? 'AN' : 'EN';\n    } else if (t === 'R' || t === 'L' || t === 'AL') {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'AL') {\n      types[i] = 'R';\n    }\n  }\n\n  for (i = 1; i < strLength - 1; ++i) {\n    if (types[i] === 'ES' && types[i - 1] === 'EN' && types[i + 1] === 'EN') {\n      types[i] = 'EN';\n    }\n\n    if (types[i] === 'CS' && (types[i - 1] === 'EN' || types[i - 1] === 'AN') && types[i + 1] === types[i - 1]) {\n      types[i] = types[i - 1];\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'EN') {\n      var j;\n\n      for (j = i - 1; j >= 0; --j) {\n        if (types[j] !== 'ET') {\n          break;\n        }\n\n        types[j] = 'EN';\n      }\n\n      for (j = i + 1; j < strLength; ++j) {\n        if (types[j] !== 'ET') {\n          break;\n        }\n\n        types[j] = 'EN';\n      }\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'WS' || t === 'ES' || t === 'ET' || t === 'CS') {\n      types[i] = 'ON';\n    }\n  }\n\n  lastType = sor;\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (t === 'EN') {\n      types[i] = lastType === 'L' ? 'L' : 'EN';\n    } else if (t === 'R' || t === 'L') {\n      lastType = t;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'ON') {\n      var end = findUnequal(types, i + 1, 'ON');\n      var before = sor;\n\n      if (i > 0) {\n        before = types[i - 1];\n      }\n\n      var after = eor;\n\n      if (end + 1 < strLength) {\n        after = types[end + 1];\n      }\n\n      if (before !== 'L') {\n        before = 'R';\n      }\n\n      if (after !== 'L') {\n        after = 'R';\n      }\n\n      if (before === after) {\n        setValues(types, i, end, before);\n      }\n\n      i = end - 1;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    if (types[i] === 'ON') {\n      types[i] = e;\n    }\n  }\n\n  for (i = 0; i < strLength; ++i) {\n    t = types[i];\n\n    if (isEven(levels[i])) {\n      if (t === 'R') {\n        levels[i] += 1;\n      } else if (t === 'AN' || t === 'EN') {\n        levels[i] += 2;\n      }\n    } else {\n      if (t === 'L' || t === 'AN' || t === 'EN') {\n        levels[i] += 1;\n      }\n    }\n  }\n\n  var highestLevel = -1;\n  var lowestOddLevel = 99;\n  var level;\n\n  for (i = 0, ii = levels.length; i < ii; ++i) {\n    level = levels[i];\n\n    if (highestLevel < level) {\n      highestLevel = level;\n    }\n\n    if (lowestOddLevel > level && isOdd(level)) {\n      lowestOddLevel = level;\n    }\n  }\n\n  for (level = highestLevel; level >= lowestOddLevel; --level) {\n    var start = -1;\n\n    for (i = 0, ii = levels.length; i < ii; ++i) {\n      if (levels[i] < level) {\n        if (start >= 0) {\n          reverseValues(chars, start, i);\n          start = -1;\n        }\n      } else if (start < 0) {\n        start = i;\n      }\n    }\n\n    if (start >= 0) {\n      reverseValues(chars, start, levels.length);\n    }\n  }\n\n  for (i = 0, ii = chars.length; i < ii; ++i) {\n    var ch = chars[i];\n\n    if (ch === '<' || ch === '>') {\n      chars[i] = '';\n    }\n  }\n\n  return createBidiText(chars.join(''), isLTR);\n}\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.getMetrics = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar getMetrics = (0, _util.getLookupTableFactory)(function (t) {\n  t['Courier'] = 600;\n  t['Courier-Bold'] = 600;\n  t['Courier-BoldOblique'] = 600;\n  t['Courier-Oblique'] = 600;\n  t['Helvetica'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 278;\n    t['quotedbl'] = 355;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 667;\n    t['quoteright'] = 222;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 556;\n    t['at'] = 1015;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 278;\n    t['backslash'] = 278;\n    t['bracketright'] = 278;\n    t['asciicircum'] = 469;\n    t['underscore'] = 556;\n    t['quoteleft'] = 222;\n    t['a'] = 556;\n    t['b'] = 556;\n    t['c'] = 500;\n    t['d'] = 556;\n    t['e'] = 556;\n    t['f'] = 278;\n    t['g'] = 556;\n    t['h'] = 556;\n    t['i'] = 222;\n    t['j'] = 222;\n    t['k'] = 500;\n    t['l'] = 222;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 556;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 333;\n    t['s'] = 500;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 500;\n    t['braceleft'] = 334;\n    t['bar'] = 260;\n    t['braceright'] = 334;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 191;\n    t['quotedblleft'] = 333;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 537;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 222;\n    t['quotedblbase'] = 333;\n    t['quotedblright'] = 333;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 556;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 222;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 500;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 500;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 222;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 500;\n    t['scedilla'] = 500;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 667;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 500;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 643;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 584;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 500;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 260;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 333;\n    t['omacron'] = 556;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 222;\n    t['tcaron'] = 317;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 222;\n    t['Oacute'] = 778;\n    t['oacute'] = 556;\n    t['amacron'] = 556;\n    t['sacute'] = 500;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 556;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 299;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 556;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 556;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 556;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 556;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 556;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 556;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 556;\n    t['eth'] = 556;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 333;\n    t['quotedbl'] = 474;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 722;\n    t['quoteright'] = 278;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 611;\n    t['at'] = 975;\n    t['A'] = 722;\n    t['B'] = 722;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 556;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 584;\n    t['underscore'] = 556;\n    t['quoteleft'] = 278;\n    t['a'] = 556;\n    t['b'] = 611;\n    t['c'] = 556;\n    t['d'] = 611;\n    t['e'] = 556;\n    t['f'] = 333;\n    t['g'] = 611;\n    t['h'] = 611;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 889;\n    t['n'] = 611;\n    t['o'] = 611;\n    t['p'] = 611;\n    t['q'] = 611;\n    t['r'] = 389;\n    t['s'] = 556;\n    t['t'] = 333;\n    t['u'] = 611;\n    t['v'] = 556;\n    t['w'] = 778;\n    t['x'] = 556;\n    t['y'] = 556;\n    t['z'] = 500;\n    t['braceleft'] = 389;\n    t['bar'] = 280;\n    t['braceright'] = 389;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 238;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 611;\n    t['fl'] = 611;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 556;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 278;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 611;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 611;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 556;\n    t['scommaaccent'] = 556;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 611;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 556;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 556;\n    t['scedilla'] = 556;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 611;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 722;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 556;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 743;\n    t['Umacron'] = 722;\n    t['uring'] = 611;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 584;\n    t['uacute'] = 611;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 556;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 556;\n    t['nacute'] = 611;\n    t['umacron'] = 611;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 280;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 611;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 389;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 611;\n    t['amacron'] = 556;\n    t['sacute'] = 556;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 611;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 611;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 611;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 611;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 400;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 611;\n    t['ntilde'] = 611;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 611;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 611;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 611;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 611;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 611;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 611;\n    t['udieresis'] = 611;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 611;\n    t['eth'] = 611;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 611;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-BoldOblique'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 333;\n    t['quotedbl'] = 474;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 722;\n    t['quoteright'] = 278;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 611;\n    t['at'] = 975;\n    t['A'] = 722;\n    t['B'] = 722;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 556;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 584;\n    t['underscore'] = 556;\n    t['quoteleft'] = 278;\n    t['a'] = 556;\n    t['b'] = 611;\n    t['c'] = 556;\n    t['d'] = 611;\n    t['e'] = 556;\n    t['f'] = 333;\n    t['g'] = 611;\n    t['h'] = 611;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 889;\n    t['n'] = 611;\n    t['o'] = 611;\n    t['p'] = 611;\n    t['q'] = 611;\n    t['r'] = 389;\n    t['s'] = 556;\n    t['t'] = 333;\n    t['u'] = 611;\n    t['v'] = 556;\n    t['w'] = 778;\n    t['x'] = 556;\n    t['y'] = 556;\n    t['z'] = 500;\n    t['braceleft'] = 389;\n    t['bar'] = 280;\n    t['braceright'] = 389;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 238;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 611;\n    t['fl'] = 611;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 556;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 278;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 611;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 611;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 556;\n    t['scommaaccent'] = 556;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 611;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 556;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 556;\n    t['scedilla'] = 556;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 611;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 722;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 556;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 743;\n    t['Umacron'] = 722;\n    t['uring'] = 611;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 584;\n    t['uacute'] = 611;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 556;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 556;\n    t['nacute'] = 611;\n    t['umacron'] = 611;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 280;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 611;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 389;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 611;\n    t['amacron'] = 556;\n    t['sacute'] = 556;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 611;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 611;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 611;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 611;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 400;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 611;\n    t['ntilde'] = 611;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 611;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 611;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 611;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 611;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 611;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 611;\n    t['udieresis'] = 611;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 611;\n    t['eth'] = 611;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 611;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Helvetica-Oblique'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['exclam'] = 278;\n    t['quotedbl'] = 355;\n    t['numbersign'] = 556;\n    t['dollar'] = 556;\n    t['percent'] = 889;\n    t['ampersand'] = 667;\n    t['quoteright'] = 222;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 389;\n    t['plus'] = 584;\n    t['comma'] = 278;\n    t['hyphen'] = 333;\n    t['period'] = 278;\n    t['slash'] = 278;\n    t['zero'] = 556;\n    t['one'] = 556;\n    t['two'] = 556;\n    t['three'] = 556;\n    t['four'] = 556;\n    t['five'] = 556;\n    t['six'] = 556;\n    t['seven'] = 556;\n    t['eight'] = 556;\n    t['nine'] = 556;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 584;\n    t['equal'] = 584;\n    t['greater'] = 584;\n    t['question'] = 556;\n    t['at'] = 1015;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 722;\n    t['I'] = 278;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 667;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 667;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 944;\n    t['X'] = 667;\n    t['Y'] = 667;\n    t['Z'] = 611;\n    t['bracketleft'] = 278;\n    t['backslash'] = 278;\n    t['bracketright'] = 278;\n    t['asciicircum'] = 469;\n    t['underscore'] = 556;\n    t['quoteleft'] = 222;\n    t['a'] = 556;\n    t['b'] = 556;\n    t['c'] = 500;\n    t['d'] = 556;\n    t['e'] = 556;\n    t['f'] = 278;\n    t['g'] = 556;\n    t['h'] = 556;\n    t['i'] = 222;\n    t['j'] = 222;\n    t['k'] = 500;\n    t['l'] = 222;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 556;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 333;\n    t['s'] = 500;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 500;\n    t['braceleft'] = 334;\n    t['bar'] = 260;\n    t['braceright'] = 334;\n    t['asciitilde'] = 584;\n    t['exclamdown'] = 333;\n    t['cent'] = 556;\n    t['sterling'] = 556;\n    t['fraction'] = 167;\n    t['yen'] = 556;\n    t['florin'] = 556;\n    t['section'] = 556;\n    t['currency'] = 556;\n    t['quotesingle'] = 191;\n    t['quotedblleft'] = 333;\n    t['guillemotleft'] = 556;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 556;\n    t['dagger'] = 556;\n    t['daggerdbl'] = 556;\n    t['periodcentered'] = 278;\n    t['paragraph'] = 537;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 222;\n    t['quotedblbase'] = 333;\n    t['quotedblright'] = 333;\n    t['guillemotright'] = 556;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 611;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 370;\n    t['Lslash'] = 556;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 365;\n    t['ae'] = 889;\n    t['dotlessi'] = 278;\n    t['lslash'] = 222;\n    t['oslash'] = 611;\n    t['oe'] = 944;\n    t['germandbls'] = 611;\n    t['Idieresis'] = 278;\n    t['eacute'] = 556;\n    t['abreve'] = 556;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 556;\n    t['Ydieresis'] = 667;\n    t['divide'] = 584;\n    t['Yacute'] = 667;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 556;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 500;\n    t['ecircumflex'] = 556;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 556;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 737;\n    t['Emacron'] = 667;\n    t['ccaron'] = 500;\n    t['aring'] = 556;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 222;\n    t['agrave'] = 556;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 722;\n    t['atilde'] = 556;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 500;\n    t['scedilla'] = 500;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 556;\n    t['Amacron'] = 667;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 500;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 667;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 667;\n    t['dcaron'] = 643;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 333;\n    t['Ograve'] = 778;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 584;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 556;\n    t['edieresis'] = 556;\n    t['cacute'] = 500;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 278;\n    t['plusminus'] = 584;\n    t['brokenbar'] = 260;\n    t['registered'] = 737;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 278;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 333;\n    t['omacron'] = 556;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 222;\n    t['tcaron'] = 317;\n    t['eogonek'] = 556;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 556;\n    t['zacute'] = 500;\n    t['iogonek'] = 222;\n    t['Oacute'] = 778;\n    t['oacute'] = 556;\n    t['amacron'] = 556;\n    t['sacute'] = 500;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 333;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 556;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 834;\n    t['Scedilla'] = 667;\n    t['lcaron'] = 299;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 556;\n    t['Igrave'] = 278;\n    t['Imacron'] = 278;\n    t['Lcaron'] = 556;\n    t['onehalf'] = 834;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 556;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 556;\n    t['gbreve'] = 556;\n    t['onequarter'] = 834;\n    t['Scaron'] = 667;\n    t['Scommaaccent'] = 667;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 556;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 556;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 500;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 278;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 584;\n    t['Icircumflex'] = 278;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 584;\n    t['odieresis'] = 556;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 556;\n    t['eth'] = 556;\n    t['zcaron'] = 500;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 333;\n    t['imacron'] = 278;\n    t['Euro'] = 556;\n  });\n  t['Symbol'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['universal'] = 713;\n    t['numbersign'] = 500;\n    t['existential'] = 549;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['suchthat'] = 439;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asteriskmath'] = 500;\n    t['plus'] = 549;\n    t['comma'] = 250;\n    t['minus'] = 549;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 549;\n    t['equal'] = 549;\n    t['greater'] = 549;\n    t['question'] = 444;\n    t['congruent'] = 549;\n    t['Alpha'] = 722;\n    t['Beta'] = 667;\n    t['Chi'] = 722;\n    t['Delta'] = 612;\n    t['Epsilon'] = 611;\n    t['Phi'] = 763;\n    t['Gamma'] = 603;\n    t['Eta'] = 722;\n    t['Iota'] = 333;\n    t['theta1'] = 631;\n    t['Kappa'] = 722;\n    t['Lambda'] = 686;\n    t['Mu'] = 889;\n    t['Nu'] = 722;\n    t['Omicron'] = 722;\n    t['Pi'] = 768;\n    t['Theta'] = 741;\n    t['Rho'] = 556;\n    t['Sigma'] = 592;\n    t['Tau'] = 611;\n    t['Upsilon'] = 690;\n    t['sigma1'] = 439;\n    t['Omega'] = 768;\n    t['Xi'] = 645;\n    t['Psi'] = 795;\n    t['Zeta'] = 611;\n    t['bracketleft'] = 333;\n    t['therefore'] = 863;\n    t['bracketright'] = 333;\n    t['perpendicular'] = 658;\n    t['underscore'] = 500;\n    t['radicalex'] = 500;\n    t['alpha'] = 631;\n    t['beta'] = 549;\n    t['chi'] = 549;\n    t['delta'] = 494;\n    t['epsilon'] = 439;\n    t['phi'] = 521;\n    t['gamma'] = 411;\n    t['eta'] = 603;\n    t['iota'] = 329;\n    t['phi1'] = 603;\n    t['kappa'] = 549;\n    t['lambda'] = 549;\n    t['mu'] = 576;\n    t['nu'] = 521;\n    t['omicron'] = 549;\n    t['pi'] = 549;\n    t['theta'] = 521;\n    t['rho'] = 549;\n    t['sigma'] = 603;\n    t['tau'] = 439;\n    t['upsilon'] = 576;\n    t['omega1'] = 713;\n    t['omega'] = 686;\n    t['xi'] = 493;\n    t['psi'] = 686;\n    t['zeta'] = 494;\n    t['braceleft'] = 480;\n    t['bar'] = 200;\n    t['braceright'] = 480;\n    t['similar'] = 549;\n    t['Euro'] = 750;\n    t['Upsilon1'] = 620;\n    t['minute'] = 247;\n    t['lessequal'] = 549;\n    t['fraction'] = 167;\n    t['infinity'] = 713;\n    t['florin'] = 500;\n    t['club'] = 753;\n    t['diamond'] = 753;\n    t['heart'] = 753;\n    t['spade'] = 753;\n    t['arrowboth'] = 1042;\n    t['arrowleft'] = 987;\n    t['arrowup'] = 603;\n    t['arrowright'] = 987;\n    t['arrowdown'] = 603;\n    t['degree'] = 400;\n    t['plusminus'] = 549;\n    t['second'] = 411;\n    t['greaterequal'] = 549;\n    t['multiply'] = 549;\n    t['proportional'] = 713;\n    t['partialdiff'] = 494;\n    t['bullet'] = 460;\n    t['divide'] = 549;\n    t['notequal'] = 549;\n    t['equivalence'] = 549;\n    t['approxequal'] = 549;\n    t['ellipsis'] = 1000;\n    t['arrowvertex'] = 603;\n    t['arrowhorizex'] = 1000;\n    t['carriagereturn'] = 658;\n    t['aleph'] = 823;\n    t['Ifraktur'] = 686;\n    t['Rfraktur'] = 795;\n    t['weierstrass'] = 987;\n    t['circlemultiply'] = 768;\n    t['circleplus'] = 768;\n    t['emptyset'] = 823;\n    t['intersection'] = 768;\n    t['union'] = 768;\n    t['propersuperset'] = 713;\n    t['reflexsuperset'] = 713;\n    t['notsubset'] = 713;\n    t['propersubset'] = 713;\n    t['reflexsubset'] = 713;\n    t['element'] = 713;\n    t['notelement'] = 713;\n    t['angle'] = 768;\n    t['gradient'] = 713;\n    t['registerserif'] = 790;\n    t['copyrightserif'] = 790;\n    t['trademarkserif'] = 890;\n    t['product'] = 823;\n    t['radical'] = 549;\n    t['dotmath'] = 250;\n    t['logicalnot'] = 713;\n    t['logicaland'] = 603;\n    t['logicalor'] = 603;\n    t['arrowdblboth'] = 1042;\n    t['arrowdblleft'] = 987;\n    t['arrowdblup'] = 603;\n    t['arrowdblright'] = 987;\n    t['arrowdbldown'] = 603;\n    t['lozenge'] = 494;\n    t['angleleft'] = 329;\n    t['registersans'] = 790;\n    t['copyrightsans'] = 790;\n    t['trademarksans'] = 786;\n    t['summation'] = 713;\n    t['parenlefttp'] = 384;\n    t['parenleftex'] = 384;\n    t['parenleftbt'] = 384;\n    t['bracketlefttp'] = 384;\n    t['bracketleftex'] = 384;\n    t['bracketleftbt'] = 384;\n    t['bracelefttp'] = 494;\n    t['braceleftmid'] = 494;\n    t['braceleftbt'] = 494;\n    t['braceex'] = 494;\n    t['angleright'] = 329;\n    t['integral'] = 274;\n    t['integraltp'] = 686;\n    t['integralex'] = 686;\n    t['integralbt'] = 686;\n    t['parenrighttp'] = 384;\n    t['parenrightex'] = 384;\n    t['parenrightbt'] = 384;\n    t['bracketrighttp'] = 384;\n    t['bracketrightex'] = 384;\n    t['bracketrightbt'] = 384;\n    t['bracerighttp'] = 494;\n    t['bracerightmid'] = 494;\n    t['bracerightbt'] = 494;\n    t['apple'] = 790;\n  });\n  t['Times-Roman'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 408;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 564;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 278;\n    t['semicolon'] = 278;\n    t['less'] = 564;\n    t['equal'] = 564;\n    t['greater'] = 564;\n    t['question'] = 444;\n    t['at'] = 921;\n    t['A'] = 722;\n    t['B'] = 667;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 611;\n    t['F'] = 556;\n    t['G'] = 722;\n    t['H'] = 722;\n    t['I'] = 333;\n    t['J'] = 389;\n    t['K'] = 722;\n    t['L'] = 611;\n    t['M'] = 889;\n    t['N'] = 722;\n    t['O'] = 722;\n    t['P'] = 556;\n    t['Q'] = 722;\n    t['R'] = 667;\n    t['S'] = 556;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 722;\n    t['W'] = 944;\n    t['X'] = 722;\n    t['Y'] = 722;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 469;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 444;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 500;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 500;\n    t['l'] = 278;\n    t['m'] = 778;\n    t['n'] = 500;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 333;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 500;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 444;\n    t['braceleft'] = 480;\n    t['bar'] = 200;\n    t['braceright'] = 480;\n    t['asciitilde'] = 541;\n    t['exclamdown'] = 333;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 180;\n    t['quotedblleft'] = 444;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 453;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 444;\n    t['quotedblright'] = 444;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 444;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 889;\n    t['ordfeminine'] = 276;\n    t['Lslash'] = 611;\n    t['Oslash'] = 722;\n    t['OE'] = 889;\n    t['ordmasculine'] = 310;\n    t['ae'] = 667;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 333;\n    t['eacute'] = 444;\n    t['abreve'] = 444;\n    t['uhungarumlaut'] = 500;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 722;\n    t['divide'] = 564;\n    t['Yacute'] = 722;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 444;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 444;\n    t['Uacute'] = 722;\n    t['uogonek'] = 500;\n    t['Edieresis'] = 611;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 760;\n    t['Emacron'] = 611;\n    t['ccaron'] = 444;\n    t['aring'] = 444;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 444;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 667;\n    t['atilde'] = 444;\n    t['Edotaccent'] = 611;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 667;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 500;\n    t['acircumflex'] = 444;\n    t['Amacron'] = 722;\n    t['rcaron'] = 333;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 556;\n    t['Omacron'] = 722;\n    t['Racute'] = 667;\n    t['Sacute'] = 556;\n    t['dcaron'] = 588;\n    t['Umacron'] = 722;\n    t['uring'] = 500;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 564;\n    t['uacute'] = 500;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 611;\n    t['adieresis'] = 444;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 500;\n    t['umacron'] = 500;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 333;\n    t['plusminus'] = 564;\n    t['brokenbar'] = 200;\n    t['registered'] = 760;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 333;\n    t['summation'] = 600;\n    t['Egrave'] = 611;\n    t['racute'] = 333;\n    t['omacron'] = 500;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 326;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 444;\n    t['zacute'] = 444;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 444;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 500;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 611;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 344;\n    t['Kcommaaccent'] = 722;\n    t['Lacute'] = 611;\n    t['trademark'] = 980;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 333;\n    t['Imacron'] = 333;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 500;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 611;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 500;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 333;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 667;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 444;\n    t['Ecaron'] = 611;\n    t['Iogonek'] = 333;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 564;\n    t['Icircumflex'] = 333;\n    t['ncaron'] = 500;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 564;\n    t['odieresis'] = 500;\n    t['udieresis'] = 500;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 444;\n    t['ncommaaccent'] = 500;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-Bold'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 555;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 1000;\n    t['ampersand'] = 833;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 570;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 570;\n    t['equal'] = 570;\n    t['greater'] = 570;\n    t['question'] = 500;\n    t['at'] = 930;\n    t['A'] = 722;\n    t['B'] = 667;\n    t['C'] = 722;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 611;\n    t['G'] = 778;\n    t['H'] = 778;\n    t['I'] = 389;\n    t['J'] = 500;\n    t['K'] = 778;\n    t['L'] = 667;\n    t['M'] = 944;\n    t['N'] = 722;\n    t['O'] = 778;\n    t['P'] = 611;\n    t['Q'] = 778;\n    t['R'] = 722;\n    t['S'] = 556;\n    t['T'] = 667;\n    t['U'] = 722;\n    t['V'] = 722;\n    t['W'] = 1000;\n    t['X'] = 722;\n    t['Y'] = 722;\n    t['Z'] = 667;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 581;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 556;\n    t['c'] = 444;\n    t['d'] = 556;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 556;\n    t['i'] = 278;\n    t['j'] = 333;\n    t['k'] = 556;\n    t['l'] = 278;\n    t['m'] = 833;\n    t['n'] = 556;\n    t['o'] = 500;\n    t['p'] = 556;\n    t['q'] = 556;\n    t['r'] = 444;\n    t['s'] = 389;\n    t['t'] = 333;\n    t['u'] = 556;\n    t['v'] = 500;\n    t['w'] = 722;\n    t['x'] = 500;\n    t['y'] = 500;\n    t['z'] = 444;\n    t['braceleft'] = 394;\n    t['bar'] = 220;\n    t['braceright'] = 394;\n    t['asciitilde'] = 520;\n    t['exclamdown'] = 333;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 278;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 540;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 1000;\n    t['ordfeminine'] = 300;\n    t['Lslash'] = 667;\n    t['Oslash'] = 778;\n    t['OE'] = 1000;\n    t['ordmasculine'] = 330;\n    t['ae'] = 722;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 556;\n    t['Idieresis'] = 389;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 722;\n    t['divide'] = 570;\n    t['Yacute'] = 722;\n    t['Acircumflex'] = 722;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 500;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 747;\n    t['Emacron'] = 667;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 667;\n    t['Cacute'] = 722;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 722;\n    t['Gcommaaccent'] = 778;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 722;\n    t['rcaron'] = 444;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 667;\n    t['Thorn'] = 611;\n    t['Omacron'] = 778;\n    t['Racute'] = 722;\n    t['Sacute'] = 556;\n    t['dcaron'] = 672;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 778;\n    t['Agrave'] = 722;\n    t['Abreve'] = 722;\n    t['multiply'] = 570;\n    t['uacute'] = 556;\n    t['Tcaron'] = 667;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 500;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 389;\n    t['plusminus'] = 570;\n    t['brokenbar'] = 220;\n    t['registered'] = 747;\n    t['Gbreve'] = 778;\n    t['Idotaccent'] = 389;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 444;\n    t['omacron'] = 500;\n    t['Zacute'] = 667;\n    t['Zcaron'] = 667;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 722;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 416;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 722;\n    t['Adieresis'] = 722;\n    t['egrave'] = 444;\n    t['zacute'] = 444;\n    t['iogonek'] = 278;\n    t['Oacute'] = 778;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 778;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 556;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 778;\n    t['mu'] = 556;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 556;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 394;\n    t['Kcommaaccent'] = 778;\n    t['Lacute'] = 667;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 389;\n    t['Imacron'] = 389;\n    t['Lcaron'] = 667;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 778;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 722;\n    t['ugrave'] = 556;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 444;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 722;\n    t['Lcommaaccent'] = 667;\n    t['Atilde'] = 722;\n    t['Aogonek'] = 722;\n    t['Aring'] = 722;\n    t['Otilde'] = 778;\n    t['zdotaccent'] = 444;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 389;\n    t['kcommaaccent'] = 556;\n    t['minus'] = 570;\n    t['Icircumflex'] = 389;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 333;\n    t['logicalnot'] = 570;\n    t['odieresis'] = 500;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 444;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-BoldItalic'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 389;\n    t['quotedbl'] = 555;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 570;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 570;\n    t['equal'] = 570;\n    t['greater'] = 570;\n    t['question'] = 500;\n    t['at'] = 832;\n    t['A'] = 667;\n    t['B'] = 667;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 667;\n    t['F'] = 667;\n    t['G'] = 722;\n    t['H'] = 778;\n    t['I'] = 389;\n    t['J'] = 500;\n    t['K'] = 667;\n    t['L'] = 611;\n    t['M'] = 889;\n    t['N'] = 722;\n    t['O'] = 722;\n    t['P'] = 611;\n    t['Q'] = 722;\n    t['R'] = 667;\n    t['S'] = 556;\n    t['T'] = 611;\n    t['U'] = 722;\n    t['V'] = 667;\n    t['W'] = 889;\n    t['X'] = 667;\n    t['Y'] = 611;\n    t['Z'] = 611;\n    t['bracketleft'] = 333;\n    t['backslash'] = 278;\n    t['bracketright'] = 333;\n    t['asciicircum'] = 570;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 333;\n    t['g'] = 500;\n    t['h'] = 556;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 500;\n    t['l'] = 278;\n    t['m'] = 778;\n    t['n'] = 556;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 389;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 556;\n    t['v'] = 444;\n    t['w'] = 667;\n    t['x'] = 500;\n    t['y'] = 444;\n    t['z'] = 389;\n    t['braceleft'] = 348;\n    t['bar'] = 220;\n    t['braceright'] = 348;\n    t['asciitilde'] = 570;\n    t['exclamdown'] = 389;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 278;\n    t['quotedblleft'] = 500;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 556;\n    t['fl'] = 556;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 500;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 500;\n    t['quotedblright'] = 500;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 1000;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 1000;\n    t['AE'] = 944;\n    t['ordfeminine'] = 266;\n    t['Lslash'] = 611;\n    t['Oslash'] = 722;\n    t['OE'] = 944;\n    t['ordmasculine'] = 300;\n    t['ae'] = 722;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 722;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 389;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 556;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 611;\n    t['divide'] = 570;\n    t['Yacute'] = 611;\n    t['Acircumflex'] = 667;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 444;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 556;\n    t['Edieresis'] = 667;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 747;\n    t['Emacron'] = 667;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 722;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 611;\n    t['Cacute'] = 667;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 667;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 494;\n    t['Rcaron'] = 667;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 556;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 667;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 611;\n    t['Thorn'] = 611;\n    t['Omacron'] = 722;\n    t['Racute'] = 667;\n    t['Sacute'] = 556;\n    t['dcaron'] = 608;\n    t['Umacron'] = 722;\n    t['uring'] = 556;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 667;\n    t['Abreve'] = 667;\n    t['multiply'] = 570;\n    t['uacute'] = 556;\n    t['Tcaron'] = 611;\n    t['partialdiff'] = 494;\n    t['ydieresis'] = 444;\n    t['Nacute'] = 722;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 667;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 556;\n    t['umacron'] = 556;\n    t['Ncaron'] = 722;\n    t['Iacute'] = 389;\n    t['plusminus'] = 570;\n    t['brokenbar'] = 220;\n    t['registered'] = 747;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 389;\n    t['summation'] = 600;\n    t['Egrave'] = 667;\n    t['racute'] = 389;\n    t['omacron'] = 500;\n    t['Zacute'] = 611;\n    t['Zcaron'] = 611;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 366;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 667;\n    t['Adieresis'] = 667;\n    t['egrave'] = 444;\n    t['zacute'] = 389;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 576;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 667;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 556;\n    t['lcaron'] = 382;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 611;\n    t['trademark'] = 1000;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 389;\n    t['Imacron'] = 389;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 556;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 667;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 556;\n    t['Scommaaccent'] = 556;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 556;\n    t['radical'] = 549;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 722;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 667;\n    t['Lcommaaccent'] = 611;\n    t['Atilde'] = 667;\n    t['Aogonek'] = 667;\n    t['Aring'] = 667;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 389;\n    t['Ecaron'] = 667;\n    t['Iogonek'] = 389;\n    t['kcommaaccent'] = 500;\n    t['minus'] = 606;\n    t['Icircumflex'] = 389;\n    t['ncaron'] = 556;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 606;\n    t['odieresis'] = 500;\n    t['udieresis'] = 556;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 389;\n    t['ncommaaccent'] = 556;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['Times-Italic'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 250;\n    t['exclam'] = 333;\n    t['quotedbl'] = 420;\n    t['numbersign'] = 500;\n    t['dollar'] = 500;\n    t['percent'] = 833;\n    t['ampersand'] = 778;\n    t['quoteright'] = 333;\n    t['parenleft'] = 333;\n    t['parenright'] = 333;\n    t['asterisk'] = 500;\n    t['plus'] = 675;\n    t['comma'] = 250;\n    t['hyphen'] = 333;\n    t['period'] = 250;\n    t['slash'] = 278;\n    t['zero'] = 500;\n    t['one'] = 500;\n    t['two'] = 500;\n    t['three'] = 500;\n    t['four'] = 500;\n    t['five'] = 500;\n    t['six'] = 500;\n    t['seven'] = 500;\n    t['eight'] = 500;\n    t['nine'] = 500;\n    t['colon'] = 333;\n    t['semicolon'] = 333;\n    t['less'] = 675;\n    t['equal'] = 675;\n    t['greater'] = 675;\n    t['question'] = 500;\n    t['at'] = 920;\n    t['A'] = 611;\n    t['B'] = 611;\n    t['C'] = 667;\n    t['D'] = 722;\n    t['E'] = 611;\n    t['F'] = 611;\n    t['G'] = 722;\n    t['H'] = 722;\n    t['I'] = 333;\n    t['J'] = 444;\n    t['K'] = 667;\n    t['L'] = 556;\n    t['M'] = 833;\n    t['N'] = 667;\n    t['O'] = 722;\n    t['P'] = 611;\n    t['Q'] = 722;\n    t['R'] = 611;\n    t['S'] = 500;\n    t['T'] = 556;\n    t['U'] = 722;\n    t['V'] = 611;\n    t['W'] = 833;\n    t['X'] = 611;\n    t['Y'] = 556;\n    t['Z'] = 556;\n    t['bracketleft'] = 389;\n    t['backslash'] = 278;\n    t['bracketright'] = 389;\n    t['asciicircum'] = 422;\n    t['underscore'] = 500;\n    t['quoteleft'] = 333;\n    t['a'] = 500;\n    t['b'] = 500;\n    t['c'] = 444;\n    t['d'] = 500;\n    t['e'] = 444;\n    t['f'] = 278;\n    t['g'] = 500;\n    t['h'] = 500;\n    t['i'] = 278;\n    t['j'] = 278;\n    t['k'] = 444;\n    t['l'] = 278;\n    t['m'] = 722;\n    t['n'] = 500;\n    t['o'] = 500;\n    t['p'] = 500;\n    t['q'] = 500;\n    t['r'] = 389;\n    t['s'] = 389;\n    t['t'] = 278;\n    t['u'] = 500;\n    t['v'] = 444;\n    t['w'] = 667;\n    t['x'] = 444;\n    t['y'] = 444;\n    t['z'] = 389;\n    t['braceleft'] = 400;\n    t['bar'] = 275;\n    t['braceright'] = 400;\n    t['asciitilde'] = 541;\n    t['exclamdown'] = 389;\n    t['cent'] = 500;\n    t['sterling'] = 500;\n    t['fraction'] = 167;\n    t['yen'] = 500;\n    t['florin'] = 500;\n    t['section'] = 500;\n    t['currency'] = 500;\n    t['quotesingle'] = 214;\n    t['quotedblleft'] = 556;\n    t['guillemotleft'] = 500;\n    t['guilsinglleft'] = 333;\n    t['guilsinglright'] = 333;\n    t['fi'] = 500;\n    t['fl'] = 500;\n    t['endash'] = 500;\n    t['dagger'] = 500;\n    t['daggerdbl'] = 500;\n    t['periodcentered'] = 250;\n    t['paragraph'] = 523;\n    t['bullet'] = 350;\n    t['quotesinglbase'] = 333;\n    t['quotedblbase'] = 556;\n    t['quotedblright'] = 556;\n    t['guillemotright'] = 500;\n    t['ellipsis'] = 889;\n    t['perthousand'] = 1000;\n    t['questiondown'] = 500;\n    t['grave'] = 333;\n    t['acute'] = 333;\n    t['circumflex'] = 333;\n    t['tilde'] = 333;\n    t['macron'] = 333;\n    t['breve'] = 333;\n    t['dotaccent'] = 333;\n    t['dieresis'] = 333;\n    t['ring'] = 333;\n    t['cedilla'] = 333;\n    t['hungarumlaut'] = 333;\n    t['ogonek'] = 333;\n    t['caron'] = 333;\n    t['emdash'] = 889;\n    t['AE'] = 889;\n    t['ordfeminine'] = 276;\n    t['Lslash'] = 556;\n    t['Oslash'] = 722;\n    t['OE'] = 944;\n    t['ordmasculine'] = 310;\n    t['ae'] = 667;\n    t['dotlessi'] = 278;\n    t['lslash'] = 278;\n    t['oslash'] = 500;\n    t['oe'] = 667;\n    t['germandbls'] = 500;\n    t['Idieresis'] = 333;\n    t['eacute'] = 444;\n    t['abreve'] = 500;\n    t['uhungarumlaut'] = 500;\n    t['ecaron'] = 444;\n    t['Ydieresis'] = 556;\n    t['divide'] = 675;\n    t['Yacute'] = 556;\n    t['Acircumflex'] = 611;\n    t['aacute'] = 500;\n    t['Ucircumflex'] = 722;\n    t['yacute'] = 444;\n    t['scommaaccent'] = 389;\n    t['ecircumflex'] = 444;\n    t['Uring'] = 722;\n    t['Udieresis'] = 722;\n    t['aogonek'] = 500;\n    t['Uacute'] = 722;\n    t['uogonek'] = 500;\n    t['Edieresis'] = 611;\n    t['Dcroat'] = 722;\n    t['commaaccent'] = 250;\n    t['copyright'] = 760;\n    t['Emacron'] = 611;\n    t['ccaron'] = 444;\n    t['aring'] = 500;\n    t['Ncommaaccent'] = 667;\n    t['lacute'] = 278;\n    t['agrave'] = 500;\n    t['Tcommaaccent'] = 556;\n    t['Cacute'] = 667;\n    t['atilde'] = 500;\n    t['Edotaccent'] = 611;\n    t['scaron'] = 389;\n    t['scedilla'] = 389;\n    t['iacute'] = 278;\n    t['lozenge'] = 471;\n    t['Rcaron'] = 611;\n    t['Gcommaaccent'] = 722;\n    t['ucircumflex'] = 500;\n    t['acircumflex'] = 500;\n    t['Amacron'] = 611;\n    t['rcaron'] = 389;\n    t['ccedilla'] = 444;\n    t['Zdotaccent'] = 556;\n    t['Thorn'] = 611;\n    t['Omacron'] = 722;\n    t['Racute'] = 611;\n    t['Sacute'] = 500;\n    t['dcaron'] = 544;\n    t['Umacron'] = 722;\n    t['uring'] = 500;\n    t['threesuperior'] = 300;\n    t['Ograve'] = 722;\n    t['Agrave'] = 611;\n    t['Abreve'] = 611;\n    t['multiply'] = 675;\n    t['uacute'] = 500;\n    t['Tcaron'] = 556;\n    t['partialdiff'] = 476;\n    t['ydieresis'] = 444;\n    t['Nacute'] = 667;\n    t['icircumflex'] = 278;\n    t['Ecircumflex'] = 611;\n    t['adieresis'] = 500;\n    t['edieresis'] = 444;\n    t['cacute'] = 444;\n    t['nacute'] = 500;\n    t['umacron'] = 500;\n    t['Ncaron'] = 667;\n    t['Iacute'] = 333;\n    t['plusminus'] = 675;\n    t['brokenbar'] = 275;\n    t['registered'] = 760;\n    t['Gbreve'] = 722;\n    t['Idotaccent'] = 333;\n    t['summation'] = 600;\n    t['Egrave'] = 611;\n    t['racute'] = 389;\n    t['omacron'] = 500;\n    t['Zacute'] = 556;\n    t['Zcaron'] = 556;\n    t['greaterequal'] = 549;\n    t['Eth'] = 722;\n    t['Ccedilla'] = 667;\n    t['lcommaaccent'] = 278;\n    t['tcaron'] = 300;\n    t['eogonek'] = 444;\n    t['Uogonek'] = 722;\n    t['Aacute'] = 611;\n    t['Adieresis'] = 611;\n    t['egrave'] = 444;\n    t['zacute'] = 389;\n    t['iogonek'] = 278;\n    t['Oacute'] = 722;\n    t['oacute'] = 500;\n    t['amacron'] = 500;\n    t['sacute'] = 389;\n    t['idieresis'] = 278;\n    t['Ocircumflex'] = 722;\n    t['Ugrave'] = 722;\n    t['Delta'] = 612;\n    t['thorn'] = 500;\n    t['twosuperior'] = 300;\n    t['Odieresis'] = 722;\n    t['mu'] = 500;\n    t['igrave'] = 278;\n    t['ohungarumlaut'] = 500;\n    t['Eogonek'] = 611;\n    t['dcroat'] = 500;\n    t['threequarters'] = 750;\n    t['Scedilla'] = 500;\n    t['lcaron'] = 300;\n    t['Kcommaaccent'] = 667;\n    t['Lacute'] = 556;\n    t['trademark'] = 980;\n    t['edotaccent'] = 444;\n    t['Igrave'] = 333;\n    t['Imacron'] = 333;\n    t['Lcaron'] = 611;\n    t['onehalf'] = 750;\n    t['lessequal'] = 549;\n    t['ocircumflex'] = 500;\n    t['ntilde'] = 500;\n    t['Uhungarumlaut'] = 722;\n    t['Eacute'] = 611;\n    t['emacron'] = 444;\n    t['gbreve'] = 500;\n    t['onequarter'] = 750;\n    t['Scaron'] = 500;\n    t['Scommaaccent'] = 500;\n    t['Ohungarumlaut'] = 722;\n    t['degree'] = 400;\n    t['ograve'] = 500;\n    t['Ccaron'] = 667;\n    t['ugrave'] = 500;\n    t['radical'] = 453;\n    t['Dcaron'] = 722;\n    t['rcommaaccent'] = 389;\n    t['Ntilde'] = 667;\n    t['otilde'] = 500;\n    t['Rcommaaccent'] = 611;\n    t['Lcommaaccent'] = 556;\n    t['Atilde'] = 611;\n    t['Aogonek'] = 611;\n    t['Aring'] = 611;\n    t['Otilde'] = 722;\n    t['zdotaccent'] = 389;\n    t['Ecaron'] = 611;\n    t['Iogonek'] = 333;\n    t['kcommaaccent'] = 444;\n    t['minus'] = 675;\n    t['Icircumflex'] = 333;\n    t['ncaron'] = 500;\n    t['tcommaaccent'] = 278;\n    t['logicalnot'] = 675;\n    t['odieresis'] = 500;\n    t['udieresis'] = 500;\n    t['notequal'] = 549;\n    t['gcommaaccent'] = 500;\n    t['eth'] = 500;\n    t['zcaron'] = 389;\n    t['ncommaaccent'] = 500;\n    t['onesuperior'] = 300;\n    t['imacron'] = 278;\n    t['Euro'] = 500;\n  });\n  t['ZapfDingbats'] = (0, _util.getLookupTableFactory)(function (t) {\n    t['space'] = 278;\n    t['a1'] = 974;\n    t['a2'] = 961;\n    t['a202'] = 974;\n    t['a3'] = 980;\n    t['a4'] = 719;\n    t['a5'] = 789;\n    t['a119'] = 790;\n    t['a118'] = 791;\n    t['a117'] = 690;\n    t['a11'] = 960;\n    t['a12'] = 939;\n    t['a13'] = 549;\n    t['a14'] = 855;\n    t['a15'] = 911;\n    t['a16'] = 933;\n    t['a105'] = 911;\n    t['a17'] = 945;\n    t['a18'] = 974;\n    t['a19'] = 755;\n    t['a20'] = 846;\n    t['a21'] = 762;\n    t['a22'] = 761;\n    t['a23'] = 571;\n    t['a24'] = 677;\n    t['a25'] = 763;\n    t['a26'] = 760;\n    t['a27'] = 759;\n    t['a28'] = 754;\n    t['a6'] = 494;\n    t['a7'] = 552;\n    t['a8'] = 537;\n    t['a9'] = 577;\n    t['a10'] = 692;\n    t['a29'] = 786;\n    t['a30'] = 788;\n    t['a31'] = 788;\n    t['a32'] = 790;\n    t['a33'] = 793;\n    t['a34'] = 794;\n    t['a35'] = 816;\n    t['a36'] = 823;\n    t['a37'] = 789;\n    t['a38'] = 841;\n    t['a39'] = 823;\n    t['a40'] = 833;\n    t['a41'] = 816;\n    t['a42'] = 831;\n    t['a43'] = 923;\n    t['a44'] = 744;\n    t['a45'] = 723;\n    t['a46'] = 749;\n    t['a47'] = 790;\n    t['a48'] = 792;\n    t['a49'] = 695;\n    t['a50'] = 776;\n    t['a51'] = 768;\n    t['a52'] = 792;\n    t['a53'] = 759;\n    t['a54'] = 707;\n    t['a55'] = 708;\n    t['a56'] = 682;\n    t['a57'] = 701;\n    t['a58'] = 826;\n    t['a59'] = 815;\n    t['a60'] = 789;\n    t['a61'] = 789;\n    t['a62'] = 707;\n    t['a63'] = 687;\n    t['a64'] = 696;\n    t['a65'] = 689;\n    t['a66'] = 786;\n    t['a67'] = 787;\n    t['a68'] = 713;\n    t['a69'] = 791;\n    t['a70'] = 785;\n    t['a71'] = 791;\n    t['a72'] = 873;\n    t['a73'] = 761;\n    t['a74'] = 762;\n    t['a203'] = 762;\n    t['a75'] = 759;\n    t['a204'] = 759;\n    t['a76'] = 892;\n    t['a77'] = 892;\n    t['a78'] = 788;\n    t['a79'] = 784;\n    t['a81'] = 438;\n    t['a82'] = 138;\n    t['a83'] = 277;\n    t['a84'] = 415;\n    t['a97'] = 392;\n    t['a98'] = 392;\n    t['a99'] = 668;\n    t['a100'] = 668;\n    t['a89'] = 390;\n    t['a90'] = 390;\n    t['a93'] = 317;\n    t['a94'] = 317;\n    t['a91'] = 276;\n    t['a92'] = 276;\n    t['a205'] = 509;\n    t['a85'] = 509;\n    t['a206'] = 410;\n    t['a86'] = 410;\n    t['a87'] = 234;\n    t['a88'] = 234;\n    t['a95'] = 334;\n    t['a96'] = 334;\n    t['a101'] = 732;\n    t['a102'] = 544;\n    t['a103'] = 544;\n    t['a104'] = 910;\n    t['a106'] = 667;\n    t['a107'] = 760;\n    t['a108'] = 760;\n    t['a112'] = 776;\n    t['a111'] = 595;\n    t['a110'] = 694;\n    t['a109'] = 626;\n    t['a120'] = 788;\n    t['a121'] = 788;\n    t['a122'] = 788;\n    t['a123'] = 788;\n    t['a124'] = 788;\n    t['a125'] = 788;\n    t['a126'] = 788;\n    t['a127'] = 788;\n    t['a128'] = 788;\n    t['a129'] = 788;\n    t['a130'] = 788;\n    t['a131'] = 788;\n    t['a132'] = 788;\n    t['a133'] = 788;\n    t['a134'] = 788;\n    t['a135'] = 788;\n    t['a136'] = 788;\n    t['a137'] = 788;\n    t['a138'] = 788;\n    t['a139'] = 788;\n    t['a140'] = 788;\n    t['a141'] = 788;\n    t['a142'] = 788;\n    t['a143'] = 788;\n    t['a144'] = 788;\n    t['a145'] = 788;\n    t['a146'] = 788;\n    t['a147'] = 788;\n    t['a148'] = 788;\n    t['a149'] = 788;\n    t['a150'] = 788;\n    t['a151'] = 788;\n    t['a152'] = 788;\n    t['a153'] = 788;\n    t['a154'] = 788;\n    t['a155'] = 788;\n    t['a156'] = 788;\n    t['a157'] = 788;\n    t['a158'] = 788;\n    t['a159'] = 788;\n    t['a160'] = 894;\n    t['a161'] = 838;\n    t['a163'] = 1016;\n    t['a164'] = 458;\n    t['a196'] = 748;\n    t['a165'] = 924;\n    t['a192'] = 748;\n    t['a166'] = 918;\n    t['a167'] = 927;\n    t['a168'] = 928;\n    t['a169'] = 928;\n    t['a170'] = 834;\n    t['a171'] = 873;\n    t['a172'] = 828;\n    t['a173'] = 924;\n    t['a162'] = 924;\n    t['a174'] = 917;\n    t['a175'] = 930;\n    t['a176'] = 931;\n    t['a177'] = 463;\n    t['a178'] = 883;\n    t['a179'] = 836;\n    t['a193'] = 836;\n    t['a180'] = 867;\n    t['a199'] = 867;\n    t['a181'] = 696;\n    t['a200'] = 696;\n    t['a182'] = 874;\n    t['a201'] = 874;\n    t['a183'] = 760;\n    t['a184'] = 946;\n    t['a197'] = 771;\n    t['a185'] = 865;\n    t['a194'] = 771;\n    t['a198'] = 888;\n    t['a186'] = 967;\n    t['a195'] = 888;\n    t['a187'] = 831;\n    t['a188'] = 873;\n    t['a189'] = 927;\n    t['a190'] = 970;\n    t['a191'] = 918;\n  });\n});\nexports.getMetrics = getMetrics;\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isPDFFunction = isPDFFunction;\nexports.PostScriptCompiler = exports.PostScriptEvaluator = exports.PDFFunctionFactory = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _ps_parser = __w_pdfjs_require__(186);\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar IsEvalSupportedCached = {\n  get value() {\n    return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n  }\n\n};\n\nvar PDFFunctionFactory =\n/*#__PURE__*/\nfunction () {\n  function PDFFunctionFactory(_ref) {\n    var xref = _ref.xref,\n        _ref$isEvalSupported = _ref.isEvalSupported,\n        isEvalSupported = _ref$isEvalSupported === void 0 ? true : _ref$isEvalSupported;\n\n    _classCallCheck(this, PDFFunctionFactory);\n\n    this.xref = xref;\n    this.isEvalSupported = isEvalSupported !== false;\n  }\n\n  _createClass(PDFFunctionFactory, [{\n    key: \"create\",\n    value: function create(fn) {\n      return PDFFunction.parse({\n        xref: this.xref,\n        isEvalSupported: this.isEvalSupported,\n        fn: fn\n      });\n    }\n  }, {\n    key: \"createFromArray\",\n    value: function createFromArray(fnObj) {\n      return PDFFunction.parseArray({\n        xref: this.xref,\n        isEvalSupported: this.isEvalSupported,\n        fnObj: fnObj\n      });\n    }\n  }]);\n\n  return PDFFunctionFactory;\n}();\n\nexports.PDFFunctionFactory = PDFFunctionFactory;\n\nfunction toNumberArray(arr) {\n  if (!Array.isArray(arr)) {\n    return null;\n  }\n\n  var length = arr.length;\n\n  for (var i = 0; i < length; i++) {\n    if (typeof arr[i] !== 'number') {\n      var result = new Array(length);\n\n      for (var _i = 0; _i < length; _i++) {\n        result[_i] = +arr[_i];\n      }\n\n      return result;\n    }\n  }\n\n  return arr;\n}\n\nvar PDFFunction = function PDFFunctionClosure() {\n  var CONSTRUCT_SAMPLED = 0;\n  var CONSTRUCT_INTERPOLATED = 2;\n  var CONSTRUCT_STICHED = 3;\n  var CONSTRUCT_POSTSCRIPT = 4;\n  return {\n    getSampleArray: function getSampleArray(size, outputSize, bps, stream) {\n      var i, ii;\n      var length = 1;\n\n      for (i = 0, ii = size.length; i < ii; i++) {\n        length *= size[i];\n      }\n\n      length *= outputSize;\n      var array = new Array(length);\n      var codeSize = 0;\n      var codeBuf = 0;\n      var sampleMul = 1.0 / (Math.pow(2.0, bps) - 1);\n      var strBytes = stream.getBytes((length * bps + 7) / 8);\n      var strIdx = 0;\n\n      for (i = 0; i < length; i++) {\n        while (codeSize < bps) {\n          codeBuf <<= 8;\n          codeBuf |= strBytes[strIdx++];\n          codeSize += 8;\n        }\n\n        codeSize -= bps;\n        array[i] = (codeBuf >> codeSize) * sampleMul;\n        codeBuf &= (1 << codeSize) - 1;\n      }\n\n      return array;\n    },\n    getIR: function getIR(_ref2) {\n      var xref = _ref2.xref,\n          isEvalSupported = _ref2.isEvalSupported,\n          fn = _ref2.fn;\n      var dict = fn.dict;\n\n      if (!dict) {\n        dict = fn;\n      }\n\n      var types = [this.constructSampled, null, this.constructInterpolated, this.constructStiched, this.constructPostScript];\n      var typeNum = dict.get('FunctionType');\n      var typeFn = types[typeNum];\n\n      if (!typeFn) {\n        throw new _util.FormatError('Unknown type of function');\n      }\n\n      return typeFn.call(this, {\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        fn: fn,\n        dict: dict\n      });\n    },\n    fromIR: function fromIR(_ref3) {\n      var xref = _ref3.xref,\n          isEvalSupported = _ref3.isEvalSupported,\n          IR = _ref3.IR;\n      var type = IR[0];\n\n      switch (type) {\n        case CONSTRUCT_SAMPLED:\n          return this.constructSampledFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        case CONSTRUCT_INTERPOLATED:\n          return this.constructInterpolatedFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        case CONSTRUCT_STICHED:\n          return this.constructStichedFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n\n        default:\n          return this.constructPostScriptFromIR({\n            xref: xref,\n            isEvalSupported: isEvalSupported,\n            IR: IR\n          });\n      }\n    },\n    parse: function parse(_ref4) {\n      var xref = _ref4.xref,\n          isEvalSupported = _ref4.isEvalSupported,\n          fn = _ref4.fn;\n      var IR = this.getIR({\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        fn: fn\n      });\n      return this.fromIR({\n        xref: xref,\n        isEvalSupported: isEvalSupported,\n        IR: IR\n      });\n    },\n    parseArray: function parseArray(_ref5) {\n      var xref = _ref5.xref,\n          isEvalSupported = _ref5.isEvalSupported,\n          fnObj = _ref5.fnObj;\n\n      if (!Array.isArray(fnObj)) {\n        return this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: fnObj\n        });\n      }\n\n      var fnArray = [];\n\n      for (var j = 0, jj = fnObj.length; j < jj; j++) {\n        fnArray.push(this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: xref.fetchIfRef(fnObj[j])\n        }));\n      }\n\n      return function (src, srcOffset, dest, destOffset) {\n        for (var i = 0, ii = fnArray.length; i < ii; i++) {\n          fnArray[i](src, srcOffset, dest, destOffset + i);\n        }\n      };\n    },\n    constructSampled: function constructSampled(_ref6) {\n      var xref = _ref6.xref,\n          isEvalSupported = _ref6.isEvalSupported,\n          fn = _ref6.fn,\n          dict = _ref6.dict;\n\n      function toMultiArray(arr) {\n        var inputLength = arr.length;\n        var out = [];\n        var index = 0;\n\n        for (var i = 0; i < inputLength; i += 2) {\n          out[index] = [arr[i], arr[i + 1]];\n          ++index;\n        }\n\n        return out;\n      }\n\n      var domain = toNumberArray(dict.getArray('Domain'));\n      var range = toNumberArray(dict.getArray('Range'));\n\n      if (!domain || !range) {\n        throw new _util.FormatError('No domain or range');\n      }\n\n      var inputSize = domain.length / 2;\n      var outputSize = range.length / 2;\n      domain = toMultiArray(domain);\n      range = toMultiArray(range);\n      var size = toNumberArray(dict.getArray('Size'));\n      var bps = dict.get('BitsPerSample');\n      var order = dict.get('Order') || 1;\n\n      if (order !== 1) {\n        (0, _util.info)('No support for cubic spline interpolation: ' + order);\n      }\n\n      var encode = toNumberArray(dict.getArray('Encode'));\n\n      if (!encode) {\n        encode = [];\n\n        for (var i = 0; i < inputSize; ++i) {\n          encode.push([0, size[i] - 1]);\n        }\n      } else {\n        encode = toMultiArray(encode);\n      }\n\n      var decode = toNumberArray(dict.getArray('Decode'));\n\n      if (!decode) {\n        decode = range;\n      } else {\n        decode = toMultiArray(decode);\n      }\n\n      var samples = this.getSampleArray(size, outputSize, bps, fn);\n      return [CONSTRUCT_SAMPLED, inputSize, domain, encode, decode, samples, size, outputSize, Math.pow(2, bps) - 1, range];\n    },\n    constructSampledFromIR: function constructSampledFromIR(_ref7) {\n      var xref = _ref7.xref,\n          isEvalSupported = _ref7.isEvalSupported,\n          IR = _ref7.IR;\n\n      function interpolate(x, xmin, xmax, ymin, ymax) {\n        return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n      }\n\n      return function constructSampledFromIRResult(src, srcOffset, dest, destOffset) {\n        var m = IR[1];\n        var domain = IR[2];\n        var encode = IR[3];\n        var decode = IR[4];\n        var samples = IR[5];\n        var size = IR[6];\n        var n = IR[7];\n        var range = IR[9];\n        var cubeVertices = 1 << m;\n        var cubeN = new Float64Array(cubeVertices);\n        var cubeVertex = new Uint32Array(cubeVertices);\n        var i, j;\n\n        for (j = 0; j < cubeVertices; j++) {\n          cubeN[j] = 1;\n        }\n\n        var k = n,\n            pos = 1;\n\n        for (i = 0; i < m; ++i) {\n          var domain_2i = domain[i][0];\n          var domain_2i_1 = domain[i][1];\n          var xi = Math.min(Math.max(src[srcOffset + i], domain_2i), domain_2i_1);\n          var e = interpolate(xi, domain_2i, domain_2i_1, encode[i][0], encode[i][1]);\n          var size_i = size[i];\n          e = Math.min(Math.max(e, 0), size_i - 1);\n          var e0 = e < size_i - 1 ? Math.floor(e) : e - 1;\n          var n0 = e0 + 1 - e;\n          var n1 = e - e0;\n          var offset0 = e0 * k;\n          var offset1 = offset0 + k;\n\n          for (j = 0; j < cubeVertices; j++) {\n            if (j & pos) {\n              cubeN[j] *= n1;\n              cubeVertex[j] += offset1;\n            } else {\n              cubeN[j] *= n0;\n              cubeVertex[j] += offset0;\n            }\n          }\n\n          k *= size_i;\n          pos <<= 1;\n        }\n\n        for (j = 0; j < n; ++j) {\n          var rj = 0;\n\n          for (i = 0; i < cubeVertices; i++) {\n            rj += samples[cubeVertex[i] + j] * cubeN[i];\n          }\n\n          rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n          dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n        }\n      };\n    },\n    constructInterpolated: function constructInterpolated(_ref8) {\n      var xref = _ref8.xref,\n          isEvalSupported = _ref8.isEvalSupported,\n          fn = _ref8.fn,\n          dict = _ref8.dict;\n      var c0 = toNumberArray(dict.getArray('C0')) || [0];\n      var c1 = toNumberArray(dict.getArray('C1')) || [1];\n      var n = dict.get('N');\n      var length = c0.length;\n      var diff = [];\n\n      for (var i = 0; i < length; ++i) {\n        diff.push(c1[i] - c0[i]);\n      }\n\n      return [CONSTRUCT_INTERPOLATED, c0, diff, n];\n    },\n    constructInterpolatedFromIR: function constructInterpolatedFromIR(_ref9) {\n      var xref = _ref9.xref,\n          isEvalSupported = _ref9.isEvalSupported,\n          IR = _ref9.IR;\n      var c0 = IR[1];\n      var diff = IR[2];\n      var n = IR[3];\n      var length = diff.length;\n      return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) {\n        var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n);\n\n        for (var j = 0; j < length; ++j) {\n          dest[destOffset + j] = c0[j] + x * diff[j];\n        }\n      };\n    },\n    constructStiched: function constructStiched(_ref10) {\n      var xref = _ref10.xref,\n          isEvalSupported = _ref10.isEvalSupported,\n          fn = _ref10.fn,\n          dict = _ref10.dict;\n      var domain = toNumberArray(dict.getArray('Domain'));\n\n      if (!domain) {\n        throw new _util.FormatError('No domain');\n      }\n\n      var inputSize = domain.length / 2;\n\n      if (inputSize !== 1) {\n        throw new _util.FormatError('Bad domain for stiched function');\n      }\n\n      var fnRefs = dict.get('Functions');\n      var fns = [];\n\n      for (var i = 0, ii = fnRefs.length; i < ii; ++i) {\n        fns.push(this.parse({\n          xref: xref,\n          isEvalSupported: isEvalSupported,\n          fn: xref.fetchIfRef(fnRefs[i])\n        }));\n      }\n\n      var bounds = toNumberArray(dict.getArray('Bounds'));\n      var encode = toNumberArray(dict.getArray('Encode'));\n      return [CONSTRUCT_STICHED, domain, bounds, encode, fns];\n    },\n    constructStichedFromIR: function constructStichedFromIR(_ref11) {\n      var xref = _ref11.xref,\n          isEvalSupported = _ref11.isEvalSupported,\n          IR = _ref11.IR;\n      var domain = IR[1];\n      var bounds = IR[2];\n      var encode = IR[3];\n      var fns = IR[4];\n      var tmpBuf = new Float32Array(1);\n      return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) {\n        var clip = function constructStichedFromIRClip(v, min, max) {\n          if (v > max) {\n            v = max;\n          } else if (v < min) {\n            v = min;\n          }\n\n          return v;\n        };\n\n        var v = clip(src[srcOffset], domain[0], domain[1]);\n\n        for (var i = 0, ii = bounds.length; i < ii; ++i) {\n          if (v < bounds[i]) {\n            break;\n          }\n        }\n\n        var dmin = domain[0];\n\n        if (i > 0) {\n          dmin = bounds[i - 1];\n        }\n\n        var dmax = domain[1];\n\n        if (i < bounds.length) {\n          dmax = bounds[i];\n        }\n\n        var rmin = encode[2 * i];\n        var rmax = encode[2 * i + 1];\n        tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin);\n        fns[i](tmpBuf, 0, dest, destOffset);\n      };\n    },\n    constructPostScript: function constructPostScript(_ref12) {\n      var xref = _ref12.xref,\n          isEvalSupported = _ref12.isEvalSupported,\n          fn = _ref12.fn,\n          dict = _ref12.dict;\n      var domain = toNumberArray(dict.getArray('Domain'));\n      var range = toNumberArray(dict.getArray('Range'));\n\n      if (!domain) {\n        throw new _util.FormatError('No domain.');\n      }\n\n      if (!range) {\n        throw new _util.FormatError('No range.');\n      }\n\n      var lexer = new _ps_parser.PostScriptLexer(fn);\n      var parser = new _ps_parser.PostScriptParser(lexer);\n      var code = parser.parse();\n      return [CONSTRUCT_POSTSCRIPT, domain, range, code];\n    },\n    constructPostScriptFromIR: function constructPostScriptFromIR(_ref13) {\n      var xref = _ref13.xref,\n          isEvalSupported = _ref13.isEvalSupported,\n          IR = _ref13.IR;\n      var domain = IR[1];\n      var range = IR[2];\n      var code = IR[3];\n\n      if (isEvalSupported && IsEvalSupportedCached.value) {\n        var compiled = new PostScriptCompiler().compile(code, domain, range);\n\n        if (compiled) {\n          return new Function('src', 'srcOffset', 'dest', 'destOffset', compiled);\n        }\n      }\n\n      (0, _util.info)('Unable to compile PS function');\n      var numOutputs = range.length >> 1;\n      var numInputs = domain.length >> 1;\n      var evaluator = new PostScriptEvaluator(code);\n      var cache = Object.create(null);\n      var MAX_CACHE_SIZE = 2048 * 4;\n      var cache_available = MAX_CACHE_SIZE;\n      var tmpBuf = new Float32Array(numInputs);\n      return function constructPostScriptFromIRResult(src, srcOffset, dest, destOffset) {\n        var i, value;\n        var key = '';\n        var input = tmpBuf;\n\n        for (i = 0; i < numInputs; i++) {\n          value = src[srcOffset + i];\n          input[i] = value;\n          key += value + '_';\n        }\n\n        var cachedValue = cache[key];\n\n        if (cachedValue !== undefined) {\n          dest.set(cachedValue, destOffset);\n          return;\n        }\n\n        var output = new Float32Array(numOutputs);\n        var stack = evaluator.execute(input);\n        var stackIndex = stack.length - numOutputs;\n\n        for (i = 0; i < numOutputs; i++) {\n          value = stack[stackIndex + i];\n          var bound = range[i * 2];\n\n          if (value < bound) {\n            value = bound;\n          } else {\n            bound = range[i * 2 + 1];\n\n            if (value > bound) {\n              value = bound;\n            }\n          }\n\n          output[i] = value;\n        }\n\n        if (cache_available > 0) {\n          cache_available--;\n          cache[key] = output;\n        }\n\n        dest.set(output, destOffset);\n      };\n    }\n  };\n}();\n\nfunction isPDFFunction(v) {\n  var fnDict;\n\n  if (_typeof(v) !== 'object') {\n    return false;\n  } else if ((0, _primitives.isDict)(v)) {\n    fnDict = v;\n  } else if ((0, _primitives.isStream)(v)) {\n    fnDict = v.dict;\n  } else {\n    return false;\n  }\n\n  return fnDict.has('FunctionType');\n}\n\nvar PostScriptStack = function PostScriptStackClosure() {\n  var MAX_STACK_SIZE = 100;\n\n  function PostScriptStack(initialStack) {\n    this.stack = !initialStack ? [] : Array.prototype.slice.call(initialStack, 0);\n  }\n\n  PostScriptStack.prototype = {\n    push: function PostScriptStack_push(value) {\n      if (this.stack.length >= MAX_STACK_SIZE) {\n        throw new Error('PostScript function stack overflow.');\n      }\n\n      this.stack.push(value);\n    },\n    pop: function PostScriptStack_pop() {\n      if (this.stack.length <= 0) {\n        throw new Error('PostScript function stack underflow.');\n      }\n\n      return this.stack.pop();\n    },\n    copy: function PostScriptStack_copy(n) {\n      if (this.stack.length + n >= MAX_STACK_SIZE) {\n        throw new Error('PostScript function stack overflow.');\n      }\n\n      var stack = this.stack;\n\n      for (var i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n        stack.push(stack[i]);\n      }\n    },\n    index: function PostScriptStack_index(n) {\n      this.push(this.stack[this.stack.length - n - 1]);\n    },\n    roll: function PostScriptStack_roll(n, p) {\n      var stack = this.stack;\n      var l = stack.length - n;\n      var r = stack.length - 1,\n          c = l + (p - Math.floor(p / n) * n),\n          i,\n          j,\n          t;\n\n      for (i = l, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n\n      for (i = l, j = c - 1; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n\n      for (i = c, j = r; i < j; i++, j--) {\n        t = stack[i];\n        stack[i] = stack[j];\n        stack[j] = t;\n      }\n    }\n  };\n  return PostScriptStack;\n}();\n\nvar PostScriptEvaluator = function PostScriptEvaluatorClosure() {\n  function PostScriptEvaluator(operators) {\n    this.operators = operators;\n  }\n\n  PostScriptEvaluator.prototype = {\n    execute: function PostScriptEvaluator_execute(initialStack) {\n      var stack = new PostScriptStack(initialStack);\n      var counter = 0;\n      var operators = this.operators;\n      var length = operators.length;\n      var operator, a, b;\n\n      while (counter < length) {\n        operator = operators[counter++];\n\n        if (typeof operator === 'number') {\n          stack.push(operator);\n          continue;\n        }\n\n        switch (operator) {\n          case 'jz':\n            b = stack.pop();\n            a = stack.pop();\n\n            if (!a) {\n              counter = b;\n            }\n\n            break;\n\n          case 'j':\n            a = stack.pop();\n            counter = a;\n            break;\n\n          case 'abs':\n            a = stack.pop();\n            stack.push(Math.abs(a));\n            break;\n\n          case 'add':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a + b);\n            break;\n\n          case 'and':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a && b);\n            } else {\n              stack.push(a & b);\n            }\n\n            break;\n\n          case 'atan':\n            a = stack.pop();\n            stack.push(Math.atan(a));\n            break;\n\n          case 'bitshift':\n            b = stack.pop();\n            a = stack.pop();\n\n            if (a > 0) {\n              stack.push(a << b);\n            } else {\n              stack.push(a >> b);\n            }\n\n            break;\n\n          case 'ceiling':\n            a = stack.pop();\n            stack.push(Math.ceil(a));\n            break;\n\n          case 'copy':\n            a = stack.pop();\n            stack.copy(a);\n            break;\n\n          case 'cos':\n            a = stack.pop();\n            stack.push(Math.cos(a));\n            break;\n\n          case 'cvi':\n            a = stack.pop() | 0;\n            stack.push(a);\n            break;\n\n          case 'cvr':\n            break;\n\n          case 'div':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b);\n            break;\n\n          case 'dup':\n            stack.copy(1);\n            break;\n\n          case 'eq':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a === b);\n            break;\n\n          case 'exch':\n            stack.roll(2, 1);\n            break;\n\n          case 'exp':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(Math.pow(a, b));\n            break;\n\n          case 'false':\n            stack.push(false);\n            break;\n\n          case 'floor':\n            a = stack.pop();\n            stack.push(Math.floor(a));\n            break;\n\n          case 'ge':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a >= b);\n            break;\n\n          case 'gt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a > b);\n            break;\n\n          case 'idiv':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a / b | 0);\n            break;\n\n          case 'index':\n            a = stack.pop();\n            stack.index(a);\n            break;\n\n          case 'le':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a <= b);\n            break;\n\n          case 'ln':\n            a = stack.pop();\n            stack.push(Math.log(a));\n            break;\n\n          case 'log':\n            a = stack.pop();\n            stack.push(Math.log(a) / Math.LN10);\n            break;\n\n          case 'lt':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a < b);\n            break;\n\n          case 'mod':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a % b);\n            break;\n\n          case 'mul':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a * b);\n            break;\n\n          case 'ne':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a !== b);\n            break;\n\n          case 'neg':\n            a = stack.pop();\n            stack.push(-a);\n            break;\n\n          case 'not':\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a)) {\n              stack.push(!a);\n            } else {\n              stack.push(~a);\n            }\n\n            break;\n\n          case 'or':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a || b);\n            } else {\n              stack.push(a | b);\n            }\n\n            break;\n\n          case 'pop':\n            stack.pop();\n            break;\n\n          case 'roll':\n            b = stack.pop();\n            a = stack.pop();\n            stack.roll(a, b);\n            break;\n\n          case 'round':\n            a = stack.pop();\n            stack.push(Math.round(a));\n            break;\n\n          case 'sin':\n            a = stack.pop();\n            stack.push(Math.sin(a));\n            break;\n\n          case 'sqrt':\n            a = stack.pop();\n            stack.push(Math.sqrt(a));\n            break;\n\n          case 'sub':\n            b = stack.pop();\n            a = stack.pop();\n            stack.push(a - b);\n            break;\n\n          case 'true':\n            stack.push(true);\n            break;\n\n          case 'truncate':\n            a = stack.pop();\n            a = a < 0 ? Math.ceil(a) : Math.floor(a);\n            stack.push(a);\n            break;\n\n          case 'xor':\n            b = stack.pop();\n            a = stack.pop();\n\n            if ((0, _util.isBool)(a) && (0, _util.isBool)(b)) {\n              stack.push(a !== b);\n            } else {\n              stack.push(a ^ b);\n            }\n\n            break;\n\n          default:\n            throw new _util.FormatError(\"Unknown operator \".concat(operator));\n        }\n      }\n\n      return stack.stack;\n    }\n  };\n  return PostScriptEvaluator;\n}();\n\nexports.PostScriptEvaluator = PostScriptEvaluator;\n\nvar PostScriptCompiler = function PostScriptCompilerClosure() {\n  function AstNode(type) {\n    this.type = type;\n  }\n\n  AstNode.prototype.visit = function (visitor) {\n    (0, _util.unreachable)('abstract method');\n  };\n\n  function AstArgument(index, min, max) {\n    AstNode.call(this, 'args');\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstArgument.prototype = Object.create(AstNode.prototype);\n\n  AstArgument.prototype.visit = function (visitor) {\n    visitor.visitArgument(this);\n  };\n\n  function AstLiteral(number) {\n    AstNode.call(this, 'literal');\n    this.number = number;\n    this.min = number;\n    this.max = number;\n  }\n\n  AstLiteral.prototype = Object.create(AstNode.prototype);\n\n  AstLiteral.prototype.visit = function (visitor) {\n    visitor.visitLiteral(this);\n  };\n\n  function AstBinaryOperation(op, arg1, arg2, min, max) {\n    AstNode.call(this, 'binary');\n    this.op = op;\n    this.arg1 = arg1;\n    this.arg2 = arg2;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstBinaryOperation.prototype = Object.create(AstNode.prototype);\n\n  AstBinaryOperation.prototype.visit = function (visitor) {\n    visitor.visitBinaryOperation(this);\n  };\n\n  function AstMin(arg, max) {\n    AstNode.call(this, 'max');\n    this.arg = arg;\n    this.min = arg.min;\n    this.max = max;\n  }\n\n  AstMin.prototype = Object.create(AstNode.prototype);\n\n  AstMin.prototype.visit = function (visitor) {\n    visitor.visitMin(this);\n  };\n\n  function AstVariable(index, min, max) {\n    AstNode.call(this, 'var');\n    this.index = index;\n    this.min = min;\n    this.max = max;\n  }\n\n  AstVariable.prototype = Object.create(AstNode.prototype);\n\n  AstVariable.prototype.visit = function (visitor) {\n    visitor.visitVariable(this);\n  };\n\n  function AstVariableDefinition(variable, arg) {\n    AstNode.call(this, 'definition');\n    this.variable = variable;\n    this.arg = arg;\n  }\n\n  AstVariableDefinition.prototype = Object.create(AstNode.prototype);\n\n  AstVariableDefinition.prototype.visit = function (visitor) {\n    visitor.visitVariableDefinition(this);\n  };\n\n  function ExpressionBuilderVisitor() {\n    this.parts = [];\n  }\n\n  ExpressionBuilderVisitor.prototype = {\n    visitArgument: function visitArgument(arg) {\n      this.parts.push('Math.max(', arg.min, ', Math.min(', arg.max, ', src[srcOffset + ', arg.index, ']))');\n    },\n    visitVariable: function visitVariable(variable) {\n      this.parts.push('v', variable.index);\n    },\n    visitLiteral: function visitLiteral(literal) {\n      this.parts.push(literal.number);\n    },\n    visitBinaryOperation: function visitBinaryOperation(operation) {\n      this.parts.push('(');\n      operation.arg1.visit(this);\n      this.parts.push(' ', operation.op, ' ');\n      operation.arg2.visit(this);\n      this.parts.push(')');\n    },\n    visitVariableDefinition: function visitVariableDefinition(definition) {\n      this.parts.push('var ');\n      definition.variable.visit(this);\n      this.parts.push(' = ');\n      definition.arg.visit(this);\n      this.parts.push(';');\n    },\n    visitMin: function visitMin(max) {\n      this.parts.push('Math.min(');\n      max.arg.visit(this);\n      this.parts.push(', ', max.max, ')');\n    },\n    toString: function toString() {\n      return this.parts.join('');\n    }\n  };\n\n  function buildAddOperation(num1, num2) {\n    if (num2.type === 'literal' && num2.number === 0) {\n      return num1;\n    }\n\n    if (num1.type === 'literal' && num1.number === 0) {\n      return num2;\n    }\n\n    if (num2.type === 'literal' && num1.type === 'literal') {\n      return new AstLiteral(num1.number + num2.number);\n    }\n\n    return new AstBinaryOperation('+', num1, num2, num1.min + num2.min, num1.max + num2.max);\n  }\n\n  function buildMulOperation(num1, num2) {\n    if (num2.type === 'literal') {\n      if (num2.number === 0) {\n        return new AstLiteral(0);\n      } else if (num2.number === 1) {\n        return num1;\n      } else if (num1.type === 'literal') {\n        return new AstLiteral(num1.number * num2.number);\n      }\n    }\n\n    if (num1.type === 'literal') {\n      if (num1.number === 0) {\n        return new AstLiteral(0);\n      } else if (num1.number === 1) {\n        return num2;\n      }\n    }\n\n    var min = Math.min(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n    var max = Math.max(num1.min * num2.min, num1.min * num2.max, num1.max * num2.min, num1.max * num2.max);\n    return new AstBinaryOperation('*', num1, num2, min, max);\n  }\n\n  function buildSubOperation(num1, num2) {\n    if (num2.type === 'literal') {\n      if (num2.number === 0) {\n        return num1;\n      } else if (num1.type === 'literal') {\n        return new AstLiteral(num1.number - num2.number);\n      }\n    }\n\n    if (num2.type === 'binary' && num2.op === '-' && num1.type === 'literal' && num1.number === 1 && num2.arg1.type === 'literal' && num2.arg1.number === 1) {\n      return num2.arg2;\n    }\n\n    return new AstBinaryOperation('-', num1, num2, num1.min - num2.max, num1.max - num2.min);\n  }\n\n  function buildMinOperation(num1, max) {\n    if (num1.min >= max) {\n      return new AstLiteral(max);\n    } else if (num1.max <= max) {\n      return num1;\n    }\n\n    return new AstMin(num1, max);\n  }\n\n  function PostScriptCompiler() {}\n\n  PostScriptCompiler.prototype = {\n    compile: function PostScriptCompiler_compile(code, domain, range) {\n      var stack = [];\n      var i, ii;\n      var instructions = [];\n      var inputSize = domain.length >> 1,\n          outputSize = range.length >> 1;\n      var lastRegister = 0;\n      var n, j;\n      var num1, num2, ast1, ast2, tmpVar, item;\n\n      for (i = 0; i < inputSize; i++) {\n        stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n      }\n\n      for (i = 0, ii = code.length; i < ii; i++) {\n        item = code[i];\n\n        if (typeof item === 'number') {\n          stack.push(new AstLiteral(item));\n          continue;\n        }\n\n        switch (item) {\n          case 'add':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildAddOperation(num1, num2));\n            break;\n\n          case 'cvr':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            break;\n\n          case 'mul':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildMulOperation(num1, num2));\n            break;\n\n          case 'sub':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n            stack.push(buildSubOperation(num1, num2));\n            break;\n\n          case 'exch':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            ast1 = stack.pop();\n            ast2 = stack.pop();\n            stack.push(ast1, ast2);\n            break;\n\n          case 'pop':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            stack.pop();\n            break;\n\n          case 'index':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            num1 = stack.pop();\n\n            if (num1.type !== 'literal') {\n              return null;\n            }\n\n            n = num1.number;\n\n            if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n              return null;\n            }\n\n            ast1 = stack[stack.length - n - 1];\n\n            if (ast1.type === 'literal' || ast1.type === 'var') {\n              stack.push(ast1);\n              break;\n            }\n\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - n - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n\n          case 'dup':\n            if (stack.length < 1) {\n              return null;\n            }\n\n            if (typeof code[i + 1] === 'number' && code[i + 2] === 'gt' && code[i + 3] === i + 7 && code[i + 4] === 'jz' && code[i + 5] === 'pop' && code[i + 6] === code[i + 1]) {\n              num1 = stack.pop();\n              stack.push(buildMinOperation(num1, code[i + 1]));\n              i += 6;\n              break;\n            }\n\n            ast1 = stack[stack.length - 1];\n\n            if (ast1.type === 'literal' || ast1.type === 'var') {\n              stack.push(ast1);\n              break;\n            }\n\n            tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n            stack[stack.length - 1] = tmpVar;\n            stack.push(tmpVar);\n            instructions.push(new AstVariableDefinition(tmpVar, ast1));\n            break;\n\n          case 'roll':\n            if (stack.length < 2) {\n              return null;\n            }\n\n            num2 = stack.pop();\n            num1 = stack.pop();\n\n            if (num2.type !== 'literal' || num1.type !== 'literal') {\n              return null;\n            }\n\n            j = num2.number;\n            n = num1.number;\n\n            if (n <= 0 || !Number.isInteger(n) || !Number.isInteger(j) || stack.length < n) {\n              return null;\n            }\n\n            j = (j % n + n) % n;\n\n            if (j === 0) {\n              break;\n            }\n\n            Array.prototype.push.apply(stack, stack.splice(stack.length - n, n - j));\n            break;\n\n          default:\n            return null;\n        }\n      }\n\n      if (stack.length !== outputSize) {\n        return null;\n      }\n\n      var result = [];\n      instructions.forEach(function (instruction) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        instruction.visit(statementBuilder);\n        result.push(statementBuilder.toString());\n      });\n      stack.forEach(function (expr, i) {\n        var statementBuilder = new ExpressionBuilderVisitor();\n        expr.visit(statementBuilder);\n        var min = range[i * 2],\n            max = range[i * 2 + 1];\n        var out = [statementBuilder.toString()];\n\n        if (min > expr.min) {\n          out.unshift('Math.max(', min, ', ');\n          out.push(')');\n        }\n\n        if (max < expr.max) {\n          out.unshift('Math.min(', max, ', ');\n          out.push(')');\n        }\n\n        out.unshift('dest[destOffset + ', i, '] = ');\n        out.push(';');\n        result.push(out.join(''));\n      });\n      return result.join('\\n');\n    }\n  };\n  return PostScriptCompiler;\n}();\n\nexports.PostScriptCompiler = PostScriptCompiler;\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PostScriptParser = exports.PostScriptLexer = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar PostScriptParser =\n/*#__PURE__*/\nfunction () {\n  function PostScriptParser(lexer) {\n    _classCallCheck(this, PostScriptParser);\n\n    this.lexer = lexer;\n    this.operators = [];\n    this.token = null;\n    this.prev = null;\n  }\n\n  _createClass(PostScriptParser, [{\n    key: \"nextToken\",\n    value: function nextToken() {\n      this.prev = this.token;\n      this.token = this.lexer.getToken();\n    }\n  }, {\n    key: \"accept\",\n    value: function accept(type) {\n      if (this.token.type === type) {\n        this.nextToken();\n        return true;\n      }\n\n      return false;\n    }\n  }, {\n    key: \"expect\",\n    value: function expect(type) {\n      if (this.accept(type)) {\n        return true;\n      }\n\n      throw new _util.FormatError(\"Unexpected symbol: found \".concat(this.token.type, \" expected \").concat(type, \".\"));\n    }\n  }, {\n    key: \"parse\",\n    value: function parse() {\n      this.nextToken();\n      this.expect(PostScriptTokenTypes.LBRACE);\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n      return this.operators;\n    }\n  }, {\n    key: \"parseBlock\",\n    value: function parseBlock() {\n      while (true) {\n        if (this.accept(PostScriptTokenTypes.NUMBER)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n          this.operators.push(this.prev.value);\n        } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n          this.parseCondition();\n        } else {\n          return;\n        }\n      }\n    }\n  }, {\n    key: \"parseCondition\",\n    value: function parseCondition() {\n      var conditionLocation = this.operators.length;\n      this.operators.push(null, null);\n      this.parseBlock();\n      this.expect(PostScriptTokenTypes.RBRACE);\n\n      if (this.accept(PostScriptTokenTypes.IF)) {\n        this.operators[conditionLocation] = this.operators.length;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n        var jumpLocation = this.operators.length;\n        this.operators.push(null, null);\n        var endOfTrue = this.operators.length;\n        this.parseBlock();\n        this.expect(PostScriptTokenTypes.RBRACE);\n        this.expect(PostScriptTokenTypes.IFELSE);\n        this.operators[jumpLocation] = this.operators.length;\n        this.operators[jumpLocation + 1] = 'j';\n        this.operators[conditionLocation] = endOfTrue;\n        this.operators[conditionLocation + 1] = 'jz';\n      } else {\n        throw new _util.FormatError('PS Function: error parsing conditional.');\n      }\n    }\n  }]);\n\n  return PostScriptParser;\n}();\n\nexports.PostScriptParser = PostScriptParser;\nvar PostScriptTokenTypes = {\n  LBRACE: 0,\n  RBRACE: 1,\n  NUMBER: 2,\n  OPERATOR: 3,\n  IF: 4,\n  IFELSE: 5\n};\n\nvar PostScriptToken = function PostScriptTokenClosure() {\n  var opCache = Object.create(null);\n\n  var PostScriptToken =\n  /*#__PURE__*/\n  function () {\n    function PostScriptToken(type, value) {\n      _classCallCheck(this, PostScriptToken);\n\n      this.type = type;\n      this.value = value;\n    }\n\n    _createClass(PostScriptToken, null, [{\n      key: \"getOperator\",\n      value: function getOperator(op) {\n        var opValue = opCache[op];\n\n        if (opValue) {\n          return opValue;\n        }\n\n        return opCache[op] = new PostScriptToken(PostScriptTokenTypes.OPERATOR, op);\n      }\n    }, {\n      key: \"LBRACE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'LBRACE', new PostScriptToken(PostScriptTokenTypes.LBRACE, '{'));\n      }\n    }, {\n      key: \"RBRACE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'RBRACE', new PostScriptToken(PostScriptTokenTypes.RBRACE, '}'));\n      }\n    }, {\n      key: \"IF\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'IF', new PostScriptToken(PostScriptTokenTypes.IF, 'IF'));\n      }\n    }, {\n      key: \"IFELSE\",\n      get: function get() {\n        return (0, _util.shadow)(this, 'IFELSE', new PostScriptToken(PostScriptTokenTypes.IFELSE, 'IFELSE'));\n      }\n    }]);\n\n    return PostScriptToken;\n  }();\n\n  return PostScriptToken;\n}();\n\nvar PostScriptLexer =\n/*#__PURE__*/\nfunction () {\n  function PostScriptLexer(stream) {\n    _classCallCheck(this, PostScriptLexer);\n\n    this.stream = stream;\n    this.nextChar();\n    this.strBuf = [];\n  }\n\n  _createClass(PostScriptLexer, [{\n    key: \"nextChar\",\n    value: function nextChar() {\n      return this.currentChar = this.stream.getByte();\n    }\n  }, {\n    key: \"getToken\",\n    value: function getToken() {\n      var comment = false;\n      var ch = this.currentChar;\n\n      while (true) {\n        if (ch < 0) {\n          return _primitives.EOF;\n        }\n\n        if (comment) {\n          if (ch === 0x0A || ch === 0x0D) {\n            comment = false;\n          }\n        } else if (ch === 0x25) {\n          comment = true;\n        } else if (!(0, _util.isSpace)(ch)) {\n          break;\n        }\n\n        ch = this.nextChar();\n      }\n\n      switch (ch | 0) {\n        case 0x30:\n        case 0x31:\n        case 0x32:\n        case 0x33:\n        case 0x34:\n        case 0x35:\n        case 0x36:\n        case 0x37:\n        case 0x38:\n        case 0x39:\n        case 0x2B:\n        case 0x2D:\n        case 0x2E:\n          return new PostScriptToken(PostScriptTokenTypes.NUMBER, this.getNumber());\n\n        case 0x7B:\n          this.nextChar();\n          return PostScriptToken.LBRACE;\n\n        case 0x7D:\n          this.nextChar();\n          return PostScriptToken.RBRACE;\n      }\n\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      strBuf[0] = String.fromCharCode(ch);\n\n      while ((ch = this.nextChar()) >= 0 && (ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A)) {\n        strBuf.push(String.fromCharCode(ch));\n      }\n\n      var str = strBuf.join('');\n\n      switch (str.toLowerCase()) {\n        case 'if':\n          return PostScriptToken.IF;\n\n        case 'ifelse':\n          return PostScriptToken.IFELSE;\n\n        default:\n          return PostScriptToken.getOperator(str);\n      }\n    }\n  }, {\n    key: \"getNumber\",\n    value: function getNumber() {\n      var ch = this.currentChar;\n      var strBuf = this.strBuf;\n      strBuf.length = 0;\n      strBuf[0] = String.fromCharCode(ch);\n\n      while ((ch = this.nextChar()) >= 0) {\n        if (ch >= 0x30 && ch <= 0x39 || ch === 0x2D || ch === 0x2E) {\n          strBuf.push(String.fromCharCode(ch));\n        } else {\n          break;\n        }\n      }\n\n      var value = parseFloat(strBuf.join(''));\n\n      if (isNaN(value)) {\n        throw new _util.FormatError(\"Invalid floating point number: \".concat(value));\n      }\n\n      return value;\n    }\n  }]);\n\n  return PostScriptLexer;\n}();\n\nexports.PostScriptLexer = PostScriptLexer;\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar MurmurHash3_64 = function MurmurHash3_64Closure(seed) {\n  var MASK_HIGH = 0xffff0000;\n  var MASK_LOW = 0xffff;\n\n  function MurmurHash3_64(seed) {\n    var SEED = 0xc3d2e1f0;\n    this.h1 = seed ? seed & 0xffffffff : SEED;\n    this.h2 = seed ? seed & 0xffffffff : SEED;\n  }\n\n  MurmurHash3_64.prototype = {\n    update: function MurmurHash3_64_update(input) {\n      var data, length;\n\n      if ((0, _util.isString)(input)) {\n        data = new Uint8Array(input.length * 2);\n        length = 0;\n\n        for (var i = 0, ii = input.length; i < ii; i++) {\n          var code = input.charCodeAt(i);\n\n          if (code <= 0xff) {\n            data[length++] = code;\n          } else {\n            data[length++] = code >>> 8;\n            data[length++] = code & 0xff;\n          }\n        }\n      } else if ((0, _util.isArrayBuffer)(input)) {\n        data = input;\n        length = data.byteLength;\n      } else {\n        throw new Error('Wrong data format in MurmurHash3_64_update. ' + 'Input must be a string or array.');\n      }\n\n      var blockCounts = length >> 2;\n      var tailLength = length - blockCounts * 4;\n      var dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n      var k1 = 0;\n      var k2 = 0;\n      var h1 = this.h1;\n      var h2 = this.h2;\n      var C1 = 0xcc9e2d51;\n      var C2 = 0x1b873593;\n      var C1_LOW = C1 & MASK_LOW;\n      var C2_LOW = C2 & MASK_LOW;\n\n      for (var _i = 0; _i < blockCounts; _i++) {\n        if (_i & 1) {\n          k1 = dataUint32[_i];\n          k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n          k1 = k1 << 15 | k1 >>> 17;\n          k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n          h1 ^= k1;\n          h1 = h1 << 13 | h1 >>> 19;\n          h1 = h1 * 5 + 0xe6546b64;\n        } else {\n          k2 = dataUint32[_i];\n          k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n          k2 = k2 << 15 | k2 >>> 17;\n          k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n          h2 ^= k2;\n          h2 = h2 << 13 | h2 >>> 19;\n          h2 = h2 * 5 + 0xe6546b64;\n        }\n      }\n\n      k1 = 0;\n\n      switch (tailLength) {\n        case 3:\n          k1 ^= data[blockCounts * 4 + 2] << 16;\n\n        case 2:\n          k1 ^= data[blockCounts * 4 + 1] << 8;\n\n        case 1:\n          k1 ^= data[blockCounts * 4];\n          k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n          k1 = k1 << 15 | k1 >>> 17;\n          k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n          if (blockCounts & 1) {\n            h1 ^= k1;\n          } else {\n            h2 ^= k1;\n          }\n\n      }\n\n      this.h1 = h1;\n      this.h2 = h2;\n      return this;\n    },\n    hexdigest: function MurmurHash3_64_hexdigest() {\n      var h1 = this.h1;\n      var h2 = this.h2;\n      h1 ^= h2 >>> 1;\n      h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n      h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n      h1 ^= h2 >>> 1;\n      h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n      h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n      h1 ^= h2 >>> 1;\n\n      for (var i = 0, arr = [h1, h2], str = ''; i < arr.length; i++) {\n        var hex = (arr[i] >>> 0).toString(16);\n\n        while (hex.length < 8) {\n          hex = '0' + hex;\n        }\n\n        str += hex;\n      }\n\n      return str;\n    }\n  };\n  return MurmurHash3_64;\n}();\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PDFImage = void 0;\n\nvar _util = __w_pdfjs_require__(6);\n\nvar _primitives = __w_pdfjs_require__(155);\n\nvar _colorspace = __w_pdfjs_require__(168);\n\nvar _stream = __w_pdfjs_require__(157);\n\nvar _jpeg_stream = __w_pdfjs_require__(163);\n\nvar _jpx = __w_pdfjs_require__(166);\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar PDFImage = function PDFImageClosure() {\n  function handleImageData(image, nativeDecoder) {\n    if (nativeDecoder && nativeDecoder.canDecode(image)) {\n      return nativeDecoder.decode(image).catch(function (reason) {\n        (0, _util.warn)('Native image decoding failed -- trying to recover: ' + (reason && reason.message));\n        return image;\n      });\n    }\n\n    return Promise.resolve(image);\n  }\n\n  function decodeAndClamp(value, addend, coefficient, max) {\n    value = addend + value * coefficient;\n    return value < 0 ? 0 : value > max ? max : value;\n  }\n\n  function resizeImageMask(src, bpc, w1, h1, w2, h2) {\n    var length = w2 * h2;\n    var dest = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n    var xRatio = w1 / w2;\n    var yRatio = h1 / h2;\n    var i,\n        j,\n        py,\n        newIndex = 0,\n        oldIndex;\n    var xScaled = new Uint16Array(w2);\n    var w1Scanline = w1;\n\n    for (i = 0; i < w2; i++) {\n      xScaled[i] = Math.floor(i * xRatio);\n    }\n\n    for (i = 0; i < h2; i++) {\n      py = Math.floor(i * yRatio) * w1Scanline;\n\n      for (j = 0; j < w2; j++) {\n        oldIndex = py + xScaled[j];\n        dest[newIndex++] = src[oldIndex];\n      }\n    }\n\n    return dest;\n  }\n\n  function PDFImage(_ref) {\n    var xref = _ref.xref,\n        res = _ref.res,\n        image = _ref.image,\n        _ref$isInline = _ref.isInline,\n        isInline = _ref$isInline === void 0 ? false : _ref$isInline,\n        _ref$smask = _ref.smask,\n        smask = _ref$smask === void 0 ? null : _ref$smask,\n        _ref$mask = _ref.mask,\n        mask = _ref$mask === void 0 ? null : _ref$mask,\n        _ref$isMask = _ref.isMask,\n        isMask = _ref$isMask === void 0 ? false : _ref$isMask,\n        pdfFunctionFactory = _ref.pdfFunctionFactory;\n    this.image = image;\n    var dict = image.dict;\n    var filter = dict.get('Filter');\n\n    if ((0, _primitives.isName)(filter)) {\n      switch (filter.name) {\n        case 'JPXDecode':\n          var jpxImage = new _jpx.JpxImage();\n          jpxImage.parseImageProperties(image.stream);\n          image.stream.reset();\n          image.width = jpxImage.width;\n          image.height = jpxImage.height;\n          image.bitsPerComponent = jpxImage.bitsPerComponent;\n          image.numComps = jpxImage.componentsCount;\n          break;\n\n        case 'JBIG2Decode':\n          image.bitsPerComponent = 1;\n          image.numComps = 1;\n          break;\n      }\n    }\n\n    var width = dict.get('Width', 'W');\n    var height = dict.get('Height', 'H');\n\n    if (Number.isInteger(image.width) && image.width > 0 && Number.isInteger(image.height) && image.height > 0 && (image.width !== width || image.height !== height)) {\n      (0, _util.warn)('PDFImage - using the Width/Height of the image data, ' + 'rather than the image dictionary.');\n      width = image.width;\n      height = image.height;\n    }\n\n    if (width < 1 || height < 1) {\n      throw new _util.FormatError(\"Invalid image width: \".concat(width, \" or \") + \"height: \".concat(height));\n    }\n\n    this.width = width;\n    this.height = height;\n    this.interpolate = dict.get('Interpolate', 'I') || false;\n    this.imageMask = dict.get('ImageMask', 'IM') || false;\n    this.matte = dict.get('Matte') || false;\n    var bitsPerComponent = image.bitsPerComponent;\n\n    if (!bitsPerComponent) {\n      bitsPerComponent = dict.get('BitsPerComponent', 'BPC');\n\n      if (!bitsPerComponent) {\n        if (this.imageMask) {\n          bitsPerComponent = 1;\n        } else {\n          throw new _util.FormatError(\"Bits per component missing in image: \".concat(this.imageMask));\n        }\n      }\n    }\n\n    this.bpc = bitsPerComponent;\n\n    if (!this.imageMask) {\n      var colorSpace = dict.get('ColorSpace', 'CS');\n\n      if (!colorSpace) {\n        (0, _util.info)('JPX images (which do not require color spaces)');\n\n        switch (image.numComps) {\n          case 1:\n            colorSpace = _primitives.Name.get('DeviceGray');\n            break;\n\n          case 3:\n            colorSpace = _primitives.Name.get('DeviceRGB');\n            break;\n\n          case 4:\n            colorSpace = _primitives.Name.get('DeviceCMYK');\n            break;\n\n          default:\n            throw new Error(\"JPX images with \".concat(image.numComps, \" \") + 'color components not supported.');\n        }\n      }\n\n      var resources = isInline ? res : null;\n      this.colorSpace = _colorspace.ColorSpace.parse(colorSpace, xref, resources, pdfFunctionFactory);\n      this.numComps = this.colorSpace.numComps;\n    }\n\n    this.decode = dict.getArray('Decode', 'D');\n    this.needsDecode = false;\n\n    if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent) || isMask && !_colorspace.ColorSpace.isDefaultDecode(this.decode, 1))) {\n      this.needsDecode = true;\n      var max = (1 << bitsPerComponent) - 1;\n      this.decodeCoefficients = [];\n      this.decodeAddends = [];\n      var isIndexed = this.colorSpace && this.colorSpace.name === 'Indexed';\n\n      for (var i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n        var dmin = this.decode[i];\n        var dmax = this.decode[i + 1];\n        this.decodeCoefficients[j] = isIndexed ? (dmax - dmin) / max : dmax - dmin;\n        this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n      }\n    }\n\n    if (smask) {\n      this.smask = new PDFImage({\n        xref: xref,\n        res: res,\n        image: smask,\n        isInline: isInline,\n        pdfFunctionFactory: pdfFunctionFactory\n      });\n    } else if (mask) {\n      if ((0, _primitives.isStream)(mask)) {\n        var maskDict = mask.dict,\n            imageMask = maskDict.get('ImageMask', 'IM');\n\n        if (!imageMask) {\n          (0, _util.warn)('Ignoring /Mask in image without /ImageMask.');\n        } else {\n          this.mask = new PDFImage({\n            xref: xref,\n            res: res,\n            image: mask,\n            isInline: isInline,\n            isMask: true,\n            pdfFunctionFactory: pdfFunctionFactory\n          });\n        }\n      } else {\n        this.mask = mask;\n      }\n    }\n  }\n\n  PDFImage.buildImage = function (_ref2) {\n    var handler = _ref2.handler,\n        xref = _ref2.xref,\n        res = _ref2.res,\n        image = _ref2.image,\n        _ref2$isInline = _ref2.isInline,\n        isInline = _ref2$isInline === void 0 ? false : _ref2$isInline,\n        _ref2$nativeDecoder = _ref2.nativeDecoder,\n        nativeDecoder = _ref2$nativeDecoder === void 0 ? null : _ref2$nativeDecoder,\n        pdfFunctionFactory = _ref2.pdfFunctionFactory;\n    var imagePromise = handleImageData(image, nativeDecoder);\n    var smaskPromise;\n    var maskPromise;\n    var smask = image.dict.get('SMask');\n    var mask = image.dict.get('Mask');\n\n    if (smask) {\n      smaskPromise = handleImageData(smask, nativeDecoder);\n      maskPromise = Promise.resolve(null);\n    } else {\n      smaskPromise = Promise.resolve(null);\n\n      if (mask) {\n        if ((0, _primitives.isStream)(mask)) {\n          maskPromise = handleImageData(mask, nativeDecoder);\n        } else if (Array.isArray(mask)) {\n          maskPromise = Promise.resolve(mask);\n        } else {\n          (0, _util.warn)('Unsupported mask format.');\n          maskPromise = Promise.resolve(null);\n        }\n      } else {\n        maskPromise = Promise.resolve(null);\n      }\n    }\n\n    return Promise.all([imagePromise, smaskPromise, maskPromise]).then(function (_ref3) {\n      var _ref4 = _slicedToArray(_ref3, 3),\n          imageData = _ref4[0],\n          smaskData = _ref4[1],\n          maskData = _ref4[2];\n\n      return new PDFImage({\n        xref: xref,\n        res: res,\n        image: imageData,\n        isInline: isInline,\n        smask: smaskData,\n        mask: maskData,\n        pdfFunctionFactory: pdfFunctionFactory\n      });\n    });\n  };\n\n  PDFImage.createMask = function (_ref5) {\n    var imgArray = _ref5.imgArray,\n        width = _ref5.width,\n        height = _ref5.height,\n        imageIsFromDecodeStream = _ref5.imageIsFromDecodeStream,\n        inverseDecode = _ref5.inverseDecode;\n    var computedLength = (width + 7 >> 3) * height;\n    var actualLength = imgArray.byteLength;\n    var haveFullData = computedLength === actualLength;\n    var data, i;\n\n    if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n      data = imgArray;\n    } else if (!inverseDecode) {\n      data = new Uint8ClampedArray(actualLength);\n      data.set(imgArray);\n    } else {\n      data = new Uint8ClampedArray(computedLength);\n      data.set(imgArray);\n\n      for (i = actualLength; i < computedLength; i++) {\n        data[i] = 0xff;\n      }\n    }\n\n    if (inverseDecode) {\n      for (i = 0; i < actualLength; i++) {\n        data[i] ^= 0xFF;\n      }\n    }\n\n    return {\n      data: data,\n      width: width,\n      height: height\n    };\n  };\n\n  PDFImage.prototype = {\n    get drawWidth() {\n      return Math.max(this.width, this.smask && this.smask.width || 0, this.mask && this.mask.width || 0);\n    },\n\n    get drawHeight() {\n      return Math.max(this.height, this.smask && this.smask.height || 0, this.mask && this.mask.height || 0);\n    },\n\n    decodeBuffer: function decodeBuffer(buffer) {\n      var bpc = this.bpc;\n      var numComps = this.numComps;\n      var decodeAddends = this.decodeAddends;\n      var decodeCoefficients = this.decodeCoefficients;\n      var max = (1 << bpc) - 1;\n      var i, ii;\n\n      if (bpc === 1) {\n        for (i = 0, ii = buffer.length; i < ii; i++) {\n          buffer[i] = +!buffer[i];\n        }\n\n        return;\n      }\n\n      var index = 0;\n\n      for (i = 0, ii = this.width * this.height; i < ii; i++) {\n        for (var j = 0; j < numComps; j++) {\n          buffer[index] = decodeAndClamp(buffer[index], decodeAddends[j], decodeCoefficients[j], max);\n          index++;\n        }\n      }\n    },\n    getComponents: function getComponents(buffer) {\n      var bpc = this.bpc;\n\n      if (bpc === 8) {\n        return buffer;\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var numComps = this.numComps;\n      var length = width * height * numComps;\n      var bufferPos = 0;\n      var output = bpc <= 8 ? new Uint8Array(length) : bpc <= 16 ? new Uint16Array(length) : new Uint32Array(length);\n      var rowComps = width * numComps;\n      var max = (1 << bpc) - 1;\n      var i = 0,\n          ii,\n          buf;\n\n      if (bpc === 1) {\n        var mask, loop1End, loop2End;\n\n        for (var j = 0; j < height; j++) {\n          loop1End = i + (rowComps & ~7);\n          loop2End = i + rowComps;\n\n          while (i < loop1End) {\n            buf = buffer[bufferPos++];\n            output[i] = buf >> 7 & 1;\n            output[i + 1] = buf >> 6 & 1;\n            output[i + 2] = buf >> 5 & 1;\n            output[i + 3] = buf >> 4 & 1;\n            output[i + 4] = buf >> 3 & 1;\n            output[i + 5] = buf >> 2 & 1;\n            output[i + 6] = buf >> 1 & 1;\n            output[i + 7] = buf & 1;\n            i += 8;\n          }\n\n          if (i < loop2End) {\n            buf = buffer[bufferPos++];\n            mask = 128;\n\n            while (i < loop2End) {\n              output[i++] = +!!(buf & mask);\n              mask >>= 1;\n            }\n          }\n        }\n      } else {\n        var bits = 0;\n        buf = 0;\n\n        for (i = 0, ii = length; i < ii; ++i) {\n          if (i % rowComps === 0) {\n            buf = 0;\n            bits = 0;\n          }\n\n          while (bits < bpc) {\n            buf = buf << 8 | buffer[bufferPos++];\n            bits += 8;\n          }\n\n          var remainingBits = bits - bpc;\n          var value = buf >> remainingBits;\n          output[i] = value < 0 ? 0 : value > max ? max : value;\n          buf = buf & (1 << remainingBits) - 1;\n          bits = remainingBits;\n        }\n      }\n\n      return output;\n    },\n    fillOpacity: function fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n      var smask = this.smask;\n      var mask = this.mask;\n      var alphaBuf, sw, sh, i, ii, j;\n\n      if (smask) {\n        sw = smask.width;\n        sh = smask.height;\n        alphaBuf = new Uint8ClampedArray(sw * sh);\n        smask.fillGrayBuffer(alphaBuf);\n\n        if (sw !== width || sh !== height) {\n          alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n        }\n      } else if (mask) {\n        if (mask instanceof PDFImage) {\n          sw = mask.width;\n          sh = mask.height;\n          alphaBuf = new Uint8ClampedArray(sw * sh);\n          mask.numComps = 1;\n          mask.fillGrayBuffer(alphaBuf);\n\n          for (i = 0, ii = sw * sh; i < ii; ++i) {\n            alphaBuf[i] = 255 - alphaBuf[i];\n          }\n\n          if (sw !== width || sh !== height) {\n            alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n          }\n        } else if (Array.isArray(mask)) {\n          alphaBuf = new Uint8ClampedArray(width * height);\n          var numComps = this.numComps;\n\n          for (i = 0, ii = width * height; i < ii; ++i) {\n            var opacity = 0;\n            var imageOffset = i * numComps;\n\n            for (j = 0; j < numComps; ++j) {\n              var color = image[imageOffset + j];\n              var maskOffset = j * 2;\n\n              if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n                opacity = 255;\n                break;\n              }\n            }\n\n            alphaBuf[i] = opacity;\n          }\n        } else {\n          throw new _util.FormatError('Unknown mask format.');\n        }\n      }\n\n      if (alphaBuf) {\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = alphaBuf[i];\n        }\n      } else {\n        for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n          rgbaBuf[j] = 255;\n        }\n      }\n    },\n    undoPreblend: function undoPreblend(buffer, width, height) {\n      var matte = this.smask && this.smask.matte;\n\n      if (!matte) {\n        return;\n      }\n\n      var matteRgb = this.colorSpace.getRgb(matte, 0);\n      var matteR = matteRgb[0];\n      var matteG = matteRgb[1];\n      var matteB = matteRgb[2];\n      var length = width * height * 4;\n\n      for (var i = 0; i < length; i += 4) {\n        var alpha = buffer[i + 3];\n\n        if (alpha === 0) {\n          buffer[i] = 255;\n          buffer[i + 1] = 255;\n          buffer[i + 2] = 255;\n          continue;\n        }\n\n        var k = 255 / alpha;\n        buffer[i] = (buffer[i] - matteR) * k + matteR;\n        buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n        buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n      }\n    },\n    createImageData: function createImageData() {\n      var forceRGBA = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var drawWidth = this.drawWidth;\n      var drawHeight = this.drawHeight;\n      var imgData = {\n        width: drawWidth,\n        height: drawHeight,\n        kind: 0,\n        data: null\n      };\n      var numComps = this.numComps;\n      var originalWidth = this.width;\n      var originalHeight = this.height;\n      var bpc = this.bpc;\n      var rowBytes = originalWidth * numComps * bpc + 7 >> 3;\n      var imgArray;\n\n      if (!forceRGBA) {\n        var kind;\n\n        if (this.colorSpace.name === 'DeviceGray' && bpc === 1) {\n          kind = _util.ImageKind.GRAYSCALE_1BPP;\n        } else if (this.colorSpace.name === 'DeviceRGB' && bpc === 8 && !this.needsDecode) {\n          kind = _util.ImageKind.RGB_24BPP;\n        }\n\n        if (kind && !this.smask && !this.mask && drawWidth === originalWidth && drawHeight === originalHeight) {\n          imgData.kind = kind;\n          imgArray = this.getImageBytes(originalHeight * rowBytes);\n\n          if (this.image instanceof _stream.DecodeStream) {\n            imgData.data = imgArray;\n          } else {\n            var newArray = new Uint8ClampedArray(imgArray.length);\n            newArray.set(imgArray);\n            imgData.data = newArray;\n          }\n\n          if (this.needsDecode) {\n            (0, _util.assert)(kind === _util.ImageKind.GRAYSCALE_1BPP, 'PDFImage.createImageData: The image must be grayscale.');\n            var buffer = imgData.data;\n\n            for (var i = 0, ii = buffer.length; i < ii; i++) {\n              buffer[i] ^= 0xff;\n            }\n          }\n\n          return imgData;\n        }\n\n        if (this.image instanceof _jpeg_stream.JpegStream && !this.smask && !this.mask) {\n          var imageLength = originalHeight * rowBytes;\n\n          switch (this.colorSpace.name) {\n            case 'DeviceGray':\n              imageLength *= 3;\n\n            case 'DeviceRGB':\n            case 'DeviceCMYK':\n              imgData.kind = _util.ImageKind.RGB_24BPP;\n              imgData.data = this.getImageBytes(imageLength, drawWidth, drawHeight, true);\n              return imgData;\n          }\n        }\n      }\n\n      imgArray = this.getImageBytes(originalHeight * rowBytes);\n      var actualHeight = 0 | imgArray.length / rowBytes * drawHeight / originalHeight;\n      var comps = this.getComponents(imgArray);\n      var alpha01, maybeUndoPreblend;\n\n      if (!forceRGBA && !this.smask && !this.mask) {\n        imgData.kind = _util.ImageKind.RGB_24BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n        alpha01 = 0;\n        maybeUndoPreblend = false;\n      } else {\n        imgData.kind = _util.ImageKind.RGBA_32BPP;\n        imgData.data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n        alpha01 = 1;\n        maybeUndoPreblend = true;\n        this.fillOpacity(imgData.data, drawWidth, drawHeight, actualHeight, comps);\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n\n      this.colorSpace.fillRgb(imgData.data, originalWidth, originalHeight, drawWidth, drawHeight, actualHeight, bpc, comps, alpha01);\n\n      if (maybeUndoPreblend) {\n        this.undoPreblend(imgData.data, drawWidth, actualHeight);\n      }\n\n      return imgData;\n    },\n    fillGrayBuffer: function fillGrayBuffer(buffer) {\n      var numComps = this.numComps;\n\n      if (numComps !== 1) {\n        throw new _util.FormatError(\"Reading gray scale from a color image: \".concat(numComps));\n      }\n\n      var width = this.width;\n      var height = this.height;\n      var bpc = this.bpc;\n      var rowBytes = width * numComps * bpc + 7 >> 3;\n      var imgArray = this.getImageBytes(height * rowBytes);\n      var comps = this.getComponents(imgArray);\n      var i, length;\n\n      if (bpc === 1) {\n        length = width * height;\n\n        if (this.needsDecode) {\n          for (i = 0; i < length; ++i) {\n            buffer[i] = comps[i] - 1 & 255;\n          }\n        } else {\n          for (i = 0; i < length; ++i) {\n            buffer[i] = -comps[i] & 255;\n          }\n        }\n\n        return;\n      }\n\n      if (this.needsDecode) {\n        this.decodeBuffer(comps);\n      }\n\n      length = width * height;\n      var scale = 255 / ((1 << bpc) - 1);\n\n      for (i = 0; i < length; ++i) {\n        buffer[i] = scale * comps[i];\n      }\n    },\n    getImageBytes: function getImageBytes(length, drawWidth, drawHeight) {\n      var forceRGB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n      this.image.reset();\n      this.image.drawWidth = drawWidth || this.width;\n      this.image.drawHeight = drawHeight || this.height;\n      this.image.forceRGB = !!forceRGB;\n      return this.image.getBytes(length, true);\n    }\n  };\n  return PDFImage;\n}();\n\nexports.PDFImage = PDFImage;\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MessageHandler = MessageHandler;\n\nvar _regenerator = _interopRequireDefault(__w_pdfjs_require__(2));\n\nvar _util = __w_pdfjs_require__(6);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction resolveCall(_x, _x2) {\n  return _resolveCall.apply(this, arguments);\n}\n\nfunction _resolveCall() {\n  _resolveCall = _asyncToGenerator(\n  /*#__PURE__*/\n  _regenerator.default.mark(function _callee(fn, args) {\n    var thisArg,\n        _args = arguments;\n    return _regenerator.default.wrap(function _callee$(_context) {\n      while (1) {\n        switch (_context.prev = _context.next) {\n          case 0:\n            thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;\n\n            if (fn) {\n              _context.next = 3;\n              break;\n            }\n\n            return _context.abrupt(\"return\");\n\n          case 3:\n            return _context.abrupt(\"return\", fn.apply(thisArg, args));\n\n          case 4:\n          case \"end\":\n            return _context.stop();\n        }\n      }\n    }, _callee, this);\n  }));\n  return _resolveCall.apply(this, arguments);\n}\n\nfunction wrapReason(reason) {\n  if (_typeof(reason) !== 'object') {\n    return reason;\n  }\n\n  switch (reason.name) {\n    case 'AbortException':\n      return new _util.AbortException(reason.message);\n\n    case 'MissingPDFException':\n      return new _util.MissingPDFException(reason.message);\n\n    case 'UnexpectedResponseException':\n      return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n    default:\n      return new _util.UnknownErrorException(reason.message, reason.details);\n  }\n}\n\nfunction makeReasonSerializable(reason) {\n  if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {\n    return reason;\n  }\n\n  return new _util.UnknownErrorException(reason.message, reason.toString());\n}\n\nfunction resolveOrReject(capability, success, reason) {\n  if (success) {\n    capability.resolve();\n  } else {\n    capability.reject(reason);\n  }\n}\n\nfunction finalize(promise) {\n  return Promise.resolve(promise).catch(function () {});\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n  var _this = this;\n\n  this.sourceName = sourceName;\n  this.targetName = targetName;\n  this.comObj = comObj;\n  this.callbackId = 1;\n  this.streamId = 1;\n  this.postMessageTransfers = true;\n  this.streamSinks = Object.create(null);\n  this.streamControllers = Object.create(null);\n  var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n  var ah = this.actionHandler = Object.create(null);\n\n  this._onComObjOnMessage = function (event) {\n    var data = event.data;\n\n    if (data.targetName !== _this.sourceName) {\n      return;\n    }\n\n    if (data.stream) {\n      _this._processStreamMessage(data);\n    } else if (data.isReply) {\n      var callbackId = data.callbackId;\n\n      if (data.callbackId in callbacksCapabilities) {\n        var callback = callbacksCapabilities[callbackId];\n        delete callbacksCapabilities[callbackId];\n\n        if ('error' in data) {\n          callback.reject(wrapReason(data.error));\n        } else {\n          callback.resolve(data.data);\n        }\n      } else {\n        throw new Error(\"Cannot resolve callback \".concat(callbackId));\n      }\n    } else if (data.action in ah) {\n      var action = ah[data.action];\n\n      if (data.callbackId) {\n        var _sourceName = _this.sourceName;\n        var _targetName = data.sourceName;\n        Promise.resolve().then(function () {\n          return action[0].call(action[1], data.data);\n        }).then(function (result) {\n          comObj.postMessage({\n            sourceName: _sourceName,\n            targetName: _targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            data: result\n          });\n        }, function (reason) {\n          comObj.postMessage({\n            sourceName: _sourceName,\n            targetName: _targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            error: makeReasonSerializable(reason)\n          });\n        });\n      } else if (data.streamId) {\n        _this._createStreamSink(data);\n      } else {\n        action[0].call(action[1], data.data);\n      }\n    } else {\n      throw new Error(\"Unknown action from worker: \".concat(data.action));\n    }\n  };\n\n  comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n  on: function on(actionName, handler, scope) {\n    var ah = this.actionHandler;\n\n    if (ah[actionName]) {\n      throw new Error(\"There is already an actionName called \\\"\".concat(actionName, \"\\\"\"));\n    }\n\n    ah[actionName] = [handler, scope];\n  },\n  send: function send(actionName, data, transfers) {\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data: data\n    };\n    this.postMessage(message, transfers);\n  },\n  sendWithPromise: function sendWithPromise(actionName, data, transfers) {\n    var callbackId = this.callbackId++;\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data: data,\n      callbackId: callbackId\n    };\n    var capability = (0, _util.createPromiseCapability)();\n    this.callbacksCapabilities[callbackId] = capability;\n\n    try {\n      this.postMessage(message, transfers);\n    } catch (e) {\n      capability.reject(e);\n    }\n\n    return capability.promise;\n  },\n  sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {\n    var _this2 = this;\n\n    var streamId = this.streamId++;\n    var sourceName = this.sourceName;\n    var targetName = this.targetName;\n    return new _util.ReadableStream({\n      start: function start(controller) {\n        var startCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId] = {\n          controller: controller,\n          startCall: startCapability,\n          isClosed: false\n        };\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          action: actionName,\n          streamId: streamId,\n          data: data,\n          desiredSize: controller.desiredSize\n        });\n\n        return startCapability.promise;\n      },\n      pull: function pull(controller) {\n        var pullCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId].pullCall = pullCapability;\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          stream: 'pull',\n          streamId: streamId,\n          desiredSize: controller.desiredSize\n        });\n\n        return pullCapability.promise;\n      },\n      cancel: function cancel(reason) {\n        var cancelCapability = (0, _util.createPromiseCapability)();\n        _this2.streamControllers[streamId].cancelCall = cancelCapability;\n        _this2.streamControllers[streamId].isClosed = true;\n\n        _this2.postMessage({\n          sourceName: sourceName,\n          targetName: targetName,\n          stream: 'cancel',\n          reason: reason,\n          streamId: streamId\n        });\n\n        return cancelCapability.promise;\n      }\n    }, queueingStrategy);\n  },\n  _createStreamSink: function _createStreamSink(data) {\n    var _this3 = this;\n\n    var self = this;\n    var action = this.actionHandler[data.action];\n    var streamId = data.streamId;\n    var desiredSize = data.desiredSize;\n    var sourceName = this.sourceName;\n    var targetName = data.sourceName;\n    var capability = (0, _util.createPromiseCapability)();\n\n    var sendStreamRequest = function sendStreamRequest(_ref) {\n      var stream = _ref.stream,\n          chunk = _ref.chunk,\n          transfers = _ref.transfers,\n          success = _ref.success,\n          reason = _ref.reason;\n\n      _this3.postMessage({\n        sourceName: sourceName,\n        targetName: targetName,\n        stream: stream,\n        streamId: streamId,\n        chunk: chunk,\n        success: success,\n        reason: reason\n      }, transfers);\n    };\n\n    var streamSink = {\n      enqueue: function enqueue(chunk) {\n        var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n        var transfers = arguments.length > 2 ? arguments[2] : undefined;\n\n        if (this.isCancelled) {\n          return;\n        }\n\n        var lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = (0, _util.createPromiseCapability)();\n          this.ready = this.sinkCapability.promise;\n        }\n\n        sendStreamRequest({\n          stream: 'enqueue',\n          chunk: chunk,\n          transfers: transfers\n        });\n      },\n      close: function close() {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        sendStreamRequest({\n          stream: 'close'\n        });\n        delete self.streamSinks[streamId];\n      },\n      error: function error(reason) {\n        if (this.isCancelled) {\n          return;\n        }\n\n        this.isCancelled = true;\n        sendStreamRequest({\n          stream: 'error',\n          reason: reason\n        });\n      },\n      sinkCapability: capability,\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize: desiredSize,\n      ready: null\n    };\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {\n      sendStreamRequest({\n        stream: 'start_complete',\n        success: true\n      });\n    }, function (reason) {\n      sendStreamRequest({\n        stream: 'start_complete',\n        success: false,\n        reason: reason\n      });\n    });\n  },\n  _processStreamMessage: function _processStreamMessage(data) {\n    var _this4 = this;\n\n    var sourceName = this.sourceName;\n    var targetName = data.sourceName;\n    var streamId = data.streamId;\n\n    var sendStreamResponse = function sendStreamResponse(_ref2) {\n      var stream = _ref2.stream,\n          success = _ref2.success,\n          reason = _ref2.reason;\n\n      _this4.comObj.postMessage({\n        sourceName: sourceName,\n        targetName: targetName,\n        stream: stream,\n        success: success,\n        streamId: streamId,\n        reason: reason\n      });\n    };\n\n    var deleteStreamController = function deleteStreamController() {\n      Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {\n        return capability && finalize(capability.promise);\n      })).then(function () {\n        delete _this4.streamControllers[data.streamId];\n      });\n    };\n\n    switch (data.stream) {\n      case 'start_complete':\n        resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));\n        break;\n\n      case 'pull_complete':\n        resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));\n        break;\n\n      case 'pull':\n        if (!this.streamSinks[data.streamId]) {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: true\n          });\n          break;\n        }\n\n        if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {\n          this.streamSinks[data.streamId].sinkCapability.resolve();\n        }\n\n        this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n        resolveCall(this.streamSinks[data.streamId].onPull).then(function () {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: true\n          });\n        }, function (reason) {\n          sendStreamResponse({\n            stream: 'pull_complete',\n            success: false,\n            reason: reason\n          });\n        });\n        break;\n\n      case 'enqueue':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');\n\n        if (!this.streamControllers[data.streamId].isClosed) {\n          this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n        }\n\n        break;\n\n      case 'close':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');\n\n        if (this.streamControllers[data.streamId].isClosed) {\n          break;\n        }\n\n        this.streamControllers[data.streamId].isClosed = true;\n        this.streamControllers[data.streamId].controller.close();\n        deleteStreamController();\n        break;\n\n      case 'error':\n        (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');\n        this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));\n        deleteStreamController();\n        break;\n\n      case 'cancel_complete':\n        resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));\n        deleteStreamController();\n        break;\n\n      case 'cancel':\n        if (!this.streamSinks[data.streamId]) {\n          break;\n        }\n\n        resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {\n          sendStreamResponse({\n            stream: 'cancel_complete',\n            success: true\n          });\n        }, function (reason) {\n          sendStreamResponse({\n            stream: 'cancel_complete',\n            success: false,\n            reason: reason\n          });\n        });\n        this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));\n        this.streamSinks[data.streamId].isCancelled = true;\n        delete this.streamSinks[data.streamId];\n        break;\n\n      default:\n        throw new Error('Unexpected stream case');\n    }\n  },\n  postMessage: function postMessage(message, transfers) {\n    if (transfers && this.postMessageTransfers) {\n      this.comObj.postMessage(message, transfers);\n    } else {\n      this.comObj.postMessage(message);\n    }\n  },\n  destroy: function destroy() {\n    this.comObj.removeEventListener('message', this._onComObjOnMessage);\n  }\n};\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.worker.js.map\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/pdfjs-dist/build/pdf.worker.js\n// module id = 2\n// module chunks = 0","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <http://feross.org>\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 '<Buffer ' + str + '>'\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/buffer/index.js\n// module id = 3\n// module chunks = 0","'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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/base64-js/index.js\n// module id = 4\n// module chunks = 0","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.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\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ieee754/index.js\n// module id = 5\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/isarray/index.js\n// module id = 6\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/process/browser.js\n// module id = 7\n// module chunks = 0"],"sourceRoot":""}