%PDF- %PDF- 403WebShell
403Webshell
Server IP : 37.220.80.31  /  Your IP : 3.23.101.1
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64
User : www-root ( 1010)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/ui/pdfjs-ie11/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/js/ui/pdfjs-ie11/pdf.js.map
{"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/node_modules/babel-polyfill/lib/index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/shim.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_hide.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_dom-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_property-desc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ctx.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_meta.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_library.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_cof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_defined.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gops.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-pie.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dps.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopd.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.define-properties.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-sap.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gpo.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.freeze.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.seal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.is-frozen.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.is-sealed.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.is-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.is.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_same-value.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-proto.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.function.bind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_bind.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_invoke.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.function.name.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.function.has-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.parse-int.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_parse-int.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-trim.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-ws.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.parse-float.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_parse-float.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.to-fixed.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_a-number-value.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.to-precision.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.epsilon.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-finite.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.parse-float.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.parse-int.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.acosh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_math-log1p.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.asinh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.atanh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.cbrt.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_math-sign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.clz32.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.cosh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.expm1.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_math-expm1.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.fround.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_math-fround.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.hypot.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.imul.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log10.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log1p.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.sign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.sinh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.tanh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.trunc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.raw.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.trim.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails-is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.anchor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.big.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.blink.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.bold.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.fixed.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.fontcolor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.fontsize.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.italics.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.link.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.small.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.strike.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.sub.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.sup.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.date.now.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.date.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.date.to-iso-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_date-to-iso-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.date.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.date.to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_date-to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array-iter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/core.get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-detect.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.join.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_strict-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.slice.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.sort.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.for-each.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-methods.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.filter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.some.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.every.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.reduce.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-reduce.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.reduce-right.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.index-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.last-index-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.copy-within.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-copy-within.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.fill.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-fill.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.find.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.find-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-step.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_flags.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.exec.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_regexp-exec.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.flags.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.match.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_advance-string-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_regexp-exec-abstract.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fix-re-wks.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.replace.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.search.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.regexp.split.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_for-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-strong.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_validate-collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.array-buffer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_typed.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_typed-buffer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.data-view.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.int8-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_typed-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.uint8-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.int16-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.uint16-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.int32-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.uint32-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.float32-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.typed.float64-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.apply.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.construct.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.define-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.get.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_own-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.flat-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_flatten-into-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.flatten.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.trim-left.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.trim-right.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.match-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.symbol.observable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-to-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.entries.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.define-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-forced-pam.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.define-setter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.lookup-getter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.lookup-setter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.map.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-from-iterable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.set.to-json.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.map.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.set.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.map.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.set.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.system.global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.error.is-error.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.clamp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.deg-per-rad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.degrees.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.fscale.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_math-scale.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.iaddh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.isubh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.imulh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.rad-per-deg.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.radians.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.scale.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.umulh.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.math.signbit.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.try.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.reflect.metadata.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.asap.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.observable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.timers.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.immediate.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom.iterable.js","webpack://pdfjs-dist/build/pdf/node_modules/babel-polyfill/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/regexp/escape.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/core.regexp.escape.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_replacer.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/global_scope.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es6/symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/values.js","webpack://pdfjs-dist/build/pdf/src/shared/streams_polyfill.js","webpack://pdfjs-dist/build/pdf/external/streams/streams-lib.js","webpack://pdfjs-dist/build/pdf/src/shared/url_polyfill.js","webpack://pdfjs-dist/build/pdf/external/url/url-lib.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/dom_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/node_modules/babel-runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/regenerator-runtime/runtime-module.js","webpack://pdfjs-dist/build/pdf/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/web/pdf_link_service.js","webpack://pdfjs-dist/build/pdf/web/dom_events.js","webpack://pdfjs-dist/build/pdf/web/ui_utils.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDOMUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","Response","PDFFetchStream","PDFNetworkStream","exports","SimpleLinkService","global","DEFINE_PROPERTY","O","writable","configurable","value","define","String","Function","module","has","DESCRIPTORS","$export","redefine","META","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","enumKeys","isArray","anObject","isObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","dP","gOPN","$Symbol","$JSON","_stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","Object","USE_NATIVE","QObject","setter","setSymbolDesc","get","protoDesc","it","wrap","sym","isSymbol","$defineProperty","key","D","enumerable","$defineProperties","keys","P","i","l","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","$getOwnPropertySymbols","IS_OP","TypeError","tag","arguments","$set","set","Symbol","es6Symbols","j","wellKnownSymbols","k","keyFor","useSetter","useSimple","create","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","S","a","stringify","args","$replacer","replacer","window","self","__g","hasOwnProperty","core","hide","ctx","IS_FORCED","type","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","source","own","out","exp","version","__e","object","IE8_DOM_DEFINE","Attributes","document","is","val","fn","SRC","TO_STRING","$toString","TPL","isFunction","id","px","Math","aFunction","that","setDesc","isExtensible","FREEZE","setMeta","w","fastKey","getWeak","onFreeze","meta","KEY","NEED","SHARED","store","mode","copyright","def","TAG","stat","USE_SYMBOL","$exports","LIBRARY","name","getKeys","gOPS","pIE","getSymbols","symbols","enumBugKeys","arrayIndexOf","IE_PROTO","IObject","defined","cof","toString","toLength","toAbsoluteIndex","length","index","IS_INCLUDES","el","toInteger","min","ceil","floor","isNaN","max","Array","dPs","Empty","createDict","iframe","lt","gt","iframeDocument","Properties","windowNames","getWindowNames","hiddenKeys","fails","exec","toObject","$getPrototypeOf","$freeze","$seal","$preventExtensions","$isFrozen","$isSealed","$isExtensible","assign","$assign","A","B","K","T","aLen","x","y","setPrototypeOf","check","proto","buggy","classof","test","ARG","tryGet","bind","invoke","arraySlice","factories","construct","n","partArgs","bound","un","FProto","nameRE","NAME","getPrototypeOf","HAS_INSTANCE","FunctionProto","$parseInt","parseInt","$trim","ws","hex","string","radix","spaces","space","non","ltrim","RegExp","rtrim","exporter","FORCE","trim","TYPE","$parseFloat","parseFloat","inheritIfRequired","NUMBER","$Number","Base","BROKEN_COF","TRIM","toNumber","first","third","maxCode","digits","code","C","aNumberValue","repeat","$toFixed","data","ERROR","ZERO","multiply","c2","divide","c","numToString","s","t","pow","acc","log","x2","toFixed","f","m","RangeError","e","z","str","res","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isFinite","isInteger","number","abs","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","log1p","sqrt","$acosh","Number","acosh","$asinh","asinh","$atanh","atanh","sign","cbrt","clz32","cosh","$expm1","expm1","fround","EPSILON32","MAX32","MIN32","roundTiesToEven","$abs","$sign","hypot","sum","larg","arg","div","$imul","imul","UINT16","xn","yn","xl","yl","log10","log2","sinh","tanh","b","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","tpl","callSite","len","$at","done","point","Iterators","$iterCreate","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","getMethod","kind","DEF_VALUES","DEFAULT","VALUES_BUG","$native","$default","$entries","$anyNative","IteratorPrototype","methods","values","IS_SET","entries","descriptor","Constructor","next","codePointAt","context","ENDS_WITH","$endsWith","endsWith","endPosition","end","search","isRegExp","MATCH","re","INCLUDES","includes","STARTS_WITH","$startsWith","startsWith","createHTML","quot","p1","attribute","now","toISOString","toJSON","pv","getTime","Date","$toISOString","lz","num","d","DateProto","INVALID_DATE","hint","call","isArrayIter","createProperty","getIterFn","from","mapfn","mapping","iterFn","iterator","step","ret","ArrayProto","SAFE_CLOSING","riter","safe","arr","iter","of","arrayJoin","join","separator","method","html","slice","klass","start","upTo","size","cloned","$sort","sort","comparefn","$forEach","STRICT","forEach","asc","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","speciesConstructor","SPECIES","original","$map","map","$filter","filter","$some","some","$every","every","$reduce","reduce","isRight","memo","callbackfn","reduceRight","$indexOf","NEGATIVE_ZERO","indexOf","lastIndexOf","copyWithin","to","count","inc","UNSCOPABLES","fill","endPos","$find","forced","find","findIndex","addToUnscopables","$flags","$RegExp","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","p","proxy","regexpExec","regexpFlags","nativeExec","nativeReplace","patchedExec","LAST_INDEX","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","PATCH","reCopy","lastIndex","match","flags","R","advanceStringIndex","regExpExec","regexp","maybeCallNative","rx","fullUnicode","matchStr","at","builtinExec","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","strfn","rxfn","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","searchValue","$replace","functionalReplace","replaceValue","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","sameValue","previousLastIndex","callRegExpExec","$min","$push","$SPLIT","LENGTH","SUPPORTS_Y","internalSplit","limit","$split","output","lastLastIndex","splitLimit","separatorCopy","lastLength","splitter","unicodeMatching","lim","q","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","process","versions","v8","$Promise","isNode","empty","newPromiseCapability","newGenericPromiseCapability","promise","FakePromise","isThenable","notify","chain","ok","run","handler","reaction","resolve","reject","domain","onHandleUnhandled","exited","then","isReject","onUnhandled","unhandled","isUnhandled","reason","console","$reject","$resolve","wrapper","_w","_d","Internal","executor","OwnPromiseCapability","Promise","Wrapper","capability","$$reject","all","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","iterable","cel","setTask","clearTask","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","listener","event","defer","channel","port","setTimeout","clear","macrotask","Observer","flush","parent","head","last","toggle","node","characterData","v","navigator","promiseCapability","src","strong","validate","MAP","entry","redefineAll","$iterDefine","setSpecies","SIZE","getEntry","getConstructor","prev","r","setStrong","$iterDetect","ADDER","fixMethod","IS_WEAK","common","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","SET","add","each","weak","WEAK_MAP","uncaughtFrozenStore","tmp","$WeakMap","InternalMap","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","ufstore","WEAK_SET","$typed","buffer","ArrayBuffer","$ArrayBuffer","$DataView","$isView","$slice","VIEW","ARRAY_BUFFER","isView","fin","viewS","viewT","TYPED","ABV","CONSTR","TypedArrayConstructors","Typed","toIndex","arrayFill","DATA_VIEW","WRONG_LENGTH","WRONG_INDEX","Infinity","BaseBuffer","LN2","BUFFER","BYTE_LENGTH","BYTE_OFFSET","$BUFFER","$LENGTH","$OFFSET","eLen","nBytes","eMax","eBias","rt","mLen","nBits","bytes","packIEEE754","numIndex","intIndex","view","pack","isLittleEndian","conversion","byteLength","bufferLength","offset","addGetter","getInt8","getUint8","getInt16","getUint16","getInt32","unpackI32","getUint32","getFloat32","unpackIEEE754","getFloat64","setInt8","setUint8","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBufferProto","$setInt8","DataView","init","$buffer","propertyDesc","createArrayIncludes","ArrayIterators","arrayCopyWithin","Uint8Array","SHARED_BUFFER","BYTES_PER_ELEMENT","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayIncludes","arrayValues","arrayKeys","arrayEntries","arrayLastIndexOf","arrayReduce","arrayReduceRight","arraySort","arrayToString","arrayToLocaleString","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","TYPED_ARRAY","allocate","LITTLE_ENDIAN","FORCED_SET","toOffset","speciesFromList","fromList","list","$from","$of","TO_LOCALE_BUG","$toLocaleString","reverse","middle","subarray","$begin","$iterators","isTAIndex","$getDesc","$setDesc","desc","$TypedArrayPrototype$","constructor","toLocaleString","CLAMPED","GETTER","SETTER","TypedArray","TAC","FORCED","TypedArrayPrototype","getter","addElement","$len","$length","o","$offset","$nativeIterator","CORRECT_ITER_NAME","$iterator","rApply","fApply","apply","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","newTarget","Target","$args","Reflect","propertyKey","deleteProperty","Enumerate","enumerate","receiver","getProto","ownKeys","preventExtensions","ownDesc","existingDescriptor","setProto","$includes","flattenIntoArray","arraySpeciesCreate","flatMap","sourceLen","IS_CONCAT_SPREADABLE","targetIndex","sourceIndex","mapFn","mapper","element","spreadable","depth","flatten","depthArg","$pad","padStart","stringLength","fillStr","fillString","intMaxLength","fillLen","stringFiller","left","padEnd","getFlags","RegExpProto","$RegExpStringIterator","matchAll","getOwnPropertyDescriptors","getDesc","$values","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","cb","isError","clamp","DEG_PER_RAD","RAD_PER_DEG","degrees","radians","scale","fscale","inLow","inHigh","outLow","outHigh","iaddh","$x0","x0","$x1","x1","$y0","y0","isubh","imulh","$u","$v","u0","v0","u1","v1","umulh","signbit","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","Map","getOrCreateMetadataMap","targetMetadata","keyMetadata","ordinaryHasOwnMetadata","metadataMap","ordinaryGetOwnMetadata","ordinaryOwnMetadataKeys","deleteMetadata","targetKey","ordinaryGetMetadata","hasOwn","getMetadata","Set","ordinaryMetadataKeys","oKeys","pKeys","getMetadataKeys","getOwnMetadata","getOwnMetadataKeys","ordinaryHasMetadata","hasMetadata","hasOwnMetadata","$metadata","asap","OBSERVABLE","cleanupSubscription","cleanup","subscription","subscriptionClosed","closeSubscription","Subscription","observer","subscriber","unsubscribe","SubscriptionObserver","error","complete","$Observable","subscribe","observable","items","Observable","MSIE","boundArgs","setInterval","$task","setImmediate","clearImmediate","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","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","Op","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","inModule","runtime","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","ctor","genFun","__await","record","tryCatch","previousPromise","defineIteratorMethods","AsyncIterator","state","delegate","delegateResult","maybeInvokeDelegate","info","tryLoc","locs","iteratorMethod","Context","reset","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","$re","escape","replace","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationFlag","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","lookup","initializer","PasswordException","UnknownErrorException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","MissingDataException","XRefParseException","FormatError","AbortException","NullCharactersRegExp","warn","assert","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","resultLength","ii","item","itemLength","arrayByteLength","pos","stringToBytes","buffer8","view32","getArray","stopWhenFound","LOOP_LIMIT","loopCount","dict","Util","rgbBuf","m1","m2","xt","yt","p2","p3","p4","transpose","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","ROMAN_NUMBER_MAP","lowerCase","romanBuf","romanStr","PDFStringTranslateTable","decodeURIComponent","unescape","encodeURIComponent","ch","createObjectURL","forceDataSchema","URL","blob","b1","b2","b3","d1","d2","d3","d4","globalScope","hasDOM","Buffer","scripts","Element","originalDOMTokenListToggle","force","isReadableStreamSupported","controller","installedModules","modules","__w_pdfjs_require__","_typeof","obj","_require","elements","IsPropertyKey","Call","F","highWaterMark","message","AssertionError","Error","rethrowAssertionErrorRejection","_createClass","props","InvokeOrNoop","PromiseInvokeOrNoop","ValidateAndNormalizeQueuingStrategy","typeIsObject","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref","_ref$highWaterMark","_classCallCheck","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","stream","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","writeRequest","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamDealWithRejection","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultWriter","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","WritableStreamDefaultController","normalizedStrategy","WritableStreamDefaultControllerGetBackpressure","WritableStreamUpdateBackpressure","IsWritableStreamDefaultController","_this","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamMarkCloseRequestInFlight","sinkClosePromise","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkFirstWriteRequestInFlight","sinkWritePromise","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","desiredSize","IsFiniteNonNegativeNumber","container","pair","ArrayBufferCopy","CreateIterResultObject","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","createArrayFromList","createDataProperty","_require4","_require5","ReadableStream","underlyingSource","typeString","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","dest","destClosed","pipeLoop","oldCurrentWrite","action","waitForWritesToFinish","finalize","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","IsReadableStreamDisturbed","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerGetDesiredSize","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","cancel1","cancel2","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","branch1","branch2","value1","value2","compositeReason","cancelResult","IsReadableStreamBYOBReader","readIntoRequest","IsReadableStreamDefaultReader","readRequest","ReadableStreamClose","sourceCancelPromise","defaultReaderClosedPromiseResolve","_i","defaultReaderClosedPromiseReject","ReadableStreamDefaultReader","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","readerLockException","ReadableStreamReaderGenericCancel","ReadableStreamDefaultReaderRead","ReadableStreamBYOBReader","IsReadableByteStreamController","byobReaderBrandCheckException","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","ReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamAddReadRequest","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamGetNumReadRequests","ReadableStreamFulfillReadRequest","ReadableStreamError","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","underlyingByteSource","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","ReadableStreamHasDefaultReader","ReadableByteStreamControllerHandleQueueDrain","pullIntoDescriptor","byteOffset","bytesFilled","elementSize","readerType","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamAddReadIntoRequest","emptyView","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","remainderSize","remainder","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","bytesWritten","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","firstPendingPullInto","transferredBuffer","transferredView","ReadableByteStreamControllerRespondInternal","transformStream","readableStream","writableStream","PromiseInvokeOrPerformFallback","TransformStreamCloseReadableInternal","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamErrorInternal","resolution","transformStreamController","TransformStreamEnqueueToReadable","transformer","transformPromise","TransformStreamReadableReadyPromise","TransformStreamSink","TransformStreamTransform","flushPromise","TransformStreamSource","TransformStreamDefaultController","IsTransformStream","IsTransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","readableController","TransformStream","readableStrategy","writableStrategy","startPromise_resolve","startPromise","sink","isURLSupported","u","PolyfillURL","OriginalURL","relative","relativePathDotMapping","h","invalid","unicode","ALPHA","ALPHANUMERIC","errors","stateOverride","cursor","seenAt","seenBracket","input","err","isRelativeScheme","percentEscape","nextC","nextNextC","cp","tempC","IDNAToASCII","temp","percentEscapeQuery","parse","JURL","authority","host","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fakeWorkerFilesLoader","useRequireEnsure","__non_webpack_require__","requirejs","fallbackWorkerSrc","dynamicLoaderSupported","worker","pdfjsFilePath","createPDFNetworkStream","isArrayBuffer","range","params","rangeTransport","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","postMessageTransfers","workerPort","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","PDFDocumentLoadingTask","nextDocumentId","destroy","transportDestroyed","addRangeListener","addProgressListener","addProgressiveReadListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","PDFPageProxy","pdfBug","getViewport","rotate","dontFlip","viewBox","rotation","getAnnotations","intent","render","stats","renderingIntent","canvasFactory","webGLContext","enable","intentState","fnArray","argsArray","lastChunk","pageIndex","renderInteractiveForms","internalRenderTask","renderTask","getOperatorList","opListTask","streamTextContent","TEXT_CONTENT_CHUNK_SIZE","normalizeWhitespace","combineTextItems","textContent","getTextContent","styles","_destroy","waitOn","renderCompleted","resetStats","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","postMessage","transferable","transfers","cloneValue","addEventListener","removeEventListener","nextFakeWorkerId","fakeWorkerFilesLoadedCapability","mainWorkerMessageHandler","loader","pdfWorkerPorts","_initializeFromPort","_initialize","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","_setupFakeWorker","setupFakeWorkerGlobal","workerHandler","WorkerMessageHandler","loadingTask","isCompressed","page","terminated","loaded","evt","total","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","updatePassword","exception","exportedError","exportedData","fontRegistry","registerFont","onUnsupportedFeature","fontReady","pageProxy","img","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","height","rgbaLength","buf","tmpCanvas","tmpCtx","_onUnsupportedFeature","pageNumber","contentDispositionFilename","PDFObjects","ensureObj","resolved","isResolved","objs","hasData","getData","RenderTask","cancel","InternalRenderTask","canvasInRendering","initializeGraphics","viewport","background","operatorListChanged","_continue","_scheduleNext","_next","build","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","fetch","request","XMLHttpRequest","cMapData","compressionType","svg","createElement","offsetX","offsetY","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","tl","br","convertToPdfPoint","RenderingCancelledException","LinkTarget","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","removeNullCharacters","LinkTargetValues","anchor","query","time","timeEnd","times","longest","span","duration","script","requests","nextRequestId","addNativeFontFace","insertRule","styleElement","styleSheet","rules","fontsToLoad","fontLoadPromises","getNativeFontPromise","nativeFontFace","rule","_queueLoadingCallback","otherRequest","_prepareFontLoadEvent","FontLoader","chunk1","chunk2","called","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","supported","shadow","getLoadTestFont","atob","IsEvalSupportedCached","translatedData","bytesToString","getPathGenerator","cmds","featureId","js","current","compatibilityParams","isIE","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","ad_bc","bc_ad","old","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","j0","steps","outlines","coords","p0","pp","drawOutline","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","properties","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","operatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","commonObjs","stepper","fnId","deps","nn","depObjId","objsPool","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","path","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","ul","ur","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","top","maskCanvas","putBinaryImageMask","positions","images","image","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","fromIR","colorStops","r1","getPattern","grad","createMeshCanvas","colors","rowSize","c1","c3","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","cachedCanvases","backgroundColor","figures","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","topLeft","botRight","curMatrixScale","combinedScale","graphics","tmpTranslate","setScale","transformToScale","tmpScale","scaleToContext","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","thisArg","callbacksCapabilities","ah","callbackId","callback","wrapReason","sourceName","targetName","comObj","isReply","makeReasonSerializable","MessageHandler","on","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","isClosed","pullCapability","cancelCapability","_createStreamSink","sendStreamRequest","streamSink","enqueue","lastDesiredSize","close","sinkCapability","onPull","onCancel","isCancelled","resolveCall","success","_processStreamMessage","sendStreamResponse","deleteStreamController","resolveOrReject","g","hadRuntime","oldRuntime","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","_resolveEntities","entity","_parseContent","attributes","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","content","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","child","parseFromString","isWhitespaceString","lastElement","PDFDataTransportStream","_onReceiveData","found","_onProgress","firstReader","_removeRangeReader","getFullReader","queuedChunks","getRangeReader","cancelAllRequests","readers","PDFDataTransportStreamReader","_enqueue","requestCapability","PDFDataTransportStreamRangeReader","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","styleBuf","textDiv","textDivProperties","style","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","clearTimeout","_processItems","appendText","_layoutText","textLayerFrag","fontFamily","_render","styleCache","textItems","textStyles","pump","expandTextDivs","expand","padding","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","JSON","TEXT_ALIGNMENT","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","option","optionElement","IGNORE_TYPES","selector","parentElement","parentLeft","parentWidth","BACKGROUND_ENLIGHT","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","vertices","polyline","inkLists","inkList","getFilenameFromUrl","stringToPDFString","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","SVG_DEFAULTS","fontStyle","fontWeight","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","encode","SVGExtraState","opTree","opListLen","opList","pf","XML_NS","XLINK_NS","clipCount","maskCount","loadDependencies","fnArrayLen","transformMatrix","getSVG","svgElement","convertOpList","REVOPS","opListToTree","executeOpTree","opTreeLen","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","opLength","clipId","clipPath","clipElement","_setStrokeAttributes","imgObj","imgEl","imgSrc","cliprect","definitions","rootGroup","_ensureClipGroup","clipGroup","_ensureTransformGroup","fs","http","https","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","protocol","auth","handleResponse","response","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","filename","getFilenameFromContentDispositionHeader","status","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","matches","parts","part","quotindex","encodingend","extvalue","encoding","langvalue","signal","abortController","credentials","redirect","createFetchOptions","validateResponseStatus","createResponseStatusError","rangeStr","begin","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","array","supportsMozChunked","NetworkManager","requestRange","listeners","requestFull","xhrId","pendingRequest","useMozChunkedLoading","onProgress","getArrayBuffer","onStateChange","xhrStatus","ok_response_on_range_request","rangeHeader","hasPendingRequests","getRequestXhr","isStreamingRequest","isPendingRequest","isLoadedRequest","abortAllRequests","_onRangeRequestReaderClosed","onHeadersReceived","onProgressiveData","onDone","manager","PDFNetworkStreamFullRequestReader","_onHeadersReceived","fullRequestXhrId","fullRequestXhr","networkManager","_onProgressiveData","_onDone","_onError","PDFNetworkStreamRangeRequestReader","_close","externalLinkTarget","externalLinkRel","eventBus","setDocument","setViewer","setHistory","navigateTo","goToDestination","destRef","explicitDest","destArray","namedDest","getDestinationHash","getAnchorUrl","setHash","hash","parseQueryString","phraseSearch","zoomArgs","zoomArg","zoomArgNumber","allowNegativeOffset","isValidExplicitDestination","executeNamedAction","cachePageRef","refStr","pageRef","_cachedPageNumber","destLength","allowNull","zoom","param","cssTransform","pagesCount","caseSensitive","highlightAll","findPrevious","attachmentsCount","active","switchInProgress","outlineCount","globalEventBus","dispatchToDOM","attachDOMEventsToEventBus","CSS_UNITS","DEFAULT_SCALE_VALUE","DEFAULT_SCALE","MIN_SCALE","MAX_SCALE","UNKNOWN_SCALE","MAX_AUTO_SCALE","SCROLLBAR_PADDING","VERTICAL_PADDING","PresentationModeState","NORMAL","CHANGING","FULLSCREEN","RendererType","CANVAS","SVG","TextLayerMode","DISABLE","ENABLE","ENABLE_ENHANCE","NullL10n","formatL10nValue","devicePixelRatio","backingStoreRatio","pixelRatio","scaled","skipOverflowHiddenElements","getComputedStyle","spot","debounceScroll","rAF","currentX","viewAreaElement","lastX","currentY","lastY","down","_eventHandler","minIndex","maxIndex","condition","currentIndex","currentItem","xinv","x_","changeOrientation","elt","views","pageTop","sortByVisibility","horizontal","scrollEl","elementBottom","elementRight","visible","firstVisibleElementInd","binarySearchFirstItem","backtrackBeforeAllVisibleElements","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","percentVisible","percent","pc","defaultFilename","isDataSchema","reURI","reFilename","splitURI","suggestedFilename","delta","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","WaitOnType","EVENT","TIMEOUT","delay","eventHandler","timeoutHandler","timeout","animationStarted","eventListeners","off","dispatch","_dispatchDOMEvent","units","progressSize","setWidth","viewer","scrollbarWidth","moved","write","read"],"mappings":"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","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-unused-vars, no-restricted-globals */\n\n'use strict';\n\nimport 'babel-polyfill';\n\nvar pdfjsVersion =\n  typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;\nvar pdfjsBuild =\n  typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;\n\nvar pdfjsSharedUtil = require('./shared/util.js');\nvar pdfjsDisplayAPI = require('./display/api.js');\nvar pdfjsDisplayTextLayer = require('./display/text_layer.js');\nvar pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');\nvar pdfjsDisplayDOMUtils = require('./display/dom_utils.js');\nvar pdfjsDisplaySVG = require('./display/svg.js');\nlet pdfjsDisplayWorkerOptions = require('./display/worker_options.js');\nlet pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n  const isNodeJS = require('./shared/is_node.js');\n  if (isNodeJS()) {\n    let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;\n    pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n      return new PDFNodeStream(params);\n    });\n  } else if (typeof Response !== 'undefined' && 'body' in Response.prototype &&\n             typeof ReadableStream !== 'undefined') {\n    let PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n    pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n      return new PDFFetchStream(params);\n    });\n  } else {\n    let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n    pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n      return new PDFNetworkStream(params);\n    });\n  }\n} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n  let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n  let PDFFetchStream;\n  let isChromeWithFetchCredentials = function() {\n    // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n    // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n    try {\n      // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n      // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n      window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n      delete window[999];\n      return false;\n    } catch (e) {\n      return true;\n    }\n  };\n  if (typeof Response !== 'undefined' && 'body' in Response.prototype &&\n      typeof ReadableStream !== 'undefined' && isChromeWithFetchCredentials()) {\n    PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n  }\n  pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n    if (PDFFetchStream && /^https?:/i.test(params.url)) {\n      // \"fetch\" is only supported for http(s), not file/ftp.\n      return new PDFFetchStream(params);\n    }\n    return new PDFNetworkStream(params);\n  });\n}\n\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nlet SimpleLinkService = require('../web/pdf_link_service');\nexports.SimpleLinkService = SimpleLinkService;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException =\n  pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.URL = pdfjsSharedUtil.URL;\nexports.RenderingCancelledException =\n  pdfjsDisplayDOMUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDOMUtils.loadScript;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n  pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n","\"use strict\";\n\nrequire(\"core-js/shim\");\n\nrequire(\"regenerator-runtime/runtime\");\n\nrequire(\"core-js/fn/regexp/escape\");\n\nif (global._babelPolyfill) {\n  throw new Error(\"only one instance of babel-polyfill is allowed\");\n}\nglobal._babelPolyfill = true;\n\nvar DEFINE_PROPERTY = \"defineProperty\";\nfunction define(O, key, value) {\n  O[key] || Object[DEFINE_PROPERTY](O, key, {\n    writable: true,\n    configurable: true,\n    value: value\n  });\n}\n\ndefine(String.prototype, \"padLeft\", \"\".padStart);\ndefine(String.prototype, \"padRight\", \"\".padEnd);\n\n\"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill\".split(\",\").forEach(function (key) {\n  [][key] && define(Array, key, Function.call.bind([][key]));\n});","require('./modules/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.exec');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.array.flat-map');\nrequire('./modules/es7.array.flatten');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.map.of');\nrequire('./modules/es7.set.of');\nrequire('./modules/es7.weak-map.of');\nrequire('./modules/es7.weak-set.of');\nrequire('./modules/es7.map.from');\nrequire('./modules/es7.set.from');\nrequire('./modules/es7.weak-map.from');\nrequire('./modules/es7.weak-set.from');\nrequire('./modules/es7.global');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.clamp');\nrequire('./modules/es7.math.deg-per-rad');\nrequire('./modules/es7.math.degrees');\nrequire('./modules/es7.math.fscale');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.rad-per-deg');\nrequire('./modules/es7.math.radians');\nrequire('./modules/es7.math.scale');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.math.signbit');\nrequire('./modules/es7.promise.finally');\nrequire('./modules/es7.promise.try');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/_core');\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n  return _create(dP({}, 'a', {\n    get: function () { return dP(this, 'a', { value: 7 }).a; }\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 (tag) {\n  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\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  if (has(AllSymbols, key)) {\n    if (!D.enumerable) {\n      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n      it[HIDDEN][key] = true;\n    } else {\n      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n      D = _create(D, { enumerable: createDesc(0, false) });\n    } return setSymbolDesc(it, key, D);\n  } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n  anObject(it);\n  var keys = enumKeys(P = toIObject(P));\n  var i = 0;\n  var l = keys.length;\n  var key;\n  while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n  return it;\n};\nvar $create = function create(it, P) {\n  return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n  var E = isEnum.call(this, key = toPrimitive(key, true));\n  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n  it = toIObject(it);\n  key = toPrimitive(key, true);\n  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n  var D = gOPD(it, key);\n  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n  return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n  var names = gOPN(toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n  } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n  var IS_OP = it === ObjectProto;\n  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n  var result = [];\n  var i = 0;\n  var key;\n  while (names.length > i) {\n    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n  } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n  $Symbol = function Symbol() {\n    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n    var $set = function (value) {\n      if (this === ObjectProto) $set.call(OPSymbols, value);\n      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n      setSymbolDesc(this, tag, createDesc(1, value));\n    };\n    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n    return wrap(tag);\n  };\n  redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n    return this._k;\n  });\n\n  $GOPD.f = $getOwnPropertyDescriptor;\n  $DP.f = $defineProperty;\n  require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n  require('./_object-pie').f = $propertyIsEnumerable;\n  require('./_object-gops').f = $getOwnPropertySymbols;\n\n  if (DESCRIPTORS && !require('./_library')) {\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, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n  // 19.4.2.1 Symbol.for(key)\n  'for': function (key) {\n    return has(SymbolRegistry, key += '')\n      ? SymbolRegistry[key]\n      : SymbolRegistry[key] = $Symbol(key);\n  },\n  // 19.4.2.5 Symbol.keyFor(sym)\n  keyFor: function keyFor(sym) {\n    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n  },\n  useSetter: function () { setter = true; },\n  useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n  // 19.1.2.2 Object.create(O [, Properties])\n  create: $create,\n  // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n  defineProperty: $defineProperty,\n  // 19.1.2.3 Object.defineProperties(O, Properties)\n  defineProperties: $defineProperties,\n  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n  // 19.1.2.7 Object.getOwnPropertyNames(O)\n  getOwnPropertyNames: $getOwnPropertyNames,\n  // 19.1.2.8 Object.getOwnPropertySymbols(O)\n  getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n  var S = $Symbol();\n  // MS Edge converts symbol values to JSON as {}\n  // WebKit converts symbol values to JSON as null\n  // V8 throws on boxed symbols\n  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n  stringify: function stringify(it) {\n    var args = [it];\n    var i = 1;\n    var replacer, $replacer;\n    while (arguments.length > i) args.push(arguments[i++]);\n    $replacer = replacer = args[1];\n    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n    if (!isArray(replacer)) replacer = function (key, value) {\n      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n      if (!isSymbol(value)) return value;\n    };\n    args[1] = replacer;\n    return _stringify.apply($JSON, args);\n  }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n  ? window : typeof self != 'undefined' && self.Math == Math ? self\n  // eslint-disable-next-line no-new-func\n  : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (e) {\n    return true;\n  }\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n  var IS_FORCED = type & $export.F;\n  var IS_GLOBAL = type & $export.G;\n  var IS_STATIC = type & $export.S;\n  var IS_PROTO = type & $export.P;\n  var IS_BIND = type & $export.B;\n  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n  var key, own, out, exp;\n  if (IS_GLOBAL) source = name;\n  for (key in source) {\n    // contains in native\n    own = !IS_FORCED && target && target[key] !== undefined;\n    // export native or passed\n    out = (own ? target : source)[key];\n    // bind timers to global for call from export context\n    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n    // extend global\n    if (target) redefine(target, key, out, type & $export.U);\n    // export\n    if (exports[key] != out) hide(exports, key, exp);\n    if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n  }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1;   // forced\n$export.G = 2;   // global\n$export.S = 4;   // static\n$export.P = 8;   // proto\n$export.B = 16;  // bind\n$export.W = 32;  // wrap\n$export.U = 64;  // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? 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","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? 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) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n  if (!isObject(it)) throw TypeError(it + ' is not an object!');\n  return it;\n};\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n  return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n  return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (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","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').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  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// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n  return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","module.exports = function (it) {\n  if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n  return it;\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n  return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n  return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n  setDesc(it, META, { value: {\n    i: 'O' + ++id, // object ID\n    w: {}          // weak collections IDs\n  } });\n};\nvar fastKey = function (it, create) {\n  // return primitive with prefix\n  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return 'F';\n    // not necessary to add metadata\n    if (!create) return 'E';\n    // add missing metadata\n    setMeta(it);\n  // return object ID\n  } return it[META].i;\n};\nvar getWeak = function (it, create) {\n  if (!has(it, META)) {\n    // can't set metadata to uncaught frozen object\n    if (!isExtensible(it)) return true;\n    // not necessary to add metadata\n    if (!create) return false;\n    // add missing metadata\n    setMeta(it);\n  // return hash weak collections IDs\n  } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n  return it;\n};\nvar meta = module.exports = {\n  KEY: META,\n  NEED: false,\n  fastKey: fastKey,\n  getWeak: getWeak,\n  onFreeze: onFreeze\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: core.version,\n  mode: require('./_library') ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n  return store[name] || (store[name] =\n    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n  var result = getKeys(it);\n  var getSymbols = gOPS.f;\n  if (getSymbols) {\n    var symbols = getSymbols(it);\n    var isEnum = pIE.f;\n    var i = 0;\n    var key;\n    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n  } return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n  return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n  var O = toIObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~arrayIndexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n  return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on  \" + it);\n  return it;\n};\n","// false -> Array#indexOf\n// true  -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\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    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n      if (O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n  index = toInteger(index);\n  return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n  return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n  return cof(arg) == 'Array';\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = require('./_dom-create')('iframe');\n  var i = enumBugKeys.length;\n  var lt = '<';\n  var gt = '>';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  require('./_html').appendChild(iframe);\n  iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n  // createDict = iframe.contentWindow.Object;\n  // html.removeChild(iframe);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n  return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = getKeys(Properties);\n  var length = keys.length;\n  var i = 0;\n  var P;\n  while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n  return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n  ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n  try {\n    return 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","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? 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) { /* empty */ }\n  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n  return function getOwnPropertyDescriptor(it, key) {\n    return $getOwnPropertyDescriptor(toIObject(it), key);\n  };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n  var fn = (core.Object || {})[KEY] || Object[KEY];\n  var exp = {};\n  exp[KEY] = exec(fn);\n  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n  return function getPrototypeOf(it) {\n    return $getPrototypeOf(toObject(it));\n  };\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n  return Object(defined(it));\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\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  if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n    return O.constructor.prototype;\n  } return O instanceof Object ? ObjectProto : null;\n};\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n  return function keys(it) {\n    return $keys(toObject(it));\n  };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n  return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n  return function freeze(it) {\n    return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n  };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n  return function seal(it) {\n    return $seal && isObject(it) ? $seal(meta(it)) : it;\n  };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n  return function preventExtensions(it) {\n    return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n  };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n  return function isFrozen(it) {\n    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n  };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n  return function isSealed(it) {\n    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n  };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n  return function isExtensible(it) {\n    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n  };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n  var A = {};\n  var B = {};\n  // eslint-disable-next-line no-undef\n  var S = Symbol();\n  var K = 'abcdefghijklmnopqrst';\n  A[S] = 7;\n  K.split('').forEach(function (k) { B[k] = k; });\n  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n  var T = toObject(target);\n  var aLen = arguments.length;\n  var index = 1;\n  var getSymbols = gOPS.f;\n  var isEnum = pIE.f;\n  while (aLen > index) {\n    var S = IObject(arguments[index++]);\n    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n    var length = keys.length;\n    var j = 0;\n    var key;\n    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n  } return T;\n} : $assign;\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n  // eslint-disable-next-line no-self-compare\n  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n  anObject(O);\n  if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n    function (test, buggy, set) {\n      try {\n        set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n        set(test, []);\n        buggy = !(test instanceof Array);\n      } catch (e) { buggy = true; }\n      return function setPrototypeOf(O, proto) {\n        check(O, proto);\n        if (buggy) O.__proto__ = proto;\n        else set(O, proto);\n        return O;\n      };\n    }({}, false) : undefined),\n  check: check\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n  require('./_redefine')(Object.prototype, 'toString', function toString() {\n    return '[object ' + classof(this) + ']';\n  }, true);\n}\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n  try {\n    return it[key];\n  } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n  var O, T, B;\n  return it === undefined ? 'Undefined' : it === null ? 'Null'\n    // @@toStringTag case\n    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n    // builtinTag case\n    : ARG ? cof(O)\n    // ES3 arguments fallback\n    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n  if (!(len in factories)) {\n    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n    // eslint-disable-next-line no-new-func\n    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n  } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n  var fn = aFunction(this);\n  var partArgs = arraySlice.call(arguments, 1);\n  var bound = function (/* args... */) {\n    var args = partArgs.concat(arraySlice.call(arguments));\n    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n  };\n  if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n  return bound;\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n  var un = that === undefined;\n  switch (args.length) {\n    case 0: return un ? fn()\n                      : fn.call(that);\n    case 1: return un ? fn(args[0])\n                      : fn.call(that, args[0]);\n    case 2: return un ? fn(args[0], args[1])\n                      : fn.call(that, args[0], args[1]);\n    case 3: return un ? fn(args[0], args[1], args[2])\n                      : fn.call(that, args[0], args[1], args[2]);\n    case 4: return un ? fn(args[0], args[1], args[2], args[3])\n                      : fn.call(that, args[0], args[1], args[2], args[3]);\n  } return fn.apply(that, args);\n};\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n  configurable: true,\n  get: function () {\n    try {\n      return ('' + this).match(nameRE)[1];\n    } catch (e) {\n      return '';\n    }\n  }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n  if (typeof this != 'function' || !isObject(O)) return false;\n  if (!isObject(this.prototype)) return O instanceof this;\n  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n  return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n  var string = $trim(String(str), 3);\n  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n  var exp = {};\n  var FORCE = fails(function () {\n    return !!spaces[KEY]() || non[KEY]() != non;\n  });\n  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n  if (ALIAS) exp[ALIAS] = fn;\n  $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n  string = String(defined(string));\n  if (TYPE & 1) string = string.replace(ltrim, '');\n  if (TYPE & 2) string = string.replace(rtrim, '');\n  return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n  '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n  var string = $trim(String(str), 3);\n  var result = $parseFloat(string);\n  return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  if (typeof it == 'string' && it.length > 2) {\n    it = TRIM ? it.trim() : $trim(it, 3);\n    var first = it.charCodeAt(0);\n    var third, radix, maxCode;\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n        default: return +it;\n      }\n      for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n        code = digits.charCodeAt(i);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n  $Number = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var that = this;\n    return that instanceof $Number\n      // check on 1..constructor(foo) case\n      && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n        ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n  };\n  for (var keys = require('./_descriptors') ? gOPN(Base) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES6 (in case, if modules with ES6 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(Base, key = keys[j]) && !has($Number, key)) {\n      dP($Number, key, gOPD(Base, key));\n    }\n  }\n  $Number.prototype = proto;\n  proto.constructor = $Number;\n  require('./_redefine')(global, NUMBER, $Number);\n}\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n  var S = target.constructor;\n  var P;\n  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n    setPrototypeOf(that, P);\n  } return that;\n};\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n  var i = -1;\n  var c2 = c;\n  while (++i < 6) {\n    c2 += n * data[i];\n    data[i] = c2 % 1e7;\n    c2 = floor(c2 / 1e7);\n  }\n};\nvar divide = function (n) {\n  var i = 6;\n  var c = 0;\n  while (--i >= 0) {\n    c += data[i];\n    data[i] = floor(c / n);\n    c = (c % n) * 1e7;\n  }\n};\nvar numToString = function () {\n  var i = 6;\n  var s = '';\n  while (--i >= 0) {\n    if (s !== '' || i === 0 || data[i] !== 0) {\n      var t = String(data[i]);\n      s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n    }\n  } return s;\n};\nvar pow = function (x, n, acc) {\n  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n  var n = 0;\n  var x2 = x;\n  while (x2 >= 4096) {\n    n += 12;\n    x2 /= 4096;\n  }\n  while (x2 >= 2) {\n    n += 1;\n    x2 /= 2;\n  } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n  0.00008.toFixed(3) !== '0.000' ||\n  0.9.toFixed(0) !== '1' ||\n  1.255.toFixed(2) !== '1.25' ||\n  1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n  // V8 ~ Android 4.3-\n  $toFixed.call({});\n})), 'Number', {\n  toFixed: function toFixed(fractionDigits) {\n    var x = aNumberValue(this, ERROR);\n    var f = toInteger(fractionDigits);\n    var s = '';\n    var m = ZERO;\n    var e, z, j, k;\n    if (f < 0 || f > 20) throw RangeError(ERROR);\n    // eslint-disable-next-line no-self-compare\n    if (x != x) return 'NaN';\n    if (x <= -1e21 || x >= 1e21) return String(x);\n    if (x < 0) {\n      s = '-';\n      x = -x;\n    }\n    if (x > 1e-21) {\n      e = log(x * pow(2, 69, 1)) - 69;\n      z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n      z *= 0x10000000000000;\n      e = 52 - e;\n      if (e > 0) {\n        multiply(0, z);\n        j = f;\n        while (j >= 7) {\n          multiply(1e7, 0);\n          j -= 7;\n        }\n        multiply(pow(10, j, 1), 0);\n        j = e - 1;\n        while (j >= 23) {\n          divide(1 << 23);\n          j -= 23;\n        }\n        divide(1 << j);\n        multiply(1, 1);\n        divide(2);\n        m = numToString();\n      } else {\n        multiply(0, z);\n        multiply(1 << -e, 0);\n        m = numToString() + repeat.call(ZERO, f);\n      }\n    }\n    if (f > 0) {\n      k = m.length;\n      m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n    } else {\n      m = s + m;\n    } return m;\n  }\n});\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n  if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n  return +it;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\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  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n  return res;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n  // IE7-\n  return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n  // V8 ~ Android 4.3-\n  $toPrecision.call({});\n})), 'Number', {\n  toPrecision: function toPrecision(precision) {\n    var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n    return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n  }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n  isFinite: function isFinite(it) {\n    return typeof it == 'number' && _isFinite(it);\n  }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n  return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n  isNaN: function isNaN(number) {\n    // eslint-disable-next-line no-self-compare\n    return number != number;\n  }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n  isSafeInteger: function isSafeInteger(number) {\n    return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n  }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n  && Math.floor($acosh(Number.MAX_VALUE)) == 710\n  // Tor Browser bug: Math.acosh(Infinity) -> NaN\n  && $acosh(Infinity) == Infinity\n), 'Math', {\n  acosh: function acosh(x) {\n    return (x = +x) < 1 ? NaN : x > 94906265.62425156\n      ? Math.log(x) + Math.LN2\n      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n  }\n});\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n  atanh: function atanh(x) {\n    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n  }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n  cbrt: function cbrt(x) {\n    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n  }\n});\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n  // eslint-disable-next-line no-self-compare\n  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  clz32: function clz32(x) {\n    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n  }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n  cosh: function cosh(x) {\n    return (exp(x = +x) + exp(-x)) / 2;\n  }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n  // Old FF bug\n  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n  // Tor Browser bug\n  || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n  return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n  var $abs = Math.abs(x);\n  var $sign = sign(x);\n  var a, result;\n  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n  a = (1 + EPSILON32 / EPSILON) * $abs;\n  result = a - (a - $abs);\n  // eslint-disable-next-line no-self-compare\n  if (result > MAX32 || result != result) return $sign * Infinity;\n  return $sign * result;\n};\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n    var sum = 0;\n    var i = 0;\n    var aLen = arguments.length;\n    var larg = 0;\n    var arg, div;\n    while (i < aLen) {\n      arg = abs(arguments[i++]);\n      if (larg < arg) {\n        div = larg / arg;\n        sum = sum * div * div + 1;\n        larg = arg;\n      } else if (arg > 0) {\n        div = arg / larg;\n        sum += div * div;\n      } else sum += arg;\n    }\n    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n  }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n  imul: function imul(x, y) {\n    var UINT16 = 0xffff;\n    var xn = +x;\n    var yn = +y;\n    var xl = UINT16 & xn;\n    var yl = UINT16 & yn;\n    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n  }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  log10: function log10(x) {\n    return Math.log(x) * Math.LOG10E;\n  }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  log2: function log2(x) {\n    return Math.log(x) / Math.LN2;\n  }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n  return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n  sinh: function sinh(x) {\n    return Math.abs(x = +x) < 1\n      ? (expm1(x) - expm1(-x)) / 2\n      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n  }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n  tanh: function tanh(x) {\n    var a = expm1(x = +x);\n    var b = expm1(-x);\n    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n  }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  trunc: function trunc(it) {\n    return (it > 0 ? Math.floor : Math.ceil)(it);\n  }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n  // 21.1.2.2 String.fromCodePoint(...codePoints)\n  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n    var res = [];\n    var aLen = arguments.length;\n    var i = 0;\n    var code;\n    while (aLen > i) {\n      code = +arguments[i++];\n      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n      res.push(code < 0x10000\n        ? fromCharCode(code)\n        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n      );\n    } return res.join('');\n  }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n  // 21.1.2.4 String.raw(callSite, ...substitutions)\n  raw: function raw(callSite) {\n    var tpl = toIObject(callSite.raw);\n    var len = toLength(tpl.length);\n    var aLen = arguments.length;\n    var res = [];\n    var i = 0;\n    while (len > i) {\n      res.push(String(tpl[i++]));\n      if (i < aLen) res.push(String(arguments[i]));\n    } return res.join('');\n  }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n  return function trim() {\n    return $trim(this, 3);\n  };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n  this._t = String(iterated); // target\n  this._i = 0;                // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var index = this._i;\n  var point;\n  if (index >= O.length) return { value: undefined, done: true };\n  point = $at(O, index);\n  this._i += point.length;\n  return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true  -> String#at\n// false -> String#codePointAt\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\n      ? TO_STRING ? s.charAt(i) : a\n      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n  };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n  $iterCreate(Constructor, NAME, next);\n  var getMethod = function (kind) {\n    if (!BUGGY && kind in proto) return proto[kind];\n    switch (kind) {\n      case KEYS: return function keys() { return new Constructor(this, kind); };\n      case VALUES: return function values() { return new Constructor(this, kind); };\n    } return function entries() { return new Constructor(this, kind); };\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  // Fix native\n  if ($anyNative) {\n    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n      // Set @@toStringTag to native iterators\n      setToStringTag(IteratorPrototype, TAG, true);\n      // fix for some old engines\n      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n    }\n  }\n  // fix Array#{values, @@iterator}.name in V8 / FF\n  if (DEF_VALUES && $native && $native.name !== VALUES) {\n    VALUES_BUG = true;\n    $default = function values() { return $native.call(this); };\n  }\n  // Define iterator\n  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n    hide(proto, ITERATOR, $default);\n  }\n  // Plug for library\n  Iterators[NAME] = $default;\n  Iterators[TAG] = returnThis;\n  if (DEFAULT) {\n    methods = {\n      values: DEF_VALUES ? $default : getMethod(VALUES),\n      keys: IS_SET ? $default : getMethod(KEYS),\n      entries: $entries\n    };\n    if (FORCED) for (key in methods) {\n      if (!(key in proto)) redefine(proto, key, methods[key]);\n    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n  }\n  return methods;\n};\n","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n  setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n  // 21.1.3.3 String.prototype.codePointAt(pos)\n  codePointAt: function codePointAt(pos) {\n    return $at(this, pos);\n  }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n  endsWith: function endsWith(searchString /* , endPosition = @length */) {\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\n      ? $endsWith.call(that, search, end)\n      : that.slice(end - search.length, end) === search;\n  }\n});\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\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","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n  var isRegExp;\n  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n  var re = /./;\n  try {\n    '/./'[KEY](re);\n  } catch (e) {\n    try {\n      re[MATCH] = false;\n      return !'/./'[KEY](re);\n    } catch (f) { /* empty */ }\n  } return true;\n};\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n  includes: function includes(searchString /* , position = 0 */) {\n    return !!~context(this, searchString, INCLUDES)\n      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n  // 21.1.3.13 String.prototype.repeat(count)\n  repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n  startsWith: function startsWith(searchString /* , position = 0 */) {\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\n      ? $startsWith.call(that, search, index)\n      : that.slice(index, index + search.length) === search;\n  }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n  return function anchor(name) {\n    return createHTML(this, 'a', 'name', name);\n  };\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n  var S = String(defined(string));\n  var p1 = '<' + tag;\n  if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '&quot;') + '\"';\n  return p1 + '>' + S + '</' + tag + '>';\n};\nmodule.exports = function (NAME, exec) {\n  var O = {};\n  O[NAME] = exec(createHTML);\n  $export($export.P + $export.F * fails(function () {\n    var test = ''[NAME]('\"');\n    return test !== test.toLowerCase() || test.split('\"').length > 3;\n  }), 'String', O);\n};\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n  return function big() {\n    return createHTML(this, 'big', '', '');\n  };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n  return function blink() {\n    return createHTML(this, 'blink', '', '');\n  };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n  return function bold() {\n    return createHTML(this, 'b', '', '');\n  };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n  return function fixed() {\n    return createHTML(this, 'tt', '', '');\n  };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n  return function fontcolor(color) {\n    return createHTML(this, 'font', 'color', color);\n  };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n  return function fontsize(size) {\n    return createHTML(this, 'font', 'size', size);\n  };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n  return function italics() {\n    return createHTML(this, 'i', '', '');\n  };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n  return function link(url) {\n    return createHTML(this, 'a', 'href', url);\n  };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n  return function small() {\n    return createHTML(this, 'small', '', '');\n  };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n  return function strike() {\n    return createHTML(this, 'strike', '', '');\n  };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n  return function sub() {\n    return createHTML(this, 'sub', '', '');\n  };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n  return function sup() {\n    return createHTML(this, 'sup', '', '');\n  };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n  return new Date(NaN).toJSON() !== null\n    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n  // eslint-disable-next-line no-unused-vars\n  toJSON: function toJSON(key) {\n    var O = toObject(this);\n    var pv = toPrimitive(O);\n    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n  }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n  toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n  return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n  return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n  $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n  var d = this;\n  var y = d.getUTCFullYear();\n  var m = d.getUTCMilliseconds();\n  var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n  return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n    '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n    'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n    ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n  require('./_redefine')(DateProto, TO_STRING, function toString() {\n    var value = getTime.call(this);\n    // eslint-disable-next-line no-self-compare\n    return value === value ? $toString.call(this) : INVALID_DATE;\n  });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n  if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n  return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\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    // if object isn't iterable or it's array with default iterator - use simple case\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      for (result = new C(length); length > index; index++) {\n        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n      }\n    }\n    result.length = index;\n    return result;\n  }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n  try {\n    return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n  // 7.4.6 IteratorClose(iterator, completion)\n  } catch (e) {\n    var ret = iterator['return'];\n    if (ret !== undefined) anObject(ret.call(iterator));\n    throw e;\n  }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n  if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n  else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n  if (it != undefined) return it[ITERATOR]\n    || it['@@iterator']\n    || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n  var riter = [7][ITERATOR]();\n  riter['return'] = function () { SAFE_CLOSING = true; };\n  // eslint-disable-next-line no-throw-literal\n  Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n  if (!skipClosing && !SAFE_CLOSING) return false;\n  var safe = false;\n  try {\n    var arr = [7];\n    var iter = arr[ITERATOR]();\n    iter.next = function () { return { done: safe = true }; };\n    arr[ITERATOR] = function () { return iter; };\n    exec(arr);\n  } catch (e) { /* empty */ }\n  return safe;\n};\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n  function F() { /* empty */ }\n  return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n  // 22.1.2.3 Array.of( ...items)\n  of: function of(/* ...args */) {\n    var index = 0;\n    var aLen = arguments.length;\n    var result = new (typeof this == 'function' ? this : Array)(aLen);\n    while (aLen > index) createProperty(result, index, arguments[index++]);\n    result.length = aLen;\n    return result;\n  }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n  join: function join(separator) {\n    return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n  }\n});\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n  return !!method && fails(function () {\n    // eslint-disable-next-line no-useless-call\n    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n  });\n};\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n  if (html) arraySlice.call(html);\n}), 'Array', {\n  slice: function slice(begin, end) {\n    var len = toLength(this.length);\n    var klass = cof(this);\n    end = end === undefined ? len : end;\n    if (klass == 'Array') return arraySlice.call(this, begin, end);\n    var start = toAbsoluteIndex(begin, len);\n    var upTo = toAbsoluteIndex(end, len);\n    var size = toLength(upTo - start);\n    var cloned = new Array(size);\n    var i = 0;\n    for (; i < size; i++) cloned[i] = klass == 'String'\n      ? this.charAt(start + i)\n      : this[start + i];\n    return cloned;\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n  // IE8-\n  test.sort(undefined);\n}) || !fails(function () {\n  // V8 bug\n  test.sort(null);\n  // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n  // 22.1.3.25 Array.prototype.sort(comparefn)\n  sort: function sort(comparefn) {\n    return comparefn === undefined\n      ? $sort.call(toObject(this))\n      : $sort.call(toObject(this), aFunction(comparefn));\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n  forEach: function forEach(callbackfn /* , thisArg */) {\n    return $forEach(this, callbackfn, arguments[1]);\n  }\n});\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  var create = $create || asc;\n  return function ($this, callbackfn, that) {\n    var O = toObject($this);\n    var self = IObject(O);\n    var f = ctx(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var val, res;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      val = self[index];\n      res = f(val, index, O);\n      if (TYPE) {\n        if (IS_MAP) result[index] = res;   // map\n        else if (res) switch (TYPE) {\n          case 3: return true;             // some\n          case 5: return val;              // find\n          case 6: return index;            // findIndex\n          case 2: result.push(val);        // filter\n        } else if (IS_EVERY) return false; // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n  };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n  return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n  var C;\n  if (isArray(original)) {\n    C = original.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return C === undefined ? Array : C;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments[1]);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n  filter: function filter(callbackfn /* , thisArg */) {\n    return $filter(this, callbackfn, arguments[1]);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n  some: function some(callbackfn /* , thisArg */) {\n    return $some(this, callbackfn, arguments[1]);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n  every: function every(callbackfn /* , thisArg */) {\n    return $every(this, callbackfn, arguments[1]);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n  reduce: function reduce(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n  }\n});\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n  aFunction(callbackfn);\n  var O = toObject(that);\n  var self = IObject(O);\n  var length = toLength(O.length);\n  var index = isRight ? length - 1 : 0;\n  var i = isRight ? -1 : 1;\n  if (aLen < 2) for (;;) {\n    if (index in self) {\n      memo = self[index];\n      index += i;\n      break;\n    }\n    index += i;\n    if (isRight ? index < 0 : length <= index) {\n      throw TypeError('Reduce of empty array with no initial value');\n    }\n  }\n  for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n    memo = callbackfn(memo, self[index], index, O);\n  }\n  return memo;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n  reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n    return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n    return NEGATIVE_ZERO\n      // convert -0 to +0\n      ? $native.apply(this, arguments) || 0\n      : $indexOf(this, searchElement, arguments[1]);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n  lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n    // convert -0 to +0\n    if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n    var O = toIObject(this);\n    var length = toLength(O.length);\n    var index = length - 1;\n    if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n    if (index < 0) index = length + index;\n    for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n    return -1;\n  }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n  var O = toObject(this);\n  var len = toLength(O.length);\n  var to = toAbsoluteIndex(target, len);\n  var from = toAbsoluteIndex(start, len);\n  var end = arguments.length > 2 ? arguments[2] : undefined;\n  var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n  var inc = 1;\n  if (from < to && to < from + count) {\n    inc = -1;\n    from += count - 1;\n    to += count - 1;\n  }\n  while (count-- > 0) {\n    if (from in O) O[to] = O[from];\n    else delete O[to];\n    to += inc;\n    from += inc;\n  } return O;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n  ArrayProto[UNSCOPABLES][key] = true;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n  var O = toObject(this);\n  var length = toLength(O.length);\n  var aLen = arguments.length;\n  var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n  var end = aLen > 2 ? arguments[2] : undefined;\n  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n  while (endPos > index) O[index++] = value;\n  return O;\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n  find: function find(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n  findIndex: function findIndex(callbackfn /* , that = undefined */) {\n    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('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 () { return this; }\n  });\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n  this._t = toIObject(iterated); // target\n  this._i = 0;                   // next index\n  this._k = kind;                // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n  var O = this._t;\n  var kind = this._k;\n  var index = this._i++;\n  if (!O || index >= O.length) {\n    this._t = undefined;\n    return step(1);\n  }\n  if (kind == 'keys') return step(0, index);\n  if (kind == 'values') return step(0, O[index]);\n  return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n  return { value: value, done: !!done };\n};\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n  re2[require('./_wks')('match')] = false;\n  // RegExp constructor can alter flags and IsRegExp works correct with @@match\n  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n  $RegExp = function RegExp(p, f) {\n    var tiRE = this instanceof $RegExp;\n    var piRE = isRegExp(p);\n    var fiU = f === undefined;\n    return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n      : inheritIfRequired(CORRECT_NEW\n        ? new Base(piRE && !fiU ? p.source : p, f)\n        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n      , tiRE ? this : proto, $RegExp);\n  };\n  var proxy = function (key) {\n    key in $RegExp || dP($RegExp, key, {\n      configurable: true,\n      get: function () { return Base[key]; },\n      set: function (it) { Base[key] = it; }\n    });\n  };\n  for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n  proto.constructor = $RegExp;\n  $RegExp.prototype = proto;\n  require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n  var that = anObject(this);\n  var result = '';\n  if (that.global) result += 'g';\n  if (that.ignoreCase) result += 'i';\n  if (that.multiline) result += 'm';\n  if (that.unicode) result += 'u';\n  if (that.sticky) result += 'y';\n  return result;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n  target: 'RegExp',\n  proto: true,\n  forced: regexpExec !== /./.exec\n}, {\n  exec: regexpExec\n});\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n  var re1 = /a/,\n      re2 = /b*/g;\n  nativeExec.call(re1, 'a');\n  nativeExec.call(re2, 'a');\n  return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n  patchedExec = function exec(str) {\n    var re = this;\n    var lastIndex, reCopy, match, i;\n\n    if (NPCG_INCLUDED) {\n      reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n    }\n    if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n    match = nativeExec.call(re, str);\n\n    if (UPDATES_LAST_INDEX_WRONG && match) {\n      re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n    }\n    if (NPCG_INCLUDED && match && match.length > 1) {\n      // Fix browsers whose `exec` methods don't consistently return `undefined`\n      // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n      // eslint-disable-next-line no-loop-func\n      nativeReplace.call(match[0], reCopy, function () {\n        for (i = 1; i < arguments.length - 2; i++) {\n          if (arguments[i] === undefined) match[i] = undefined;\n        }\n      });\n    }\n\n    return match;\n  };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n  require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n  define(function toString() {\n    var R = anObject(this);\n    return '/'.concat(R.source, '/',\n      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n  });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n  define(function toString() {\n    return $toString.call(this);\n  });\n}\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n  configurable: true,\n  get: require('./_flags')\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = defined(this);\n      var fn = regexp == undefined ? undefined : regexp[MATCH];\n      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n    function (regexp) {\n      var res = maybeCallNative($match, regexp, this);\n      if (res.done) return res.value;\n      var rx = anObject(regexp);\n      var S = String(this);\n      if (!rx.global) return regExpExec(rx, S);\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = String(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n  return index + (unicode ? at(S, index).length : 1);\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n  var exec = R.exec;\n  if (typeof exec === 'function') {\n    var result = exec.call(R, S);\n    if (typeof result !== 'object') {\n      throw new TypeError('RegExp exec method returned something other than an Object or null');\n    }\n    return result;\n  }\n  if (classof(R) !== 'RegExp') {\n    throw new TypeError('RegExp#exec called on incompatible receiver');\n  }\n  return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n  // #replace needs built-in support for named groups.\n  // #match works fine because it just return the exec results, even if it has\n  // a \"grops\" property.\n  var re = /./;\n  re.exec = function () {\n    var result = [];\n    result.groups = { a: '7' };\n    return result;\n  };\n  return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n  // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n  var re = /(?:)/;\n  var originalExec = re.exec;\n  re.exec = function () { return originalExec.apply(this, arguments); };\n  var result = 'ab'.split(re);\n  return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n  var SYMBOL = wks(KEY);\n\n  var DELEGATES_TO_SYMBOL = !fails(function () {\n    // String methods call symbol-named RegEp methods\n    var O = {};\n    O[SYMBOL] = function () { return 7; };\n    return ''[KEY](O) != 7;\n  });\n\n  var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n    // Symbol-named RegExp methods call .exec\n    var execCalled = false;\n    var re = /a/;\n    re.exec = function () { execCalled = true; return null; };\n    if (KEY === 'split') {\n      // RegExp[@@split] doesn't call the regex's exec method, but first creates\n      // a new one. We need to return the patched regex when creating the new one.\n      re.constructor = {};\n      re.constructor[SPECIES] = function () { return re; };\n    }\n    re[SYMBOL]('');\n    return !execCalled;\n  }) : undefined;\n\n  if (\n    !DELEGATES_TO_SYMBOL ||\n    !DELEGATES_TO_EXEC ||\n    (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n    (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n  ) {\n    var nativeRegExpMethod = /./[SYMBOL];\n    var fns = exec(\n      defined,\n      SYMBOL,\n      ''[KEY],\n      function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n        if (regexp.exec === regexpExec) {\n          if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n            // The native String method already delegates to @@method (this\n            // polyfilled function), leasing to infinite recursion.\n            // We avoid it by directly calling the native @@method method.\n            return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n          }\n          return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n        }\n        return { done: false };\n      }\n    );\n    var strfn = fns[0];\n    var rxfn = fns[1];\n\n    redefine(String.prototype, KEY, strfn);\n    hide(RegExp.prototype, SYMBOL, length == 2\n      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n      // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n      ? function (string, arg) { return rxfn.call(string, this, arg); }\n      // 21.2.5.6 RegExp.prototype[@@match](string)\n      // 21.2.5.9 RegExp.prototype[@@search](string)\n      : function (string) { return rxfn.call(string, this); }\n    );\n  }\n};\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n  return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n  return [\n    // `String.prototype.replace` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n    function replace(searchValue, replaceValue) {\n      var O = defined(this);\n      var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n      return fn !== undefined\n        ? fn.call(searchValue, O, replaceValue)\n        : $replace.call(String(O), searchValue, replaceValue);\n    },\n    // `RegExp.prototype[@@replace]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n    function (regexp, replaceValue) {\n      var res = maybeCallNative($replace, regexp, this, replaceValue);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var functionalReplace = typeof replaceValue === 'function';\n      if (!functionalReplace) replaceValue = String(replaceValue);\n      var global = rx.global;\n      if (global) {\n        var fullUnicode = rx.unicode;\n        rx.lastIndex = 0;\n      }\n      var results = [];\n      while (true) {\n        var result = regExpExec(rx, S);\n        if (result === null) break;\n        results.push(result);\n        if (!global) break;\n        var matchStr = String(result[0]);\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n      }\n      var accumulatedResult = '';\n      var nextSourcePosition = 0;\n      for (var i = 0; i < results.length; i++) {\n        result = results[i];\n        var matched = String(result[0]);\n        var position = max(min(toInteger(result.index), S.length), 0);\n        var captures = [];\n        // NOTE: This is equivalent to\n        //   captures = result.slice(1).map(maybeToString)\n        // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n        // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n        // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n        for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n        var namedCaptures = result.groups;\n        if (functionalReplace) {\n          var replacerArgs = [matched].concat(captures, position, S);\n          if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n          var replacement = String(replaceValue.apply(undefined, replacerArgs));\n        } else {\n          replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n        }\n        if (position >= nextSourcePosition) {\n          accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n          nextSourcePosition = position + matched.length;\n        }\n      }\n      return accumulatedResult + S.slice(nextSourcePosition);\n    }\n  ];\n\n    // https://tc39.github.io/ecma262/#sec-getsubstitution\n  function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n    var tailPos = position + matched.length;\n    var m = captures.length;\n    var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n    if (namedCaptures !== undefined) {\n      namedCaptures = toObject(namedCaptures);\n      symbols = SUBSTITUTION_SYMBOLS;\n    }\n    return $replace.call(replacement, symbols, function (match, ch) {\n      var capture;\n      switch (ch.charAt(0)) {\n        case '$': return '$';\n        case '&': return matched;\n        case '`': return str.slice(0, position);\n        case \"'\": return str.slice(tailPos);\n        case '<':\n          capture = namedCaptures[ch.slice(1, -1)];\n          break;\n        default: // \\d\\d?\n          var n = +ch;\n          if (n === 0) return match;\n          if (n > m) {\n            var f = floor(n / 10);\n            if (f === 0) return match;\n            if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n            return match;\n          }\n          capture = captures[n - 1];\n      }\n      return capture === undefined ? '' : capture;\n    });\n  }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n  return [\n    // `String.prototype.search` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.search\n    function search(regexp) {\n      var O = defined(this);\n      var fn = regexp == undefined ? undefined : regexp[SEARCH];\n      return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n    },\n    // `RegExp.prototype[@@search]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n    function (regexp) {\n      var res = maybeCallNative($search, regexp, this);\n      if (res.done) return res.value;\n      var rx = anObject(regexp);\n      var S = String(this);\n      var previousLastIndex = rx.lastIndex;\n      if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n      var result = regExpExec(rx, S);\n      if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n      return result === null ? -1 : result.index;\n    }\n  ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n  var internalSplit;\n  if (\n    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n    ''[$SPLIT](/.?/)[LENGTH]\n  ) {\n    // based on es5-shim implementation, need to rework it\n    internalSplit = function (separator, limit) {\n      var string = String(this);\n      if (separator === undefined && limit === 0) return [];\n      // If `separator` is not a regex, use native split\n      if (!isRegExp(separator)) return $split.call(string, separator, limit);\n      var output = [];\n      var flags = (separator.ignoreCase ? 'i' : '') +\n                  (separator.multiline ? 'm' : '') +\n                  (separator.unicode ? 'u' : '') +\n                  (separator.sticky ? 'y' : '');\n      var lastLastIndex = 0;\n      var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n      // Make `global` and avoid `lastIndex` issues by working with a copy\n      var separatorCopy = new RegExp(separator.source, flags + 'g');\n      var match, lastIndex, lastLength;\n      while (match = regexpExec.call(separatorCopy, string)) {\n        lastIndex = separatorCopy[LAST_INDEX];\n        if (lastIndex > lastLastIndex) {\n          output.push(string.slice(lastLastIndex, match.index));\n          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n          lastLength = match[0][LENGTH];\n          lastLastIndex = lastIndex;\n          if (output[LENGTH] >= splitLimit) break;\n        }\n        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n      }\n      if (lastLastIndex === string[LENGTH]) {\n        if (lastLength || !separatorCopy.test('')) output.push('');\n      } else output.push(string.slice(lastLastIndex));\n      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n    };\n  // Chakra, V8\n  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n    internalSplit = function (separator, limit) {\n      return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n    };\n  } else {\n    internalSplit = $split;\n  }\n\n  return [\n    // `String.prototype.split` method\n    // https://tc39.github.io/ecma262/#sec-string.prototype.split\n    function split(separator, limit) {\n      var O = defined(this);\n      var splitter = separator == undefined ? undefined : separator[SPLIT];\n      return splitter !== undefined\n        ? splitter.call(separator, O, limit)\n        : internalSplit.call(String(O), separator, limit);\n    },\n    // `RegExp.prototype[@@split]` method\n    // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n    //\n    // NOTE: This cannot be properly polyfilled in engines that don't support\n    // the 'y' flag.\n    function (regexp, limit) {\n      var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n      if (res.done) return res.value;\n\n      var rx = anObject(regexp);\n      var S = String(this);\n      var C = speciesConstructor(rx, RegExp);\n\n      var unicodeMatching = rx.unicode;\n      var flags = (rx.ignoreCase ? 'i' : '') +\n                    (rx.multiline ? 'm' : '') +\n                    (rx.unicode ? 'u' : '') +\n                    (SUPPORTS_Y ? 'y' : 'g');\n\n      // ^(? + rx + ) is needed, in combination with some S slicing, to\n      // simulate the 'y' flag.\n      var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n      var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n      if (lim === 0) return [];\n      if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n      var p = 0;\n      var q = 0;\n      var A = [];\n      while (q < S.length) {\n        splitter.lastIndex = SUPPORTS_Y ? q : 0;\n        var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n        var e;\n        if (\n          z === null ||\n          (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n        ) {\n          q = advanceStringIndex(S, q, unicodeMatching);\n        } else {\n          A.push(S.slice(p, q));\n          if (A.length === lim) return A;\n          for (var i = 1; i <= z.length - 1; i++) {\n            A.push(z[i]);\n            if (A.length === lim) return A;\n          }\n          q = p = e;\n        }\n      }\n      A.push(S.slice(p));\n      return A;\n    }\n  ];\n});\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n  var C = anObject(O).constructor;\n  var S;\n  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n  try {\n    // correct subclassing with @@species support\n    var promise = $Promise.resolve(1);\n    var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n      exec(empty, empty);\n    };\n    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n    return (isNode || typeof PromiseRejectionEvent == 'function')\n      && promise.then(empty) instanceof FakePromise\n      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n      // we can't detect it synchronously, so just check versions\n      && v8.indexOf('6.6') !== 0\n      && userAgent.indexOf('Chrome/66') === -1;\n  } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n  var then;\n  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n  if (promise._n) return;\n  promise._n = true;\n  var chain = promise._c;\n  microtask(function () {\n    var value = promise._v;\n    var ok = promise._s == 1;\n    var i = 0;\n    var run = function (reaction) {\n      var handler = ok ? reaction.ok : reaction.fail;\n      var resolve = reaction.resolve;\n      var reject = reaction.reject;\n      var domain = reaction.domain;\n      var result, then, exited;\n      try {\n        if (handler) {\n          if (!ok) {\n            if (promise._h == 2) onHandleUnhandled(promise);\n            promise._h = 1;\n          }\n          if (handler === true) result = value;\n          else {\n            if (domain) domain.enter();\n            result = handler(value); // may throw\n            if (domain) {\n              domain.exit();\n              exited = true;\n            }\n          }\n          if (result === reaction.promise) {\n            reject(TypeError('Promise-chain cycle'));\n          } else if (then = isThenable(result)) {\n            then.call(result, resolve, reject);\n          } else resolve(result);\n        } else reject(value);\n      } catch (e) {\n        if (domain && !exited) domain.exit();\n        reject(e);\n      }\n    };\n    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n    promise._c = [];\n    promise._n = false;\n    if (isReject && !promise._h) onUnhandled(promise);\n  });\n};\nvar onUnhandled = function (promise) {\n  task.call(global, function () {\n    var value = promise._v;\n    var unhandled = isUnhandled(promise);\n    var result, handler, console;\n    if (unhandled) {\n      result = perform(function () {\n        if (isNode) {\n          process.emit('unhandledRejection', value, promise);\n        } else if (handler = global.onunhandledrejection) {\n          handler({ promise: promise, reason: value });\n        } else if ((console = global.console) && console.error) {\n          console.error('Unhandled promise rejection', value);\n        }\n      });\n      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n      promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n    } promise._a = undefined;\n    if (unhandled && result.e) throw result.v;\n  });\n};\nvar isUnhandled = function (promise) {\n  return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n  task.call(global, function () {\n    var handler;\n    if (isNode) {\n      process.emit('rejectionHandled', promise);\n    } else if (handler = global.onrejectionhandled) {\n      handler({ promise: promise, reason: promise._v });\n    }\n  });\n};\nvar $reject = function (value) {\n  var promise = this;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  promise._v = value;\n  promise._s = 2;\n  if (!promise._a) promise._a = promise._c.slice();\n  notify(promise, true);\n};\nvar $resolve = function (value) {\n  var promise = this;\n  var then;\n  if (promise._d) return;\n  promise._d = true;\n  promise = promise._w || promise; // unwrap\n  try {\n    if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n    if (then = isThenable(value)) {\n      microtask(function () {\n        var wrapper = { _w: promise, _d: false }; // wrap\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({ _w: promise, _d: false }, e); // wrap\n  }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n  // 25.4.3.1 Promise(executor)\n  $Promise = function Promise(executor) {\n    anInstance(this, $Promise, PROMISE, '_h');\n    aFunction(executor);\n    Internal.call(this);\n    try {\n      executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n    } catch (err) {\n      $reject.call(this, err);\n    }\n  };\n  // eslint-disable-next-line no-unused-vars\n  Internal = function Promise(executor) {\n    this._c = [];             // <- awaiting reactions\n    this._a = undefined;      // <- checked in isUnhandled reactions\n    this._s = 0;              // <- state\n    this._d = false;          // <- done\n    this._v = undefined;      // <- value\n    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n    this._n = false;          // <- notify\n  };\n  Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n    then: function then(onFulfilled, onRejected) {\n      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n      reaction.fail = typeof onRejected == 'function' && onRejected;\n      reaction.domain = isNode ? process.domain : undefined;\n      this._c.push(reaction);\n      if (this._a) this._a.push(reaction);\n      if (this._s) notify(this, false);\n      return reaction.promise;\n    },\n    // 25.4.5.1 Promise.prototype.catch(onRejected)\n    'catch': function (onRejected) {\n      return this.then(undefined, onRejected);\n    }\n  });\n  OwnPromiseCapability = function () {\n    var promise = new Internal();\n    this.promise = promise;\n    this.resolve = ctx($resolve, promise, 1);\n    this.reject = ctx($reject, promise, 1);\n  };\n  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n    return C === $Promise || C === Wrapper\n      ? new OwnPromiseCapability(C)\n      : newGenericPromiseCapability(C);\n  };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n  // 25.4.4.5 Promise.reject(r)\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  // 25.4.4.6 Promise.resolve(x)\n  resolve: function resolve(x) {\n    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n  }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n  $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n  // 25.4.4.1 Promise.all(iterable)\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  // 25.4.4.4 Promise.race(iterable)\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","module.exports = function (it, Constructor, name, forbiddenField) {\n  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n    throw TypeError(name + ': incorrect invocation!');\n  } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n  var iterFn = ITERATOR ? function () { return iterable; } : 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  // fast case for arrays with default iterator\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};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n  var id = +this;\n  // eslint-disable-next-line no-prototype-builtins\n  if (queue.hasOwnProperty(id)) {\n    var fn = queue[id];\n    delete queue[id];\n    fn();\n  }\n};\nvar listener = function (event) {\n  run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n  setTask = function setImmediate(fn) {\n    var args = [];\n    var i = 1;\n    while (arguments.length > i) args.push(arguments[i++]);\n    queue[++counter] = function () {\n      // eslint-disable-next-line no-new-func\n      invoke(typeof fn == 'function' ? fn : Function(fn), args);\n    };\n    defer(counter);\n    return counter;\n  };\n  clearTask = function clearImmediate(id) {\n    delete queue[id];\n  };\n  // Node.js 0.8-\n  if (require('./_cof')(process) == 'process') {\n    defer = function (id) {\n      process.nextTick(ctx(run, id, 1));\n    };\n  // Sphere (JS game engine) Dispatch API\n  } else if (Dispatch && Dispatch.now) {\n    defer = function (id) {\n      Dispatch.now(ctx(run, id, 1));\n    };\n  // Browsers with MessageChannel, includes WebWorkers\n  } else if (MessageChannel) {\n    channel = new MessageChannel();\n    port = channel.port2;\n    channel.port1.onmessage = listener;\n    defer = ctx(port.postMessage, port, 1);\n  // Browsers with postMessage, skip WebWorkers\n  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n    defer = function (id) {\n      global.postMessage(id + '', '*');\n    };\n    global.addEventListener('message', listener, false);\n  // IE8-\n  } else if (ONREADYSTATECHANGE in cel('script')) {\n    defer = function (id) {\n      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n        html.removeChild(this);\n        run.call(id);\n      };\n    };\n  // Rest old browsers\n  } else {\n    defer = function (id) {\n      setTimeout(ctx(run, id, 1), 0);\n    };\n  }\n}\nmodule.exports = {\n  set: setTask,\n  clear: clearTask\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n  var head, last, notify;\n\n  var flush = function () {\n    var parent, fn;\n    if (isNode && (parent = process.domain)) parent.exit();\n    while (head) {\n      fn = head.fn;\n      head = head.next;\n      try {\n        fn();\n      } catch (e) {\n        if (head) notify();\n        else last = undefined;\n        throw e;\n      }\n    } last = undefined;\n    if (parent) parent.enter();\n  };\n\n  // Node.js\n  if (isNode) {\n    notify = function () {\n      process.nextTick(flush);\n    };\n  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n  } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n    var toggle = true;\n    var node = document.createTextNode('');\n    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n    notify = function () {\n      node.data = toggle = !toggle;\n    };\n  // environments with maybe non-completely correct, but existent Promise\n  } else if (Promise && Promise.resolve) {\n    // Promise.resolve without an argument throws an error in LG WebOS 2\n    var promise = Promise.resolve(undefined);\n    notify = function () {\n      promise.then(flush);\n    };\n  // for other environments - macrotask based on:\n  // - setImmediate\n  // - MessageChannel\n  // - window.postMessag\n  // - onreadystatechange\n  // - setTimeout\n  } else {\n    notify = function () {\n      // strange IE + webpack dev server bug - use .call(global)\n      macrotask.call(global, flush);\n    };\n  }\n\n  return function (fn) {\n    var task = { fn: fn, next: undefined };\n    if (last) last.next = task;\n    if (!head) {\n      head = task;\n      notify();\n    } last = task;\n  };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\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","module.exports = function (exec) {\n  try {\n    return { e: false, v: exec() };\n  } catch (e) {\n    return { e: true, v: e };\n  }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n  anObject(C);\n  if (isObject(x) && x.constructor === C) return x;\n  var promiseCapability = newPromiseCapability.f(C);\n  var resolve = promiseCapability.resolve;\n  resolve(x);\n  return promiseCapability.promise;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n  for (var key in src) redefine(target, key, src[key], safe);\n  return target;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.1.3.6 Map.prototype.get(key)\n  get: function get(key) {\n    var entry = strong.getEntry(validate(this, MAP), key);\n    return entry && entry.v;\n  },\n  // 23.1.3.9 Map.prototype.set(key, value)\n  set: function set(key, value) {\n    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n  }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n  // fast case\n  var index = fastKey(key);\n  var entry;\n  if (index !== 'F') return that._i[index];\n  // frozen object case\n  for (entry = that._f; entry; entry = entry.n) {\n    if (entry.k == key) return entry;\n  }\n};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;         // collection type\n      that._i = create(null); // index\n      that._f = undefined;    // first entry\n      that._l = undefined;    // last entry\n      that[SIZE] = 0;         // size\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.1.3.1 Map.prototype.clear()\n      // 23.2.3.2 Set.prototype.clear()\n      clear: function clear() {\n        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n          entry.r = true;\n          if (entry.p) entry.p = entry.p.n = undefined;\n          delete data[entry.i];\n        }\n        that._f = that._l = undefined;\n        that[SIZE] = 0;\n      },\n      // 23.1.3.3 Map.prototype.delete(key)\n      // 23.2.3.4 Set.prototype.delete(value)\n      'delete': function (key) {\n        var that = validate(this, NAME);\n        var entry = getEntry(that, key);\n        if (entry) {\n          var next = entry.n;\n          var prev = entry.p;\n          delete that._i[entry.i];\n          entry.r = true;\n          if (prev) prev.n = next;\n          if (next) next.p = prev;\n          if (that._f == entry) that._f = next;\n          if (that._l == entry) that._l = prev;\n          that[SIZE]--;\n        } return !!entry;\n      },\n      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n      forEach: function forEach(callbackfn /* , that = undefined */) {\n        validate(this, NAME);\n        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n        var entry;\n        while (entry = entry ? entry.n : this._f) {\n          f(entry.v, entry.k, this);\n          // revert to the last existing entry\n          while (entry && entry.r) entry = entry.p;\n        }\n      },\n      // 23.1.3.7 Map.prototype.has(key)\n      // 23.2.3.7 Set.prototype.has(value)\n      has: function has(key) {\n        return !!getEntry(validate(this, NAME), key);\n      }\n    });\n    if (DESCRIPTORS) dP(C.prototype, 'size', {\n      get: function () {\n        return validate(this, NAME)[SIZE];\n      }\n    });\n    return C;\n  },\n  def: function (that, key, value) {\n    var entry = getEntry(that, key);\n    var prev, index;\n    // change existing entry\n    if (entry) {\n      entry.v = value;\n    // create new entry\n    } else {\n      that._l = entry = {\n        i: index = fastKey(key, true), // <- index\n        k: key,                        // <- key\n        v: value,                      // <- value\n        p: prev = that._l,             // <- previous entry\n        n: undefined,                  // <- next entry\n        r: false                       // <- removed\n      };\n      if (!that._f) that._f = entry;\n      if (prev) prev.n = entry;\n      that[SIZE]++;\n      // add to index\n      if (index !== 'F') that._i[index] = entry;\n    } return that;\n  },\n  getEntry: getEntry,\n  setStrong: function (C, NAME, IS_MAP) {\n    // add .keys, .values, .entries, [@@iterator]\n    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n    $iterDefine(C, NAME, function (iterated, kind) {\n      this._t = validate(iterated, NAME); // target\n      this._k = kind;                     // kind\n      this._l = undefined;                // previous\n    }, function () {\n      var that = this;\n      var kind = that._k;\n      var entry = that._l;\n      // revert to the last existing entry\n      while (entry && entry.r) entry = entry.p;\n      // get next entry\n      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n        // or finish the iteration\n        that._t = undefined;\n        return step(1);\n      }\n      // return step by kind\n      if (kind == 'keys') return step(0, entry.k);\n      if (kind == 'values') return step(0, entry.v);\n      return step(0, [entry.k, entry.v]);\n    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n    // add [@@species], 23.1.2.2, 23.2.2.2\n    setSpecies(NAME);\n  }\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n  return it;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\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  var fixMethod = function (KEY) {\n    var fn = proto[KEY];\n    redefine(proto, KEY,\n      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) { fn.call(this, a === 0 ? 0 : a); return this; }\n        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n    );\n  };\n  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n    new C().entries().next();\n  }))) {\n    // create collection constructor\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    // early implementations not supports chaining\n    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false\n    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n    // most early implementations doesn't supports iterables, most modern - not close it correctly\n    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n    // for early implementations -0 and +0 not the same\n    var BUGGY_ZERO = !IS_WEAK && fails(function () {\n      // V8 ~ Chromium 42- fails only with 5+ elements\n      var $instance = new C();\n      var index = 5;\n      while (index--) $instance[ADDER](index, index);\n      return !$instance.has(-0);\n    });\n    if (!ACCEPT_ITERABLES) {\n      C = wrapper(function (target, iterable) {\n        anInstance(target, C, NAME);\n        var that = inheritIfRequired(new Base(), target, C);\n        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n        return that;\n      });\n      C.prototype = proto;\n      proto.constructor = C;\n    }\n    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n      fixMethod('delete');\n      fixMethod('has');\n      IS_MAP && fixMethod('get');\n    }\n    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n    // weak collections should not contains .clear method\n    if (IS_WEAK && proto.clear) delete proto.clear;\n  }\n\n  setToStringTag(C, NAME);\n\n  O[NAME] = C;\n  $export($export.G + $export.W + $export.F * (C != Base), O);\n\n  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n  return C;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n  return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.2.3.1 Set.prototype.add(value)\n  add: function add(value) {\n    return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n  }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n  return function WeakMap() {\n    return get(this, arguments.length > 0 ? arguments[0] : undefined);\n  };\n};\n\nvar methods = {\n  // 23.3.3.3 WeakMap.prototype.get(key)\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  // 23.3.3.5 WeakMap.prototype.set(key, value)\n  set: function set(key, value) {\n    return weak.def(validate(this, WEAK_MAP), key, value);\n  }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\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      // store frozen objects on internal weakmap shim\n      if (isObject(a) && !isExtensible(a)) {\n        if (!this._f) this._f = new InternalMap();\n        var result = this._f[key](a, b);\n        return key == 'set' ? this : result;\n      // store all the rest on native weakmap\n      } return method.call(this, a, b);\n    });\n  });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n  return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n  this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n  return arrayFind(store.a, function (it) {\n    return it[0] === key;\n  });\n};\nUncaughtFrozenStore.prototype = {\n  get: function (key) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) return entry[1];\n  },\n  has: function (key) {\n    return !!findUncaughtFrozen(this, key);\n  },\n  set: function (key, value) {\n    var entry = findUncaughtFrozen(this, key);\n    if (entry) entry[1] = value;\n    else this.a.push([key, value]);\n  },\n  'delete': function (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};\n\nmodule.exports = {\n  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n    var C = wrapper(function (that, iterable) {\n      anInstance(that, C, NAME, '_i');\n      that._t = NAME;      // collection type\n      that._i = id++;      // collection id\n      that._l = undefined; // leak store for uncaught frozen objects\n      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n    });\n    redefineAll(C.prototype, {\n      // 23.3.3.2 WeakMap.prototype.delete(key)\n      // 23.4.3.3 WeakSet.prototype.delete(value)\n      'delete': function (key) {\n        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      // 23.3.3.4 WeakMap.prototype.has(key)\n      // 23.4.3.4 WeakSet.prototype.has(value)\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 (that, key, value) {\n    var data = getWeak(anObject(key), true);\n    if (data === true) uncaughtFrozenStore(that).set(key, value);\n    else data[that._i] = value;\n    return that;\n  },\n  ufstore: uncaughtFrozenStore\n};\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n  return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n  // 23.4.3.1 WeakSet.prototype.add(value)\n  add: function add(value) {\n    return weak.def(validate(this, WEAK_SET), value, true);\n  }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n  // 24.1.3.1 ArrayBuffer.isView(arg)\n  isView: function isView(it) {\n    return $isView && $isView(it) || isObject(it) && VIEW in it;\n  }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n  return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n  // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n  slice: function slice(start, end) {\n    if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n    var len = anObject(this).byteLength;\n    var first = toAbsoluteIndex(start, len);\n    var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n    var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n    var viewS = new $DataView(this);\n    var viewT = new $DataView(result);\n    var index = 0;\n    while (first < fin) {\n      viewT.setUint8(index++, viewS.getUint8(first++));\n    } return result;\n  }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n  'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n  if (Typed = global[TypedArrayConstructors[i++]]) {\n    hide(Typed.prototype, TYPED, true);\n    hide(Typed.prototype, VIEW, true);\n  } else CONSTR = false;\n}\n\nmodule.exports = {\n  ABV: ABV,\n  CONSTR: CONSTR,\n  TYPED: TYPED,\n  VIEW: VIEW\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n  var buffer = new Array(nBytes);\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n  var i = 0;\n  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n  var e, m, c;\n  value = abs(value);\n  // eslint-disable-next-line no-self-compare\n  if (value != value || value === Infinity) {\n    // eslint-disable-next-line no-self-compare\n    m = value != value ? 1 : 0;\n    e = eMax;\n  } else {\n    e = floor(log(value) / LN2);\n    if (value * (c = pow(2, -e)) < 1) {\n      e--;\n      c *= 2;\n    }\n    if (e + eBias >= 1) {\n      value += rt / c;\n    } else {\n      value += rt * pow(2, 1 - eBias);\n    }\n    if (value * c >= 2) {\n      e++;\n      c /= 2;\n    }\n    if (e + eBias >= eMax) {\n      m = 0;\n      e = eMax;\n    } else if (e + eBias >= 1) {\n      m = (value * c - 1) * pow(2, mLen);\n      e = e + eBias;\n    } else {\n      m = value * pow(2, eBias - 1) * pow(2, mLen);\n      e = 0;\n    }\n  }\n  for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n  e = e << mLen | m;\n  eLen += mLen;\n  for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n  buffer[--i] |= s * 128;\n  return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n  var eLen = nBytes * 8 - mLen - 1;\n  var eMax = (1 << eLen) - 1;\n  var eBias = eMax >> 1;\n  var nBits = eLen - 7;\n  var i = nBytes - 1;\n  var s = buffer[i--];\n  var e = s & 127;\n  var m;\n  s >>= 7;\n  for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n  m = e & (1 << -nBits) - 1;\n  e >>= -nBits;\n  nBits += mLen;\n  for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n  if (e === 0) {\n    e = 1 - eBias;\n  } else if (e === eMax) {\n    return m ? NaN : s ? -Infinity : Infinity;\n  } else {\n    m = m + pow(2, mLen);\n    e = e - eBias;\n  } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n  return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n  return [it & 0xff];\n}\nfunction packI16(it) {\n  return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n  return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n  return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n  return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n  dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n  var store = view[$BUFFER]._b;\n  var start = intIndex + view[$OFFSET];\n  var pack = store.slice(start, start + bytes);\n  return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n  var numIndex = +index;\n  var intIndex = toIndex(numIndex);\n  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n  var store = view[$BUFFER]._b;\n  var start = intIndex + view[$OFFSET];\n  var pack = conversion(+value);\n  for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n  $ArrayBuffer = function ArrayBuffer(length) {\n    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n    var byteLength = toIndex(length);\n    this._b = arrayFill.call(new Array(byteLength), 0);\n    this[$LENGTH] = byteLength;\n  };\n\n  $DataView = function DataView(buffer, byteOffset, byteLength) {\n    anInstance(this, $DataView, DATA_VIEW);\n    anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n    var bufferLength = buffer[$LENGTH];\n    var offset = toInteger(byteOffset);\n    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n    this[$BUFFER] = buffer;\n    this[$OFFSET] = offset;\n    this[$LENGTH] = byteLength;\n  };\n\n  if (DESCRIPTORS) {\n    addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n    addGetter($DataView, BUFFER, '_b');\n    addGetter($DataView, BYTE_LENGTH, '_l');\n    addGetter($DataView, BYTE_OFFSET, '_o');\n  }\n\n  redefineAll($DataView[PROTOTYPE], {\n    getInt8: function getInt8(byteOffset) {\n      return get(this, 1, byteOffset)[0] << 24 >> 24;\n    },\n    getUint8: function getUint8(byteOffset) {\n      return get(this, 1, byteOffset)[0];\n    },\n    getInt16: function getInt16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments[1]);\n      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n    },\n    getUint16: function getUint16(byteOffset /* , littleEndian */) {\n      var bytes = get(this, 2, byteOffset, arguments[1]);\n      return bytes[1] << 8 | bytes[0];\n    },\n    getInt32: function getInt32(byteOffset /* , littleEndian */) {\n      return unpackI32(get(this, 4, byteOffset, arguments[1]));\n    },\n    getUint32: function getUint32(byteOffset /* , littleEndian */) {\n      return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n    },\n    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n    },\n    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n      return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n    },\n    setInt8: function setInt8(byteOffset, value) {\n      set(this, 1, byteOffset, packI8, value);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      set(this, 1, byteOffset, packI8, value);\n    },\n    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packI16, value, arguments[2]);\n    },\n    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n      set(this, 2, byteOffset, packI16, value, arguments[2]);\n    },\n    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packI32, value, arguments[2]);\n    },\n    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packI32, value, arguments[2]);\n    },\n    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n      set(this, 4, byteOffset, packF32, value, arguments[2]);\n    },\n    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n      set(this, 8, byteOffset, packF64, value, arguments[2]);\n    }\n  });\n} else {\n  if (!fails(function () {\n    $ArrayBuffer(1);\n  }) || !fails(function () {\n    new $ArrayBuffer(-1); // eslint-disable-line no-new\n  }) || fails(function () {\n    new $ArrayBuffer(); // eslint-disable-line no-new\n    new $ArrayBuffer(1.5); // eslint-disable-line no-new\n    new $ArrayBuffer(NaN); // eslint-disable-line no-new\n    return $ArrayBuffer.name != ARRAY_BUFFER;\n  })) {\n    $ArrayBuffer = function ArrayBuffer(length) {\n      anInstance(this, $ArrayBuffer);\n      return new BaseBuffer(toIndex(length));\n    };\n    var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n    for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n      if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n    }\n    if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n  }\n  // iOS Safari 7.x bug\n  var view = new $DataView(new $ArrayBuffer(2));\n  var $setInt8 = $DataView[PROTOTYPE].setInt8;\n  view.setInt8(0, 2147483648);\n  view.setInt8(1, 2147483649);\n  if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n    setInt8: function setInt8(byteOffset, value) {\n      $setInt8.call(this, byteOffset, value << 24 >> 24);\n    },\n    setUint8: function setUint8(byteOffset, value) {\n      $setInt8.call(this, byteOffset, value << 24 >> 24);\n    }\n  }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n  if (it === undefined) return 0;\n  var number = toInteger(it);\n  var length = toLength(number);\n  if (number !== length) throw RangeError('Wrong length!');\n  return length;\n};\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n  DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n  return function Int8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","'use strict';\nif (require('./_descriptors')) {\n  var LIBRARY = require('./_library');\n  var global = require('./_global');\n  var fails = require('./_fails');\n  var $export = require('./_export');\n  var $typed = require('./_typed');\n  var $buffer = require('./_typed-buffer');\n  var ctx = require('./_ctx');\n  var anInstance = require('./_an-instance');\n  var propertyDesc = require('./_property-desc');\n  var hide = require('./_hide');\n  var redefineAll = require('./_redefine-all');\n  var toInteger = require('./_to-integer');\n  var toLength = require('./_to-length');\n  var toIndex = require('./_to-index');\n  var toAbsoluteIndex = require('./_to-absolute-index');\n  var toPrimitive = require('./_to-primitive');\n  var has = require('./_has');\n  var classof = require('./_classof');\n  var isObject = require('./_is-object');\n  var toObject = require('./_to-object');\n  var isArrayIter = require('./_is-array-iter');\n  var create = require('./_object-create');\n  var getPrototypeOf = require('./_object-gpo');\n  var gOPN = require('./_object-gopn').f;\n  var getIterFn = require('./core.get-iterator-method');\n  var uid = require('./_uid');\n  var wks = require('./_wks');\n  var createArrayMethod = require('./_array-methods');\n  var createArrayIncludes = require('./_array-includes');\n  var speciesConstructor = require('./_species-constructor');\n  var ArrayIterators = require('./es6.array.iterator');\n  var Iterators = require('./_iterators');\n  var $iterDetect = require('./_iter-detect');\n  var setSpecies = require('./_set-species');\n  var arrayFill = require('./_array-fill');\n  var arrayCopyWithin = require('./_array-copy-within');\n  var $DP = require('./_object-dp');\n  var $GOPD = require('./_object-gopd');\n  var dP = $DP.f;\n  var gOPD = $GOPD.f;\n  var RangeError = global.RangeError;\n  var TypeError = global.TypeError;\n  var Uint8Array = global.Uint8Array;\n  var ARRAY_BUFFER = 'ArrayBuffer';\n  var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n  var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n  var PROTOTYPE = 'prototype';\n  var ArrayProto = Array[PROTOTYPE];\n  var $ArrayBuffer = $buffer.ArrayBuffer;\n  var $DataView = $buffer.DataView;\n  var arrayForEach = createArrayMethod(0);\n  var arrayFilter = createArrayMethod(2);\n  var arraySome = createArrayMethod(3);\n  var arrayEvery = createArrayMethod(4);\n  var arrayFind = createArrayMethod(5);\n  var arrayFindIndex = createArrayMethod(6);\n  var arrayIncludes = createArrayIncludes(true);\n  var arrayIndexOf = createArrayIncludes(false);\n  var arrayValues = ArrayIterators.values;\n  var arrayKeys = ArrayIterators.keys;\n  var arrayEntries = ArrayIterators.entries;\n  var arrayLastIndexOf = ArrayProto.lastIndexOf;\n  var arrayReduce = ArrayProto.reduce;\n  var arrayReduceRight = ArrayProto.reduceRight;\n  var arrayJoin = ArrayProto.join;\n  var arraySort = ArrayProto.sort;\n  var arraySlice = ArrayProto.slice;\n  var arrayToString = ArrayProto.toString;\n  var arrayToLocaleString = ArrayProto.toLocaleString;\n  var ITERATOR = wks('iterator');\n  var TAG = wks('toStringTag');\n  var TYPED_CONSTRUCTOR = uid('typed_constructor');\n  var DEF_CONSTRUCTOR = uid('def_constructor');\n  var ALL_CONSTRUCTORS = $typed.CONSTR;\n  var TYPED_ARRAY = $typed.TYPED;\n  var VIEW = $typed.VIEW;\n  var WRONG_LENGTH = 'Wrong length!';\n\n  var $map = createArrayMethod(1, function (O, length) {\n    return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n  });\n\n  var LITTLE_ENDIAN = fails(function () {\n    // eslint-disable-next-line no-undef\n    return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n  });\n\n  var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n    new Uint8Array(1).set({});\n  });\n\n  var toOffset = function (it, BYTES) {\n    var offset = toInteger(it);\n    if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n    return offset;\n  };\n\n  var validate = function (it) {\n    if (isObject(it) && TYPED_ARRAY in it) return it;\n    throw TypeError(it + ' is not a typed array!');\n  };\n\n  var allocate = function (C, length) {\n    if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n      throw TypeError('It is not a typed array constructor!');\n    } return new C(length);\n  };\n\n  var speciesFromList = function (O, list) {\n    return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n  };\n\n  var fromList = function (C, list) {\n    var index = 0;\n    var length = list.length;\n    var result = allocate(C, length);\n    while (length > index) result[index] = list[index++];\n    return result;\n  };\n\n  var addGetter = function (it, key, internal) {\n    dP(it, key, { get: function () { return this._d[internal]; } });\n  };\n\n  var $from = function from(source /* , mapfn, thisArg */) {\n    var O = toObject(source);\n    var aLen = arguments.length;\n    var mapfn = aLen > 1 ? arguments[1] : undefined;\n    var mapping = mapfn !== undefined;\n    var iterFn = getIterFn(O);\n    var i, length, values, result, step, iterator;\n    if (iterFn != undefined && !isArrayIter(iterFn)) {\n      for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n        values.push(step.value);\n      } O = values;\n    }\n    if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n    for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n      result[i] = mapping ? mapfn(O[i], i) : O[i];\n    }\n    return result;\n  };\n\n  var $of = function of(/* ...items */) {\n    var index = 0;\n    var length = arguments.length;\n    var result = allocate(this, length);\n    while (length > index) result[index] = arguments[index++];\n    return result;\n  };\n\n  // iOS Safari 6.x fails here\n  var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n  var $toLocaleString = function toLocaleString() {\n    return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n  };\n\n  var proto = {\n    copyWithin: function copyWithin(target, start /* , end */) {\n      return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n    },\n    every: function every(callbackfn /* , thisArg */) {\n      return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n      return arrayFill.apply(validate(this), arguments);\n    },\n    filter: function filter(callbackfn /* , thisArg */) {\n      return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n        arguments.length > 1 ? arguments[1] : undefined));\n    },\n    find: function find(predicate /* , thisArg */) {\n      return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    findIndex: function findIndex(predicate /* , thisArg */) {\n      return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    forEach: function forEach(callbackfn /* , thisArg */) {\n      arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    indexOf: function indexOf(searchElement /* , fromIndex */) {\n      return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    includes: function includes(searchElement /* , fromIndex */) {\n      return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    join: function join(separator) { // eslint-disable-line no-unused-vars\n      return arrayJoin.apply(validate(this), arguments);\n    },\n    lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n      return arrayLastIndexOf.apply(validate(this), arguments);\n    },\n    map: function map(mapfn /* , thisArg */) {\n      return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n      return arrayReduce.apply(validate(this), arguments);\n    },\n    reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n      return arrayReduceRight.apply(validate(this), arguments);\n    },\n    reverse: function reverse() {\n      var that = this;\n      var length = validate(that).length;\n      var middle = Math.floor(length / 2);\n      var index = 0;\n      var value;\n      while (index < middle) {\n        value = that[index];\n        that[index++] = that[--length];\n        that[length] = value;\n      } return that;\n    },\n    some: function some(callbackfn /* , thisArg */) {\n      return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n    },\n    sort: function sort(comparefn) {\n      return arraySort.call(validate(this), comparefn);\n    },\n    subarray: function subarray(begin, end) {\n      var O = validate(this);\n      var length = O.length;\n      var $begin = toAbsoluteIndex(begin, length);\n      return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n        O.buffer,\n        O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n        toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n      );\n    }\n  };\n\n  var $slice = function slice(start, end) {\n    return speciesFromList(this, arraySlice.call(validate(this), start, end));\n  };\n\n  var $set = function set(arrayLike /* , offset */) {\n    validate(this);\n    var offset = toOffset(arguments[1], 1);\n    var length = this.length;\n    var src = toObject(arrayLike);\n    var len = toLength(src.length);\n    var index = 0;\n    if (len + offset > length) throw RangeError(WRONG_LENGTH);\n    while (index < len) this[offset + index] = src[index++];\n  };\n\n  var $iterators = {\n    entries: function entries() {\n      return arrayEntries.call(validate(this));\n    },\n    keys: function keys() {\n      return arrayKeys.call(validate(this));\n    },\n    values: function values() {\n      return arrayValues.call(validate(this));\n    }\n  };\n\n  var isTAIndex = function (target, key) {\n    return isObject(target)\n      && target[TYPED_ARRAY]\n      && typeof key != 'symbol'\n      && key in target\n      && String(+key) == String(key);\n  };\n  var $getDesc = function getOwnPropertyDescriptor(target, key) {\n    return isTAIndex(target, key = toPrimitive(key, true))\n      ? propertyDesc(2, target[key])\n      : gOPD(target, key);\n  };\n  var $setDesc = function defineProperty(target, key, desc) {\n    if (isTAIndex(target, key = toPrimitive(key, true))\n      && isObject(desc)\n      && has(desc, 'value')\n      && !has(desc, 'get')\n      && !has(desc, 'set')\n      // TODO: add validation descriptor w/o calling accessors\n      && !desc.configurable\n      && (!has(desc, 'writable') || desc.writable)\n      && (!has(desc, 'enumerable') || desc.enumerable)\n    ) {\n      target[key] = desc.value;\n      return target;\n    } return dP(target, key, desc);\n  };\n\n  if (!ALL_CONSTRUCTORS) {\n    $GOPD.f = $getDesc;\n    $DP.f = $setDesc;\n  }\n\n  $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n    getOwnPropertyDescriptor: $getDesc,\n    defineProperty: $setDesc\n  });\n\n  if (fails(function () { arrayToString.call({}); })) {\n    arrayToString = arrayToLocaleString = function toString() {\n      return arrayJoin.call(this);\n    };\n  }\n\n  var $TypedArrayPrototype$ = redefineAll({}, proto);\n  redefineAll($TypedArrayPrototype$, $iterators);\n  hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n  redefineAll($TypedArrayPrototype$, {\n    slice: $slice,\n    set: $set,\n    constructor: function () { /* noop */ },\n    toString: arrayToString,\n    toLocaleString: $toLocaleString\n  });\n  addGetter($TypedArrayPrototype$, 'buffer', 'b');\n  addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n  addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n  addGetter($TypedArrayPrototype$, 'length', 'e');\n  dP($TypedArrayPrototype$, TAG, {\n    get: function () { return this[TYPED_ARRAY]; }\n  });\n\n  // eslint-disable-next-line max-statements\n  module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n    CLAMPED = !!CLAMPED;\n    var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n    var GETTER = 'get' + KEY;\n    var SETTER = 'set' + KEY;\n    var TypedArray = global[NAME];\n    var Base = TypedArray || {};\n    var TAC = TypedArray && getPrototypeOf(TypedArray);\n    var FORCED = !TypedArray || !$typed.ABV;\n    var O = {};\n    var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n    var getter = function (that, index) {\n      var data = that._d;\n      return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n    };\n    var setter = function (that, index, value) {\n      var data = that._d;\n      if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n      data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n    };\n    var addElement = function (that, index) {\n      dP(that, index, {\n        get: function () {\n          return getter(this, index);\n        },\n        set: function (value) {\n          return setter(this, index, value);\n        },\n        enumerable: true\n      });\n    };\n    if (FORCED) {\n      TypedArray = wrapper(function (that, data, $offset, $length) {\n        anInstance(that, TypedArray, NAME, '_d');\n        var index = 0;\n        var offset = 0;\n        var buffer, byteLength, length, klass;\n        if (!isObject(data)) {\n          length = toIndex(data);\n          byteLength = length * BYTES;\n          buffer = new $ArrayBuffer(byteLength);\n        } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n          buffer = data;\n          offset = toOffset($offset, BYTES);\n          var $len = data.byteLength;\n          if ($length === undefined) {\n            if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n            byteLength = $len - offset;\n            if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n          } else {\n            byteLength = toLength($length) * BYTES;\n            if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n          }\n          length = byteLength / BYTES;\n        } else if (TYPED_ARRAY in data) {\n          return fromList(TypedArray, data);\n        } else {\n          return $from.call(TypedArray, data);\n        }\n        hide(that, '_d', {\n          b: buffer,\n          o: offset,\n          l: byteLength,\n          e: length,\n          v: new $DataView(buffer)\n        });\n        while (index < length) addElement(that, index++);\n      });\n      TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n      hide(TypedArrayPrototype, 'constructor', TypedArray);\n    } else if (!fails(function () {\n      TypedArray(1);\n    }) || !fails(function () {\n      new TypedArray(-1); // eslint-disable-line no-new\n    }) || !$iterDetect(function (iter) {\n      new TypedArray(); // eslint-disable-line no-new\n      new TypedArray(null); // eslint-disable-line no-new\n      new TypedArray(1.5); // eslint-disable-line no-new\n      new TypedArray(iter); // eslint-disable-line no-new\n    }, true)) {\n      TypedArray = wrapper(function (that, data, $offset, $length) {\n        anInstance(that, TypedArray, NAME);\n        var klass;\n        // `ws` module bug, temporarily remove validation length for Uint8Array\n        // https://github.com/websockets/ws/pull/645\n        if (!isObject(data)) return new Base(toIndex(data));\n        if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n          return $length !== undefined\n            ? new Base(data, toOffset($offset, BYTES), $length)\n            : $offset !== undefined\n              ? new Base(data, toOffset($offset, BYTES))\n              : new Base(data);\n        }\n        if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n        return $from.call(TypedArray, data);\n      });\n      arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n        if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n      });\n      TypedArray[PROTOTYPE] = TypedArrayPrototype;\n      if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n    }\n    var $nativeIterator = TypedArrayPrototype[ITERATOR];\n    var CORRECT_ITER_NAME = !!$nativeIterator\n      && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n    var $iterator = $iterators.values;\n    hide(TypedArray, TYPED_CONSTRUCTOR, true);\n    hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n    hide(TypedArrayPrototype, VIEW, true);\n    hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n    if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n      dP(TypedArrayPrototype, TAG, {\n        get: function () { return NAME; }\n      });\n    }\n\n    O[NAME] = TypedArray;\n\n    $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n    $export($export.S, NAME, {\n      BYTES_PER_ELEMENT: BYTES\n    });\n\n    $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n      from: $from,\n      of: $of\n    });\n\n    if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n    $export($export.P, NAME, proto);\n\n    setSpecies(NAME);\n\n    $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n    $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n    if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n    $export($export.P + $export.F * fails(function () {\n      new TypedArray(1).slice();\n    }), NAME, { slice: $slice });\n\n    $export($export.P + $export.F * (fails(function () {\n      return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n    }) || !fails(function () {\n      TypedArrayPrototype.toLocaleString.call([1, 2]);\n    })), NAME, { toLocaleString: $toLocaleString });\n\n    Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n    if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n  };\n} else module.exports = function () { /* empty */ };\n","require('./_typed-array')('Uint8', 1, function (init) {\n  return function Uint8Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n  return function Uint8ClampedArray(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n  return function Int16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n  return function Uint16Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n  return function Int32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n  return function Uint32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n  return function Float32Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n  return function Float64Array(data, byteOffset, length) {\n    return init(this, data, byteOffset, length);\n  };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n  rApply(function () { /* empty */ });\n}), 'Reflect', {\n  apply: function apply(target, thisArgument, argumentsList) {\n    var T = aFunction(target);\n    var L = anObject(argumentsList);\n    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n  }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n  function F() { /* empty */ }\n  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n  rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n  construct: function construct(Target, args /* , newTarget */) {\n    aFunction(Target);\n    anObject(args);\n    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n    if (Target == newTarget) {\n      // w/o altered newTarget, optimization for 0-4 arguments\n      switch (args.length) {\n        case 0: return new Target();\n        case 1: return new Target(args[0]);\n        case 2: return new Target(args[0], args[1]);\n        case 3: return new Target(args[0], args[1], args[2]);\n        case 4: return new Target(args[0], args[1], args[2], args[3]);\n      }\n      // w/o altered newTarget, lot of arguments case\n      var $args = [null];\n      $args.push.apply($args, args);\n      return new (bind.apply(Target, $args))();\n    }\n    // with altered newTarget, not support built-in constructors\n    var proto = newTarget.prototype;\n    var instance = create(isObject(proto) ? proto : Object.prototype);\n    var result = Function.apply.call(Target, instance, args);\n    return isObject(result) ? result : instance;\n  }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n  // eslint-disable-next-line no-undef\n  Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n  defineProperty: function defineProperty(target, propertyKey, attributes) {\n    anObject(target);\n    propertyKey = toPrimitive(propertyKey, true);\n    anObject(attributes);\n    try {\n      dP.f(target, propertyKey, attributes);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n  deleteProperty: function deleteProperty(target, propertyKey) {\n    var desc = gOPD(anObject(target), propertyKey);\n    return desc && !desc.configurable ? false : delete target[propertyKey];\n  }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n  this._t = anObject(iterated); // target\n  this._i = 0;                  // next index\n  var keys = this._k = [];      // keys\n  var key;\n  for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n  var that = this;\n  var keys = that._k;\n  var key;\n  do {\n    if (that._i >= keys.length) return { value: undefined, done: true };\n  } while (!((key = keys[that._i++]) in that._t));\n  return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n  enumerate: function enumerate(target) {\n    return new Enumerate(target);\n  }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n  var receiver = arguments.length < 3 ? target : arguments[2];\n  var desc, proto;\n  if (anObject(target) === receiver) return target[propertyKey];\n  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n    ? desc.value\n    : desc.get !== undefined\n      ? desc.get.call(receiver)\n      : undefined;\n  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n    return gOPD.f(anObject(target), propertyKey);\n  }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n  getPrototypeOf: function getPrototypeOf(target) {\n    return getProto(anObject(target));\n  }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n  has: function has(target, propertyKey) {\n    return propertyKey in target;\n  }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n  isExtensible: function isExtensible(target) {\n    anObject(target);\n    return $isExtensible ? $isExtensible(target) : true;\n  }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n  var keys = gOPN.f(anObject(it));\n  var getSymbols = gOPS.f;\n  return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n  preventExtensions: function preventExtensions(target) {\n    anObject(target);\n    try {\n      if ($preventExtensions) $preventExtensions(target);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n  var receiver = arguments.length < 4 ? target : arguments[3];\n  var ownDesc = gOPD.f(anObject(target), propertyKey);\n  var existingDescriptor, proto;\n  if (!ownDesc) {\n    if (isObject(proto = getPrototypeOf(target))) {\n      return set(proto, propertyKey, V, receiver);\n    }\n    ownDesc = createDesc(0);\n  }\n  if (has(ownDesc, 'value')) {\n    if (ownDesc.writable === false || !isObject(receiver)) return false;\n    if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n      existingDescriptor.value = V;\n      dP.f(receiver, propertyKey, existingDescriptor);\n    } else dP.f(receiver, propertyKey, createDesc(0, V));\n    return true;\n  }\n  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n  setPrototypeOf: function setPrototypeOf(target, proto) {\n    setProto.check(target, proto);\n    try {\n      setProto.set(target, proto);\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n});\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n  includes: function includes(el /* , fromIndex = 0 */) {\n    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n  flatMap: function flatMap(callbackfn /* , thisArg */) {\n    var O = toObject(this);\n    var sourceLen, A;\n    aFunction(callbackfn);\n    sourceLen = toLength(O.length);\n    A = arraySpeciesCreate(O, 0);\n    flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n    return A;\n  }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n  var targetIndex = start;\n  var sourceIndex = 0;\n  var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n  var element, spreadable;\n\n  while (sourceIndex < sourceLen) {\n    if (sourceIndex in source) {\n      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n      spreadable = false;\n      if (isObject(element)) {\n        spreadable = element[IS_CONCAT_SPREADABLE];\n        spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n      }\n\n      if (spreadable && depth > 0) {\n        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n      } else {\n        if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n        target[targetIndex] = element;\n      }\n\n      targetIndex++;\n    }\n    sourceIndex++;\n  }\n  return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n  flatten: function flatten(/* depthArg = 1 */) {\n    var depthArg = arguments[0];\n    var O = toObject(this);\n    var sourceLen = toLength(O.length);\n    var A = arraySpeciesCreate(O, 0);\n    flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n    return A;\n  }\n});\n\nrequire('./_add-to-unscopables')('flatten');\n","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export');\nvar $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n  at: function at(pos) {\n    return $at(this, pos);\n  }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padStart: function padStart(maxLength /* , fillString = ' ' */) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n  }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\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","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n  }\n});\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n  return function trimLeft() {\n    return $trim(this, 1);\n  };\n}, 'trimStart');\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n  return function trimRight() {\n    return $trim(this, 2);\n  };\n}, 'trimEnd');\n","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar toLength = require('./_to-length');\nvar isRegExp = require('./_is-regexp');\nvar getFlags = require('./_flags');\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n  this._r = regexp;\n  this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {\n  var match = this._r.exec(this._s);\n  return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n  matchAll: function matchAll(regexp) {\n    defined(this);\n    if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n    var S = String(this);\n    var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n    var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n    rx.lastIndex = toLength(regexp.lastIndex);\n    return new $RegExpStringIterator(rx, S);\n  }\n});\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n    var O = toIObject(object);\n    var getDesc = gOPD.f;\n    var keys = ownKeys(O);\n    var result = {};\n    var i = 0;\n    var key, desc;\n    while (keys.length > i) {\n      desc = getDesc(O, key = keys[i++]);\n      if (desc !== undefined) createProperty(result, key, desc);\n    }\n    return result;\n  }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n  values: function values(it) {\n    return $values(it);\n  }\n});\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n  return function (it) {\n    var O = toIObject(it);\n    var keys = getKeys(O);\n    var length = keys.length;\n    var i = 0;\n    var result = [];\n    var key;\n    while (length > i) if (isEnum.call(O, key = keys[i++])) {\n      result.push(isEntries ? [key, O[key]] : O[key]);\n    } return result;\n  };\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n  entries: function entries(it) {\n    return $entries(it);\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n  __defineGetter__: function __defineGetter__(P, getter) {\n    $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n  }\n});\n","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n  var K = Math.random();\n  // In FF throws only define methods\n  // eslint-disable-next-line no-undef, no-useless-call\n  __defineSetter__.call(null, K, function () { /* empty */ });\n  delete require('./_global')[K];\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n  __defineSetter__: function __defineSetter__(P, setter) {\n    $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n  __lookupGetter__: function __lookupGetter__(P) {\n    var O = toObject(this);\n    var K = toPrimitive(P, true);\n    var D;\n    do {\n      if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n    } while (O = getPrototypeOf(O));\n  }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n  __lookupSetter__: function __lookupSetter__(P) {\n    var O = toObject(this);\n    var K = toPrimitive(P, true);\n    var D;\n    do {\n      if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n    } while (O = getPrototypeOf(O));\n  }\n});\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n  return function toJSON() {\n    if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n    return from(this);\n  };\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n  var result = [];\n  forOf(iter, false, result.push, result, ITERATOR);\n  return result;\n};\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, { of: function of() {\n    var length = arguments.length;\n    var A = new Array(length);\n    while (length--) A[length] = arguments[length];\n    return new this(A);\n  } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n    var mapFn = arguments[1];\n    var mapping, A, n, cb;\n    aFunction(this);\n    mapping = mapFn !== undefined;\n    if (mapping) aFunction(mapFn);\n    if (source == undefined) return new this();\n    A = [];\n    if (mapping) {\n      n = 0;\n      cb = ctx(mapFn, arguments[2], 2);\n      forOf(source, false, function (nextItem) {\n        A.push(cb(nextItem, n++));\n      });\n    } else {\n      forOf(source, false, A.push, A);\n    }\n    return new this(A);\n  } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', { global: require('./_global') });\n","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export');\nvar cof = require('./_cof');\n\n$export($export.S, 'Error', {\n  isError: function isError(it) {\n    return cof(it) === 'Error';\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  clamp: function clamp(x, lower, upper) {\n    return Math.min(upper, Math.max(lower, x));\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n  degrees: function degrees(radians) {\n    return radians * RAD_PER_DEG;\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar scale = require('./_math-scale');\nvar fround = require('./_math-fround');\n\n$export($export.S, 'Math', {\n  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n    return fround(scale(x, inLow, inHigh, outLow, outHigh));\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n  if (\n    arguments.length === 0\n      // eslint-disable-next-line no-self-compare\n      || x != x\n      // eslint-disable-next-line no-self-compare\n      || inLow != inLow\n      // eslint-disable-next-line no-self-compare\n      || inHigh != inHigh\n      // eslint-disable-next-line no-self-compare\n      || outLow != outLow\n      // eslint-disable-next-line no-self-compare\n      || outHigh != outHigh\n  ) return NaN;\n  if (x === Infinity || x === -Infinity) return x;\n  return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;\n};\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  iaddh: function iaddh(x0, x1, y0, y1) {\n    var $x0 = x0 >>> 0;\n    var $x1 = x1 >>> 0;\n    var $y0 = y0 >>> 0;\n    return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n  }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  isubh: function isubh(x0, x1, y0, y1) {\n    var $x0 = x0 >>> 0;\n    var $x1 = x1 >>> 0;\n    var $y0 = y0 >>> 0;\n    return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n  }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  imulh: function imulh(u, v) {\n    var UINT16 = 0xffff;\n    var $u = +u;\n    var $v = +v;\n    var u0 = $u & UINT16;\n    var v0 = $v & UINT16;\n    var u1 = $u >> 16;\n    var v1 = $v >> 16;\n    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n    return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n  radians: function radians(degrees) {\n    return degrees * DEG_PER_RAD;\n  }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { scale: require('./_math-scale') });\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n  umulh: function umulh(u, v) {\n    var UINT16 = 0xffff;\n    var $u = +u;\n    var $v = +v;\n    var u0 = $u & UINT16;\n    var v0 = $v & UINT16;\n    var u1 = $u >>> 16;\n    var v1 = $v >>> 16;\n    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n    return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n  }\n});\n","// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n  // eslint-disable-next-line no-self-compare\n  return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n  var C = speciesConstructor(this, core.Promise || global.Promise);\n  var isFunction = typeof onFinally == 'function';\n  return this.then(\n    isFunction ? function (x) {\n      return promiseResolve(C, onFinally()).then(function () { return x; });\n    } : onFinally,\n    isFunction ? function (e) {\n      return promiseResolve(C, onFinally()).then(function () { throw e; });\n    } : onFinally\n  );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (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","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n  ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n  var targetMetadata = store.get(target);\n  if (!targetMetadata) {\n    if (!create) return undefined;\n    store.set(target, targetMetadata = new Map());\n  }\n  var keyMetadata = targetMetadata.get(targetKey);\n  if (!keyMetadata) {\n    if (!create) return undefined;\n    targetMetadata.set(targetKey, keyMetadata = new Map());\n  } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n  var metadataMap = getOrCreateMetadataMap(O, P, false);\n  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n  var keys = [];\n  if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n  return keys;\n};\nvar toMetaKey = function (it) {\n  return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n  $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n  store: store,\n  map: getOrCreateMetadataMap,\n  has: ordinaryHasOwnMetadata,\n  get: ordinaryGetOwnMetadata,\n  set: ordinaryDefineOwnMetadata,\n  keys: ordinaryOwnMetadataKeys,\n  key: toMetaKey,\n  exp: exp\n};\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n  var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n  var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n  if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n  if (metadataMap.size) return true;\n  var targetMetadata = store.get(target);\n  targetMetadata['delete'](targetKey);\n  return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n  return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n  var oKeys = ordinaryOwnMetadataKeys(O, P);\n  var parent = getPrototypeOf(O);\n  if (parent === null) return oKeys;\n  var pKeys = ordinaryMetadataKeys(parent, P);\n  return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n  return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n  return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n  return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n  if (hasOwn) return true;\n  var parent = getPrototypeOf(O);\n  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n  return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n  return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n  return function decorator(target, targetKey) {\n    ordinaryDefineOwnMetadata(\n      metadataKey, metadataValue,\n      (targetKey !== undefined ? anObject : aFunction)(target),\n      toMetaKey(targetKey)\n    );\n  };\n} });\n","// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export');\nvar microtask = require('./_microtask')();\nvar process = require('./_global').process;\nvar isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n  asap: function asap(fn) {\n    var domain = isNode && process.domain;\n    microtask(domain ? domain.bind(fn) : fn);\n  }\n});\n","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export');\nvar global = require('./_global');\nvar core = require('./_core');\nvar microtask = require('./_microtask')();\nvar OBSERVABLE = require('./_wks')('observable');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar anInstance = require('./_an-instance');\nvar redefineAll = require('./_redefine-all');\nvar hide = require('./_hide');\nvar forOf = require('./_for-of');\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n  return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n  var cleanup = subscription._c;\n  if (cleanup) {\n    subscription._c = undefined;\n    cleanup();\n  }\n};\n\nvar subscriptionClosed = function (subscription) {\n  return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n  if (!subscriptionClosed(subscription)) {\n    subscription._o = undefined;\n    cleanupSubscription(subscription);\n  }\n};\n\nvar Subscription = function (observer, subscriber) {\n  anObject(observer);\n  this._c = undefined;\n  this._o = observer;\n  observer = new SubscriptionObserver(this);\n  try {\n    var cleanup = subscriber(observer);\n    var subscription = cleanup;\n    if (cleanup != null) {\n      if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n      else aFunction(cleanup);\n      this._c = cleanup;\n    }\n  } catch (e) {\n    observer.error(e);\n    return;\n  } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n  unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n  this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n  next: function next(value) {\n    var subscription = this._s;\n    if (!subscriptionClosed(subscription)) {\n      var observer = subscription._o;\n      try {\n        var m = getMethod(observer.next);\n        if (m) return m.call(observer, value);\n      } catch (e) {\n        try {\n          closeSubscription(subscription);\n        } finally {\n          throw e;\n        }\n      }\n    }\n  },\n  error: function error(value) {\n    var subscription = this._s;\n    if (subscriptionClosed(subscription)) throw value;\n    var observer = subscription._o;\n    subscription._o = undefined;\n    try {\n      var m = getMethod(observer.error);\n      if (!m) throw value;\n      value = m.call(observer, value);\n    } catch (e) {\n      try {\n        cleanupSubscription(subscription);\n      } finally {\n        throw e;\n      }\n    } cleanupSubscription(subscription);\n    return value;\n  },\n  complete: function complete(value) {\n    var subscription = this._s;\n    if (!subscriptionClosed(subscription)) {\n      var observer = subscription._o;\n      subscription._o = undefined;\n      try {\n        var m = getMethod(observer.complete);\n        value = m ? m.call(observer, value) : undefined;\n      } catch (e) {\n        try {\n          cleanupSubscription(subscription);\n        } finally {\n          throw e;\n        }\n      } cleanupSubscription(subscription);\n      return value;\n    }\n  }\n});\n\nvar $Observable = function Observable(subscriber) {\n  anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n  subscribe: function subscribe(observer) {\n    return new Subscription(observer, this._f);\n  },\n  forEach: function forEach(fn) {\n    var that = this;\n    return new (core.Promise || global.Promise)(function (resolve, reject) {\n      aFunction(fn);\n      var subscription = that.subscribe({\n        next: function (value) {\n          try {\n            return fn(value);\n          } catch (e) {\n            reject(e);\n            subscription.unsubscribe();\n          }\n        },\n        error: reject,\n        complete: resolve\n      });\n    });\n  }\n});\n\nredefineAll($Observable, {\n  from: function from(x) {\n    var C = typeof this === 'function' ? this : $Observable;\n    var method = getMethod(anObject(x)[OBSERVABLE]);\n    if (method) {\n      var observable = anObject(method.call(x));\n      return observable.constructor === C ? observable : new C(function (observer) {\n        return observable.subscribe(observer);\n      });\n    }\n    return new C(function (observer) {\n      var done = false;\n      microtask(function () {\n        if (!done) {\n          try {\n            if (forOf(x, false, function (it) {\n              observer.next(it);\n              if (done) return RETURN;\n            }) === RETURN) return;\n          } catch (e) {\n            if (done) throw e;\n            observer.error(e);\n            return;\n          } observer.complete();\n        }\n      });\n      return function () { done = true; };\n    });\n  },\n  of: function of() {\n    for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n    return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n      var done = false;\n      microtask(function () {\n        if (!done) {\n          for (var j = 0; j < items.length; ++j) {\n            observer.next(items[j]);\n            if (done) return;\n          } observer.complete();\n        }\n      });\n      return function () { done = true; };\n    });\n  }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\nrequire('./_set-species')('Observable');\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n  return function (fn, time /* , ...args */) {\n    var boundArgs = arguments.length > 2;\n    var args = boundArgs ? slice.call(arguments, 2) : false;\n    return set(boundArgs ? function () {\n      // eslint-disable-next-line no-new-func\n      (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n    } : fn, time);\n  };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n  setTimeout: wrap(global.setTimeout),\n  setInterval: wrap(global.setInterval)\n});\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n  setImmediate: $task.set,\n  clearImmediate: $task.clear\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n  CSSRuleList: true, // TODO: Not spec compliant, should be false.\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, // TODO: Not spec compliant, should be false.\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, // TODO: Not spec compliant, should be false.\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  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) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n  }\n}\n","/**\n * Copyright (c) 2014, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * https://raw.github.com/facebook/regenerator/master/LICENSE file. An\n * additional grant of patent rights can be found in the PATENTS file in\n * the same directory.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    if (typeof global.process === \"object\" && global.process.domain) {\n      invoke = global.process.domain.bind(invoke);\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // Among the various tricks for obtaining a reference to the global\n  // object, this seems to be the most reliable technique that does not\n  // use indirect eval (which violates Content Security Policy).\n  typeof global === \"object\" ? global :\n  typeof window === \"object\" ? window :\n  typeof self === \"object\" ? self : this\n);\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","require('../../modules/core.regexp.escape');\nmodule.exports = require('../../modules/_core').RegExp.escape;\n","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\n","module.exports = function (regExp, replace) {\n  var replacer = replace === Object(replace) ? function (part) {\n    return replace[part];\n  } : replace;\n  return function (it) {\n    return String(it).replace(regExp, replacer);\n  };\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\nimport { URL } from './url_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n  NONE: 'none',\n  DECODE: 'decode',\n  DISPLAY: 'display',\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n  PRINT: 0x04,\n  MODIFY_CONTENTS: 0x08,\n  COPY: 0x10,\n  MODIFY_ANNOTATIONS: 0x20,\n  FILL_INTERACTIVE_FORMS: 0x100,\n  COPY_FOR_ACCESSIBILITY: 0x200,\n  ASSEMBLE: 0x400,\n  PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n  FILL: 0,\n  STROKE: 1,\n  FILL_STROKE: 2,\n  INVISIBLE: 3,\n  FILL_ADD_TO_PATH: 4,\n  STROKE_ADD_TO_PATH: 5,\n  FILL_STROKE_ADD_TO_PATH: 6,\n  ADD_TO_PATH: 7,\n  FILL_STROKE_MASK: 3,\n  ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n  GRAYSCALE_1BPP: 1,\n  RGB_24BPP: 2,\n  RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n  TEXT: 1,\n  LINK: 2,\n  FREETEXT: 3,\n  LINE: 4,\n  SQUARE: 5,\n  CIRCLE: 6,\n  POLYGON: 7,\n  POLYLINE: 8,\n  HIGHLIGHT: 9,\n  UNDERLINE: 10,\n  SQUIGGLY: 11,\n  STRIKEOUT: 12,\n  STAMP: 13,\n  CARET: 14,\n  INK: 15,\n  POPUP: 16,\n  FILEATTACHMENT: 17,\n  SOUND: 18,\n  MOVIE: 19,\n  WIDGET: 20,\n  SCREEN: 21,\n  PRINTERMARK: 22,\n  TRAPNET: 23,\n  WATERMARK: 24,\n  THREED: 25,\n  REDACT: 26,\n};\n\nconst AnnotationFlag = {\n  INVISIBLE: 0x01,\n  HIDDEN: 0x02,\n  PRINT: 0x04,\n  NOZOOM: 0x08,\n  NOROTATE: 0x10,\n  NOVIEW: 0x20,\n  READONLY: 0x40,\n  LOCKED: 0x80,\n  TOGGLENOVIEW: 0x100,\n  LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n  READONLY: 0x0000001,\n  REQUIRED: 0x0000002,\n  NOEXPORT: 0x0000004,\n  MULTILINE: 0x0001000,\n  PASSWORD: 0x0002000,\n  NOTOGGLETOOFF: 0x0004000,\n  RADIO: 0x0008000,\n  PUSHBUTTON: 0x0010000,\n  COMBO: 0x0020000,\n  EDIT: 0x0040000,\n  SORT: 0x0080000,\n  FILESELECT: 0x0100000,\n  MULTISELECT: 0x0200000,\n  DONOTSPELLCHECK: 0x0400000,\n  DONOTSCROLL: 0x0800000,\n  COMB: 0x1000000,\n  RICHTEXT: 0x2000000,\n  RADIOSINUNISON: 0x2000000,\n  COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n  SOLID: 1,\n  DASHED: 2,\n  BEVELED: 3,\n  INSET: 4,\n  UNDERLINE: 5,\n};\n\nconst StreamType = {\n  UNKNOWN: 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};\n\nconst 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};\n\nconst VerbosityLevel = {\n  ERRORS: 0,\n  WARNINGS: 1,\n  INFOS: 5,\n};\n\nconst CMapCompressionType = {\n  NONE: 0,\n  BINARY: 1,\n  STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n  // Intentionally start from 1 so it is easy to spot bad operators that will be\n  // 0's.\n  dependency: 1,\n  setLineWidth: 2,\n  setLineCap: 3,\n  setLineJoin: 4,\n  setMiterLimit: 5,\n  setDash: 6,\n  setRenderingIntent: 7,\n  setFlatness: 8,\n  setGState: 9,\n  save: 10,\n  restore: 11,\n  transform: 12,\n  moveTo: 13,\n  lineTo: 14,\n  curveTo: 15,\n  curveTo2: 16,\n  curveTo3: 17,\n  closePath: 18,\n  rectangle: 19,\n  stroke: 20,\n  closeStroke: 21,\n  fill: 22,\n  eoFill: 23,\n  fillStroke: 24,\n  eoFillStroke: 25,\n  closeFillStroke: 26,\n  closeEOFillStroke: 27,\n  endPath: 28,\n  clip: 29,\n  eoClip: 30,\n  beginText: 31,\n  endText: 32,\n  setCharSpacing: 33,\n  setWordSpacing: 34,\n  setHScale: 35,\n  setLeading: 36,\n  setFont: 37,\n  setTextRenderingMode: 38,\n  setTextRise: 39,\n  moveText: 40,\n  setLeadingMoveText: 41,\n  setTextMatrix: 42,\n  nextLine: 43,\n  showText: 44,\n  showSpacedText: 45,\n  nextLineShowText: 46,\n  nextLineSetSpacingShowText: 47,\n  setCharWidth: 48,\n  setCharWidthAndBounds: 49,\n  setStrokeColorSpace: 50,\n  setFillColorSpace: 51,\n  setStrokeColor: 52,\n  setStrokeColorN: 53,\n  setFillColor: 54,\n  setFillColorN: 55,\n  setStrokeGray: 56,\n  setFillGray: 57,\n  setStrokeRGBColor: 58,\n  setFillRGBColor: 59,\n  setStrokeCMYKColor: 60,\n  setFillCMYKColor: 61,\n  shadingFill: 62,\n  beginInlineImage: 63,\n  beginImageData: 64,\n  endInlineImage: 65,\n  paintXObject: 66,\n  markPoint: 67,\n  markPointProps: 68,\n  beginMarkedContent: 69,\n  beginMarkedContentProps: 70,\n  endMarkedContent: 71,\n  beginCompat: 72,\n  endCompat: 73,\n  paintFormXObjectBegin: 74,\n  paintFormXObjectEnd: 75,\n  beginGroup: 76,\n  endGroup: 77,\n  beginAnnotations: 78,\n  endAnnotations: 79,\n  beginAnnotation: 80,\n  endAnnotation: 81,\n  paintJpegXObject: 82,\n  paintImageMaskXObject: 83,\n  paintImageMaskXObjectGroup: 84,\n  paintImageXObject: 85,\n  paintInlineImageXObject: 86,\n  paintInlineImageXObjectGroup: 87,\n  paintImageXObjectRepeat: 88,\n  paintImageMaskXObjectRepeat: 89,\n  paintSolidColorImageMask: 90,\n  constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n  unknown: 'unknown',\n  forms: 'forms',\n  javaScript: 'javaScript',\n  smask: 'smask',\n  shadingPattern: 'shadingPattern',\n  font: 'font',\n};\n\nconst PasswordResponses = {\n  NEED_PASSWORD: 1,\n  INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n  if (Number.isInteger(level)) {\n    verbosity = level;\n  }\n}\n\nfunction getVerbosityLevel() {\n  return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n  if (verbosity >= VerbosityLevel.INFOS) {\n    console.log('Info: ' + msg);\n  }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n  if (verbosity >= VerbosityLevel.WARNINGS) {\n    console.log('Warning: ' + msg);\n  }\n}\n\n// Deprecated API function -- display regardless of the `verbosity` setting.\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\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n  try {\n    var base = new URL(baseUrl);\n    if (!base.origin || base.origin === 'null') {\n      return false; // non-HTTP url\n    }\n  } catch (e) {\n    return false;\n  }\n\n  var other = new URL(otherUrl, base);\n  return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n  if (!url) {\n    return false;\n  }\n  switch (url.protocol) {\n    case 'http:':\n    case 'https:':\n    case 'ftp:':\n    case 'mailto:':\n    case 'tel:':\n      return true;\n    default:\n      return false;\n  }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n  if (!url) {\n    return null;\n  }\n  try {\n    var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n    if (_isValidProtocol(absoluteUrl)) {\n      return absoluteUrl;\n    }\n  } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n  return null;\n}\n\nfunction shadow(obj, prop, value) {\n  Object.defineProperty(obj, prop, { value,\n                                     enumerable: true,\n                                     configurable: true,\n                                     writable: false, });\n  return value;\n}\n\nfunction getLookupTableFactory(initializer) {\n  var lookup;\n  return function () {\n    if (initializer) {\n      lookup = Object.create(null);\n      initializer(lookup);\n      initializer = null;\n    }\n    return lookup;\n  };\n}\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\n  return PasswordException;\n})();\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\n  return UnknownErrorException;\n})();\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\n  return InvalidPDFException;\n})();\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\n  return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n    (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\n  return UnexpectedResponseException;\n})();\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\n  return MissingDataException;\n})();\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\n  return XRefParseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet 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\n  return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet 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\n  return AbortException;\n})();\n\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  return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n  assert(bytes !== null && typeof bytes === 'object' &&\n         bytes.length !== undefined, 'Invalid argument for bytesToString');\n  var length = bytes.length;\n  var MAX_ARGUMENT_COUNT = 8192;\n  if (length < MAX_ARGUMENT_COUNT) {\n    return String.fromCharCode.apply(null, bytes);\n  }\n  var strBuf = [];\n  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n    var chunk = bytes.subarray(i, chunkEnd);\n    strBuf.push(String.fromCharCode.apply(null, chunk));\n  }\n  return strBuf.join('');\n}\n\nfunction stringToBytes(str) {\n  assert(typeof str === 'string', 'Invalid argument for stringToBytes');\n  var length = str.length;\n  var bytes = new Uint8Array(length);\n  for (var i = 0; i < length; ++i) {\n    bytes[i] = str.charCodeAt(i) & 0xFF;\n  }\n  return bytes;\n}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n  if (arr.length !== undefined) {\n    return arr.length;\n  }\n  assert(arr.byteLength !== undefined);\n  return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n  // Shortcut: if first and only item is Uint8Array, return it.\n  if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n    return arr[0];\n  }\n  var resultLength = 0;\n  var i, ii = arr.length;\n  var item, itemLength;\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n    itemLength = arrayByteLength(item);\n    resultLength += itemLength;\n  }\n  var pos = 0;\n  var data = new Uint8Array(resultLength);\n  for (i = 0; i < ii; i++) {\n    item = arr[i];\n    if (!(item instanceof Uint8Array)) {\n      if (typeof item === 'string') {\n        item = stringToBytes(item);\n      } else {\n        item = new Uint8Array(item);\n      }\n    }\n    itemLength = item.byteLength;\n    data.set(item, pos);\n    pos += itemLength;\n  }\n  return data;\n}\n\nfunction string32(value) {\n  return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n                             (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n  if (x <= 0) {\n    return 0;\n  }\n  return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n  return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n  return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n  return ((data[offset] << 24) | (data[offset + 1] << 16) |\n         (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\nfunction isLittleEndian() {\n  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\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n  try {\n    new Function(''); // eslint-disable-line no-new, no-new-func\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned. To avoid infinite loops, the traversal is stopped when\n * the loop limit is reached.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n *   array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n *   the key is found. If set to `false`, we always walk up the entire parent\n *   chain, for example to be able to find `\\Resources` placed on multiple\n *   levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({ dict, key, getArray = false,\n                                  stopWhenFound = true, }) {\n  const LOOP_LIMIT = 100;\n  let loopCount = 0;\n  let values;\n\n  while (dict) {\n    const value = getArray ? dict.getArray(key) : dict.get(key);\n    if (value !== undefined) {\n      if (stopWhenFound) {\n        return value;\n      }\n      if (!values) {\n        values = [];\n      }\n      values.push(value);\n    }\n    if (++loopCount > LOOP_LIMIT) {\n      warn(`getInheritableProperty: maximum loop count exceeded for \"${key}\"`);\n      break;\n    }\n    dict = dict.get('Parent');\n  }\n  return values;\n}\n\nvar Util = (function UtilClosure() {\n  function Util() {}\n\n  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n  // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n  // creating many intermediate strings.\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  // Concatenates two transformation matrices together and returns the result.\n  Util.transform = function Util_transform(m1, m2) {\n    return [\n      m1[0] * m2[0] + m1[2] * m2[1],\n      m1[1] * m2[0] + m1[3] * m2[1],\n      m1[0] * m2[2] + m1[2] * m2[3],\n      m1[1] * m2[2] + m1[3] * m2[3],\n      m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n      m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n    ];\n  };\n\n  // For 2d affine transforms\n  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  // Applies the transform to the rectangle and finds the minimum axially\n  // aligned bounding box.\n  Util.getAxialAlignedBoundingBox =\n    function Util_getAxialAlignedBoundingBox(r, m) {\n\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 [\n      Math.min(p1[0], p2[0], p3[0], p4[0]),\n      Math.min(p1[1], p2[1], p3[1], p4[1]),\n      Math.max(p1[0], p2[0], p3[0], p4[0]),\n      Math.max(p1[1], p2[1], p3[1], p4[1])\n    ];\n  };\n\n  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,\n      (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n  };\n\n  // Apply a generic 3d matrix M on a 3-vector v:\n  //   | a b c |   | X |\n  //   | d e f | x | Y |\n  //   | g h i |   | Z |\n  // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n  // with v as [X,Y,Z]\n  Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n    return [\n      m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n      m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n      m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n    ];\n  };\n\n  // This calculation uses Singular Value Decomposition.\n  // The SVD can be represented with formula A = USV. We are interested in the\n  // matrix S here because it represents the scale values.\n  Util.singularValueDecompose2dScale =\n    function Util_singularValueDecompose2dScale(m) {\n\n    var transpose = [m[0], m[2], m[1], m[3]];\n\n    // Multiply matrix m with its transpose.\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\n    // Solve the second degree polynomial to get roots.\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\n    // Scale values are the square roots of the eigenvalues.\n    return [Math.sqrt(sx), Math.sqrt(sy)];\n  };\n\n  // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n  // For coordinate systems whose origin lies in the bottom-left, this\n  // means normalization to (BL,TR) ordering. For systems with origin in the\n  // top-left, this means (TL,BR) ordering.\n  Util.normalizeRect = function Util_normalizeRect(rect) {\n    var r = rect.slice(0); // clone rect\n    if (rect[0] > rect[2]) {\n      r[0] = rect[2];\n      r[2] = rect[0];\n    }\n    if (rect[1] > rect[3]) {\n      r[1] = rect[3];\n      r[3] = rect[1];\n    }\n    return r;\n  };\n\n  // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n  // intersection of rect1 and rect2. If no intersection, returns 'false'\n  // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n  Util.intersect = function Util_intersect(rect1, rect2) {\n    function compare(a, b) {\n      return a - b;\n    }\n\n    // Order points along the axes\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\n    rect1 = Util.normalizeRect(rect1);\n    rect2 = Util.normalizeRect(rect2);\n\n    // X: first and second points belong to different rectangles?\n    if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n        (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n      // Intersection must be between second and third points\n      result[0] = orderedX[1];\n      result[2] = orderedX[2];\n    } else {\n      return false;\n    }\n\n    // Y: first and second points belong to different rectangles?\n    if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n        (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n      // Intersection must be between second and third points\n      result[1] = orderedY[1];\n      result[3] = orderedY[2];\n    } else {\n      return false;\n    }\n\n    return result;\n  };\n\n  return Util;\n})();\n\nconst ROMAN_NUMBER_MAP = [\n  '', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM',\n  '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC',\n  '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {integer} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n *   to lower case letters. The default value is `false`.\n * @return {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n  assert(Number.isInteger(number) && number > 0,\n         'The number should be a positive integer.');\n  let pos, romanBuf = [];\n  // Thousands\n  while (number >= 1000) {\n    number -= 1000;\n    romanBuf.push('M');\n  }\n  // Hundreds\n  pos = (number / 100) | 0;\n  number %= 100;\n  romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n  // Tens\n  pos = (number / 10) | 0;\n  number %= 10;\n  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n  // Ones\n  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);\n\n  const romanStr = romanBuf.join('');\n  return (lowerCase ? romanStr.toLowerCase() : romanStr);\n}\n\nconst PDFStringTranslateTable = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n  0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n  0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n  0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n  var i, n = str.length, strBuf = [];\n  if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n    // UTF16BE BOM\n    for (i = 2; i < n; i += 2) {\n      strBuf.push(String.fromCharCode(\n        (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));\n    }\n  } else {\n    for (i = 0; i < n; ++i) {\n      var code = PDFStringTranslateTable[str.charCodeAt(i)];\n      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n    }\n  }\n  return strBuf.join('');\n}\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  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\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n  return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A promise object.\n * @property {function} resolve - Fulfills the promise.\n * @property {function} reject - Rejects the promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability} A capability object contains:\n * - a Promise, resolve and reject methods.\n */\nfunction createPromiseCapability() {\n  var capability = {};\n  capability.promise = new Promise(function (resolve, reject) {\n    capability.resolve = resolve;\n    capability.reject = reject;\n  });\n  return capability;\n}\n\nvar createObjectURL = (function createObjectURLClosure() {\n  // Blob/createObjectURL is not available, falling back to data schema.\n  var digits =\n    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n  return function createObjectURL(data, contentType, forceDataSchema = false) {\n    if (!forceDataSchema && URL.createObjectURL) {\n      const blob = new Blob([data], { type: contentType, });\n      return URL.createObjectURL(blob);\n    }\n\n    var buffer = 'data:' + contentType + ';base64,';\n    for (var i = 0, ii = data.length; i < ii; i += 3) {\n      var b1 = data[i] & 0xFF;\n      var b2 = data[i + 1] & 0xFF;\n      var b3 = data[i + 2] & 0xFF;\n      var d1 = b1 >> 2, d2 = ((b1 & 3) << 4) | (b2 >> 4);\n      var d3 = i + 1 < ii ? ((b2 & 0xF) << 2) | (b3 >> 6) : 64;\n      var d4 = i + 2 < ii ? (b3 & 0x3F) : 64;\n      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n    }\n    return buffer;\n  };\n})();\n\nexport {\n  FONT_IDENTITY_MATRIX,\n  IDENTITY_MATRIX,\n  OPS,\n  VerbosityLevel,\n  UNSUPPORTED_FEATURES,\n  AnnotationBorderStyleType,\n  AnnotationFieldFlag,\n  AnnotationFlag,\n  AnnotationType,\n  FontType,\n  ImageKind,\n  CMapCompressionType,\n  AbortException,\n  InvalidPDFException,\n  MissingDataException,\n  MissingPDFException,\n  NativeImageDecoding,\n  PasswordException,\n  PasswordResponses,\n  PermissionFlag,\n  StreamType,\n  TextRenderingMode,\n  UnexpectedResponseException,\n  UnknownErrorException,\n  Util,\n  toRomanNumerals,\n  XRefParseException,\n  FormatError,\n  arrayByteLength,\n  arraysToBytes,\n  assert,\n  bytesToString,\n  createPromiseCapability,\n  createObjectURL,\n  deprecated,\n  getInheritableProperty,\n  getLookupTableFactory,\n  getVerbosityLevel,\n  info,\n  isArrayBuffer,\n  isBool,\n  isEmptyObj,\n  isNum,\n  isString,\n  isSpace,\n  isSameOrigin,\n  createValidAbsoluteUrl,\n  isLittleEndian,\n  isEvalSupported,\n  log2,\n  readInt8,\n  readUint16,\n  readUint32,\n  removeNullCharacters,\n  ReadableStream,\n  URL,\n  setVerbosityLevel,\n  shadow,\n  string32,\n  stringToBytes,\n  stringToPDFString,\n  stringToUTF8String,\n  utf8StringToString,\n  warn,\n  unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n     !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n    !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\n// In the Chrome extension, most of the polyfills are unnecessary.\n// We support down to Chrome 49, because it's still commonly used by Windows XP\n// users - https://github.com/mozilla/pdf.js/issues/9397\nif (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n  if (globalScope.btoa || !isNodeJS()) {\n    return;\n  }\n  globalScope.btoa = function(chars) {\n    // eslint-disable-next-line no-undef\n    return Buffer.from(chars, 'binary').toString('base64');\n  };\n})();\n\n// Support: Node.js\n(function checkNodeAtob() {\n  if (globalScope.atob || !isNodeJS()) {\n    return;\n  }\n  globalScope.atob = function(input) {\n    // eslint-disable-next-line no-undef\n    return Buffer.from(input, 'base64').toString('binary');\n  };\n})();\n\n// Provides document.currentScript support\n// Support: IE, Chrome<29.\n(function checkCurrentScript() {\n  if (!hasDOM) {\n    return;\n  }\n  if ('currentScript' in document) {\n    return;\n  }\n  Object.defineProperty(document, 'currentScript', {\n    get() {\n      var scripts = document.getElementsByTagName('script');\n      return scripts[scripts.length - 1];\n    },\n    enumerable: true,\n    configurable: true,\n  });\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n  if (!hasDOM) {\n    return;\n  }\n  if (typeof Element.prototype.remove !== 'undefined') {\n    return;\n  }\n  Element.prototype.remove = function () {\n    if (this.parentNode) {\n      // eslint-disable-next-line mozilla/avoid-removeChild\n      this.parentNode.removeChild(this);\n    }\n  };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n  if (!hasDOM || isNodeJS()) {\n    return;\n  }\n  const div = document.createElement('div');\n  if (div.classList.toggle('test', 0) === false) {\n    return;\n  }\n  const originalDOMTokenListToggle = DOMTokenList.prototype.toggle;\n\n  DOMTokenList.prototype.toggle = function(token) {\n    if (arguments.length > 1) {\n      const force = !!arguments[1];\n      return (this[force ? 'add' : 'remove'](token), force);\n    }\n    return originalDOMTokenListToggle(token);\n  };\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n  if (String.prototype.includes) {\n    return;\n  }\n  require('core-js/fn/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n  if (Array.prototype.includes) {\n    return;\n  }\n  require('core-js/fn/array/includes');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n  if (Object.assign) {\n    return;\n  }\n  require('core-js/fn/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n  if (Math.log2) {\n    return;\n  }\n  Math.log2 = require('core-js/fn/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n  if (Number.isNaN) {\n    return;\n  }\n  Number.isNaN = require('core-js/fn/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n  if (Number.isInteger) {\n    return;\n  }\n  Number.isInteger = require('core-js/fn/number/is-integer');\n})();\n\n// Support: IE, Safari<8, Chrome<32\n(function checkPromise() {\n  if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n    // The current image decoders are synchronous, hence `Promise` shouldn't\n    // need to be polyfilled for the IMAGE_DECODERS build target.\n    return;\n  }\n  if (globalScope.Promise) {\n    return;\n  }\n  globalScope.Promise = require('core-js/fn/promise');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n  if (globalScope.WeakMap) {\n    return;\n  }\n  globalScope.WeakMap = require('core-js/fn/weak-map');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n  if (String.codePointAt) {\n    return;\n  }\n  String.codePointAt = require('core-js/fn/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n  if (String.fromCodePoint) {\n    return;\n  }\n  String.fromCodePoint = require('core-js/fn/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n  if (globalScope.Symbol) {\n    return;\n  }\n  require('core-js/es6/symbol');\n})();\n\n} // End of !PDFJSDev.test('CHROME')\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n  if (Object.values) {\n    return;\n  }\n  Object.values = require('core-js/fn/object/values');\n})();\n\n}\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module */\n\nmodule.exports =\n  (typeof window !== 'undefined' && window.Math === Math) ? window :\n  // eslint-disable-next-line no-undef\n  (typeof global !== 'undefined' && global.Math === Math) ? global :\n  (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n  return typeof process === 'object' && process + '' === '[object process]';\n};\n","require('../../modules/es6.string.includes');\nmodule.exports = require('../../modules/_core').String.includes;\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.math.log2');\nmodule.exports = require('../../modules/_core').Math.log2;\n","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","require('../../modules/es6.string.code-point-at');\nmodule.exports = require('../../modules/_core').String.codePointAt;\n","require('../../modules/es6.string.from-code-point');\nmodule.exports = require('../../modules/_core').String.fromCodePoint;\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nlet isReadableStreamSupported = false;\nif (typeof ReadableStream !== 'undefined') {\n  // MS Edge may say it has ReadableStream but they are not up to spec yet.\n  try {\n    // eslint-disable-next-line no-new\n    new ReadableStream({\n      start(controller) {\n        controller.close();\n      },\n    });\n    isReadableStreamSupported = true;\n  } catch (e) {\n    // The ReadableStream constructor cannot be used.\n  }\n}\nif (isReadableStreamSupported) {\n  exports.ReadableStream = ReadableStream;\n} else {\n  if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n    class DummyReadableStream {\n      constructor() {\n        throw new Error('The current image decoders are synchronous, ' +\n                        'hence `ReadableStream` shouldn\\'t need to be ' +\n                        'polyfilled for the IMAGE_DECODERS build target.');\n      }\n    }\n    exports.ReadableStream = DummyReadableStream;\n  } else {\n    exports.ReadableStream =\n      require('../../external/streams/streams-lib').ReadableStream;\n  }\n}\n","/*\n * To the extent possible under law, the authors have dedicated all copyright\n * and related and neighboring rights to this software to the public\n * domain worldwide. This software is distributed without any warranty.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with this software. If not, see https://creativecommons.org/publicdomain/zero/1.0/.\n */\n\n(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap\n/******/  // The module cache\n/******/  var installedModules = {};\n/******/\n/******/  // The require function\n/******/  function __w_pdfjs_require__(moduleId) {\n/******/\n/******/    // Check if module is in cache\n/******/    if(installedModules[moduleId])\n/******/      return installedModules[moduleId].exports;\n/******/\n/******/    // Create a new module (and put it into the cache)\n/******/    var module = installedModules[moduleId] = {\n/******/      i: moduleId,\n/******/      l: false,\n/******/      exports: {}\n/******/    };\n/******/\n/******/    // Execute the module function\n/******/    modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/    // Flag the module as loaded\n/******/    module.l = true;\n/******/\n/******/    // Return the exports of the module\n/******/    return module.exports;\n/******/  }\n/******/\n/******/\n/******/  // expose the modules object (__webpack_modules__)\n/******/  __w_pdfjs_require__.m = modules;\n/******/\n/******/  // expose the module cache\n/******/  __w_pdfjs_require__.c = installedModules;\n/******/\n/******/  // identity function for calling harmony imports with the correct context\n/******/  __w_pdfjs_require__.i = function(value) { return value; };\n/******/\n/******/  // define getter function for harmony exports\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/******/  // getDefaultExport function for compatibility with non-harmony modules\n/******/  __w_pdfjs_require__.n = function(module) {\n/******/    var getter = module && module.__esModule ?\n/******/      function getDefault() { return module['default']; } :\n/******/      function getModuleExports() { return module; };\n/******/    __w_pdfjs_require__.d(getter, 'a', getter);\n/******/    return getter;\n/******/  };\n/******/\n/******/  // Object.prototype.hasOwnProperty.call\n/******/  __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/  // __webpack_public_path__\n/******/  __w_pdfjs_require__.p = \"\";\n/******/\n/******/  // Load entry module and return exports\n/******/  return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _require = __w_pdfjs_require__(1),\n    assert = _require.assert;\n\nfunction IsPropertyKey(argument) {\n  return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n}\n\nexports.typeIsObject = function (x) {\n  return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n};\n\nexports.createDataProperty = function (o, p, v) {\n  assert(exports.typeIsObject(o));\n  Object.defineProperty(o, p, { value: v, writable: true, enumerable: true, configurable: true });\n};\n\nexports.createArrayFromList = function (elements) {\n  // We use arrays to represent lists, so this is basically a no-op.\n  // Do a slice though just in case we happen to depend on the unique-ness.\n  return elements.slice();\n};\n\nexports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n  new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n};\n\nexports.CreateIterResultObject = function (value, done) {\n  assert(typeof done === 'boolean');\n  var obj = {};\n  Object.defineProperty(obj, 'value', { value: value, enumerable: true, writable: true, configurable: true });\n  Object.defineProperty(obj, 'done', { value: done, enumerable: true, writable: true, configurable: true });\n  return obj;\n};\n\nexports.IsFiniteNonNegativeNumber = function (v) {\n  if (Number.isNaN(v)) {\n    return false;\n  }\n  if (v === Infinity) {\n    return false;\n  }\n  if (v < 0) {\n    return false;\n  }\n\n  return true;\n};\n\nfunction 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\nexports.InvokeOrNoop = function (O, P, args) {\n  assert(O !== undefined);\n  assert(IsPropertyKey(P));\n  assert(Array.isArray(args));\n\n  var method = O[P];\n  if (method === undefined) {\n    return undefined;\n  }\n\n  return Call(method, O, args);\n};\n\nexports.PromiseInvokeOrNoop = function (O, P, args) {\n  assert(O !== undefined);\n  assert(IsPropertyKey(P));\n  assert(Array.isArray(args));\n  try {\n    return Promise.resolve(exports.InvokeOrNoop(O, P, args));\n  } catch (returnValueE) {\n    return Promise.reject(returnValueE);\n  }\n};\n\nexports.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\n  var method = void 0;\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// Not implemented correctly\nexports.TransferArrayBuffer = function (O) {\n  return O.slice();\n};\n\nexports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {\n  highWaterMark = Number(highWaterMark);\n  if (Number.isNaN(highWaterMark) || highWaterMark < 0) {\n    throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');\n  }\n\n  return highWaterMark;\n};\n\nexports.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\n  return { size: size, highWaterMark: highWaterMark };\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction rethrowAssertionErrorRejection(e) {\n  // Used throughout the reference implementation, as `.catch(rethrowAssertionErrorRejection)`, to ensure any errors\n  // get shown. There are places in the spec where we do promise transformations and purposefully ignore or don't\n  // expect any errors, but assertion errors are always problematic.\n  if (e && e.constructor === AssertionError) {\n    setTimeout(function () {\n      throw e;\n    }, 0);\n  }\n};\n\nfunction AssertionError(message) {\n  this.name = 'AssertionError';\n  this.message = message || '';\n  this.stack = new Error().stack;\n}\nAssertionError.prototype = Object.create(Error.prototype);\nAssertionError.prototype.constructor = AssertionError;\n\nfunction assert(value, message) {\n  if (!value) {\n    throw new AssertionError(message);\n  }\n}\n\nmodule.exports = {\n  rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n  AssertionError: AssertionError,\n  assert: assert\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n    InvokeOrNoop = _require.InvokeOrNoop,\n    PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n    ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n    typeIsObject = _require.typeIsObject;\n\nvar _require2 = __w_pdfjs_require__(1),\n    assert = _require2.assert,\n    rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\nvar _require3 = __w_pdfjs_require__(3),\n    DequeueValue = _require3.DequeueValue,\n    EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n    PeekQueueValue = _require3.PeekQueueValue,\n    ResetQueue = _require3.ResetQueue;\n\nvar 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\n    // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n    // 'erroring' or 'errored'. May be set to an undefined value.\n    this._storedError = undefined;\n\n    this._writer = undefined;\n\n    // Initialize to undefined first because the constructor of the controller checks this\n    // variable to validate the caller.\n    this._writableStreamController = undefined;\n\n    // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n    // producer without waiting for the queued writes to finish.\n    this._writeRequests = [];\n\n    // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n    // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n    this._inFlightWriteRequest = undefined;\n\n    // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n    // has been detached.\n    this._closeRequest = undefined;\n\n    // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n    // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n    this._inFlightCloseRequest = undefined;\n\n    // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n    this._pendingAbortRequest = undefined;\n\n    // The backpressure signal set by the controller.\n    this._backpressure = false;\n\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    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\nmodule.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// Abstract operations for the WritableStream.\n\nfunction AcquireWritableStreamDefaultWriter(stream) {\n  return new WritableStreamDefaultWriter(stream);\n}\n\nfunction 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\nfunction 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\nfunction WritableStreamAbort(stream, reason) {\n  var state = stream._state;\n  if (state === 'closed') {\n    return Promise.resolve(undefined);\n  }\n  if (state === 'errored') {\n    return Promise.reject(stream._storedError);\n  }\n  var error = new TypeError('Requested to abort');\n  if (stream._pendingAbortRequest !== undefined) {\n    return Promise.reject(error);\n  }\n\n  assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n\n  var wasAlreadyErroring = false;\n  if (state === 'erroring') {\n    wasAlreadyErroring = true;\n    // reason will not be used, so don't keep a reference to it.\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// WritableStream API exposed for controllers.\n\nfunction WritableStreamAddWriteRequest(stream) {\n  assert(IsWritableStreamLocked(stream) === true);\n  assert(stream._state === 'writable');\n\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\n  return promise;\n}\n\nfunction 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\nfunction WritableStreamStartErroring(stream, reason) {\n  assert(stream._storedError === undefined, 'stream._storedError === undefined');\n  assert(stream._state === 'writable', 'state must be writable');\n\n  var controller = stream._writableStreamController;\n  assert(controller !== undefined, 'controller must not be undefined');\n\n  stream._state = 'erroring';\n  stream._storedError = reason;\n  var writer = stream._writer;\n  if (writer !== undefined) {\n    WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n  }\n\n  if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n    WritableStreamFinishErroring(stream);\n  }\n}\n\nfunction WritableStreamFinishErroring(stream) {\n  assert(stream._state === 'erroring', 'stream._state === erroring');\n  assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');\n  stream._state = 'errored';\n  stream._writableStreamController.__errorSteps();\n\n  var storedError = stream._storedError;\n  for (var i = 0; i < stream._writeRequests.length; i++) {\n    var writeRequest = stream._writeRequests[i];\n    writeRequest._reject(storedError);\n  }\n  stream._writeRequests = [];\n\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    WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n    return;\n  }\n\n  var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);\n  promise.then(function () {\n    abortRequest._resolve();\n    WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n  }, function (reason) {\n    abortRequest._reject(reason);\n    WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n  });\n}\n\nfunction WritableStreamFinishInFlightWrite(stream) {\n  assert(stream._inFlightWriteRequest !== undefined);\n  stream._inFlightWriteRequest._resolve(undefined);\n  stream._inFlightWriteRequest = undefined;\n}\n\nfunction WritableStreamFinishInFlightWriteWithError(stream, error) {\n  assert(stream._inFlightWriteRequest !== undefined);\n  stream._inFlightWriteRequest._reject(error);\n  stream._inFlightWriteRequest = undefined;\n\n  assert(stream._state === 'writable' || stream._state === 'erroring');\n\n  WritableStreamDealWithRejection(stream, error);\n}\n\nfunction WritableStreamFinishInFlightClose(stream) {\n  assert(stream._inFlightCloseRequest !== undefined);\n  stream._inFlightCloseRequest._resolve(undefined);\n  stream._inFlightCloseRequest = undefined;\n\n  var state = stream._state;\n\n  assert(state === 'writable' || state === 'erroring');\n\n  if (state === 'erroring') {\n    // The error was too late to do anything, so it is ignored.\n    stream._storedError = undefined;\n    if (stream._pendingAbortRequest !== undefined) {\n      stream._pendingAbortRequest._resolve();\n      stream._pendingAbortRequest = undefined;\n    }\n  }\n\n  stream._state = 'closed';\n\n  var writer = stream._writer;\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\nfunction WritableStreamFinishInFlightCloseWithError(stream, error) {\n  assert(stream._inFlightCloseRequest !== undefined);\n  stream._inFlightCloseRequest._reject(error);\n  stream._inFlightCloseRequest = undefined;\n\n  assert(stream._state === 'writable' || stream._state === 'erroring');\n\n  // Never execute sink abort() after sink close().\n  if (stream._pendingAbortRequest !== undefined) {\n    stream._pendingAbortRequest._reject(error);\n    stream._pendingAbortRequest = undefined;\n  }\n  WritableStreamDealWithRejection(stream, error);\n}\n\n// TODO(ricea): Fix alphabetical order.\nfunction WritableStreamCloseQueuedOrInFlight(stream) {\n  if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction WritableStreamHasOperationMarkedInFlight(stream) {\n  if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction WritableStreamMarkCloseRequestInFlight(stream) {\n  assert(stream._inFlightCloseRequest === undefined);\n  assert(stream._closeRequest !== undefined);\n  stream._inFlightCloseRequest = stream._closeRequest;\n  stream._closeRequest = undefined;\n}\n\nfunction 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\nfunction WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n  assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n  if (stream._closeRequest !== undefined) {\n    assert(stream._inFlightCloseRequest === undefined);\n\n    stream._closeRequest._reject(stream._storedError);\n    stream._closeRequest = undefined;\n  }\n  var writer = stream._writer;\n  if (writer !== undefined) {\n    defaultWriterClosedPromiseReject(writer, stream._storedError);\n    writer._closedPromise.catch(function () {});\n  }\n}\n\nfunction WritableStreamUpdateBackpressure(stream, backpressure) {\n  assert(stream._state === 'writable');\n  assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n  var writer = stream._writer;\n  if (writer !== undefined && backpressure !== stream._backpressure) {\n    if (backpressure === true) {\n      defaultWriterReadyPromiseReset(writer);\n    } else {\n      assert(backpressure === false);\n\n      defaultWriterReadyPromiseResolve(writer);\n    }\n  }\n\n  stream._backpressure = backpressure;\n}\n\nvar 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    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\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      this._readyPromise.catch(function () {});\n      defaultWriterClosedPromiseInitialize(this);\n    } else if (state === 'closed') {\n      defaultWriterReadyPromiseInitializeAsResolved(this);\n      defaultWriterClosedPromiseInitializeAsResolved(this);\n    } else {\n      assert(state === 'errored', 'state must be errored');\n\n      var storedError = stream._storedError;\n      defaultWriterReadyPromiseInitializeAsRejected(this, storedError);\n      this._readyPromise.catch(function () {});\n      defaultWriterClosedPromiseInitializeAsRejected(this, storedError);\n      this._closedPromise.catch(function () {});\n    }\n  }\n\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\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// Abstract operations for the WritableStreamDefaultWriter.\n\nfunction 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// A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultWriterAbort(writer, reason) {\n  var stream = writer._ownerWritableStream;\n\n  assert(stream !== undefined);\n\n  return WritableStreamAbort(stream, reason);\n}\n\nfunction WritableStreamDefaultWriterClose(writer) {\n  var stream = writer._ownerWritableStream;\n\n  assert(stream !== undefined);\n\n  var state = stream._state;\n  if (state === 'closed' || state === 'errored') {\n    return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed'));\n  }\n\n  assert(state === 'writable' || state === 'erroring');\n  assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n  var promise = new Promise(function (resolve, reject) {\n    var closeRequest = {\n      _resolve: resolve,\n      _reject: reject\n    };\n\n    stream._closeRequest = closeRequest;\n  });\n\n  if (stream._backpressure === true && state === 'writable') {\n    defaultWriterReadyPromiseResolve(writer);\n  }\n\n  WritableStreamDefaultControllerClose(stream._writableStreamController);\n\n  return promise;\n}\n\nfunction WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n  var stream = writer._ownerWritableStream;\n\n  assert(stream !== undefined);\n\n  var state = stream._state;\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\n  return WritableStreamDefaultWriterClose(writer);\n}\n\nfunction WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {\n  if (writer._closedPromiseState === 'pending') {\n    defaultWriterClosedPromiseReject(writer, error);\n  } else {\n    defaultWriterClosedPromiseResetToRejected(writer, error);\n  }\n  writer._closedPromise.catch(function () {});\n}\n\nfunction WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {\n  if (writer._readyPromiseState === 'pending') {\n    defaultWriterReadyPromiseReject(writer, error);\n  } else {\n    defaultWriterReadyPromiseResetToRejected(writer, error);\n  }\n  writer._readyPromise.catch(function () {});\n}\n\nfunction 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\nfunction WritableStreamDefaultWriterRelease(writer) {\n  var stream = writer._ownerWritableStream;\n  assert(stream !== undefined);\n  assert(stream._writer === writer);\n\n  var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n\n  WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n\n  // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n  // rejected until afterwards. This means that simply testing state will not work.\n  WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n\n  stream._writer = undefined;\n  writer._ownerWritableStream = undefined;\n}\n\nfunction WritableStreamDefaultWriterWrite(writer, chunk) {\n  var stream = writer._ownerWritableStream;\n\n  assert(stream !== undefined);\n\n  var controller = stream._writableStreamController;\n\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  if (state === 'errored') {\n    return Promise.reject(stream._storedError);\n  }\n  if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n    return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));\n  }\n  if (state === 'erroring') {\n    return Promise.reject(stream._storedError);\n  }\n\n  assert(state === 'writable');\n\n  var promise = WritableStreamAddWriteRequest(stream);\n\n  WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n\n  return promise;\n}\n\nvar 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\n    this._underlyingSink = underlyingSink;\n\n    // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n    this._queue = undefined;\n    this._queueTotalSize = undefined;\n    ResetQueue(this);\n\n    this._started = false;\n\n    var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n    this._strategySize = normalizedStrategy.size;\n    this._strategyHWM = normalizedStrategy.highWaterMark;\n\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      var state = this._controlledWritableStream._state;\n      if (state !== 'writable') {\n        // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n        // just treat it as a no-op.\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\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// Abstract operations implementing interface required by the WritableStream.\n\nfunction WritableStreamDefaultControllerClose(controller) {\n  EnqueueValueWithSize(controller, 'close', 0);\n  WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction 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\nfunction WritableStreamDefaultControllerGetDesiredSize(controller) {\n  return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n  var writeRecord = { chunk: chunk };\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  if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {\n    var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n    WritableStreamUpdateBackpressure(stream, backpressure);\n  }\n\n  WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\n// Abstract operations for the WritableStreamDefaultController.\n\nfunction 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\nfunction 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  if (state === 'closed' || state === 'errored') {\n    return;\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  if (writeRecord === 'close') {\n    WritableStreamDefaultControllerProcessClose(controller);\n  } else {\n    WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n  }\n}\n\nfunction WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n  if (controller._controlledWritableStream._state === 'writable') {\n    WritableStreamDefaultControllerError(controller, error);\n  }\n}\n\nfunction WritableStreamDefaultControllerProcessClose(controller) {\n  var stream = controller._controlledWritableStream;\n\n  WritableStreamMarkCloseRequestInFlight(stream);\n\n  DequeueValue(controller);\n  assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n\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\nfunction WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n  var stream = controller._controlledWritableStream;\n\n  WritableStreamMarkFirstWriteRequestInFlight(stream);\n\n  var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n  sinkWritePromise.then(function () {\n    WritableStreamFinishInFlightWrite(stream);\n\n    var state = stream._state;\n    assert(state === 'writable' || state === 'erroring');\n\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\nfunction WritableStreamDefaultControllerGetBackpressure(controller) {\n  var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n  return desiredSize <= 0;\n}\n\n// A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultControllerError(controller, error) {\n  var stream = controller._controlledWritableStream;\n\n  assert(stream._state === 'writable');\n\n  WritableStreamStartErroring(stream, error);\n}\n\n// Helper functions for the WritableStream.\n\nfunction streamBrandCheckException(name) {\n  return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n}\n\n// Helper functions for the WritableStreamDefaultWriter.\n\nfunction defaultWriterBrandCheckException(name) {\n  return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n}\n\nfunction defaultWriterLockException(name) {\n  return new TypeError('Cannot ' + name + ' a stream using a released writer');\n}\n\nfunction 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\nfunction 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\nfunction defaultWriterClosedPromiseInitializeAsResolved(writer) {\n  writer._closedPromise = Promise.resolve(undefined);\n  writer._closedPromise_resolve = undefined;\n  writer._closedPromise_reject = undefined;\n  writer._closedPromiseState = 'resolved';\n}\n\nfunction 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  writer._closedPromise_resolve = undefined;\n  writer._closedPromise_reject = undefined;\n  writer._closedPromiseState = 'rejected';\n}\n\nfunction 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\n  writer._closedPromise = Promise.reject(reason);\n  writer._closedPromiseState = 'rejected';\n}\n\nfunction 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  writer._closedPromise_resolve = undefined;\n  writer._closedPromise_reject = undefined;\n  writer._closedPromiseState = 'resolved';\n}\n\nfunction 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\nfunction 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\nfunction defaultWriterReadyPromiseInitializeAsResolved(writer) {\n  writer._readyPromise = Promise.resolve(undefined);\n  writer._readyPromise_resolve = undefined;\n  writer._readyPromise_reject = undefined;\n  writer._readyPromiseState = 'fulfilled';\n}\n\nfunction 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  writer._readyPromise_resolve = undefined;\n  writer._readyPromise_reject = undefined;\n  writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseReset(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 = new Promise(function (resolve, reject) {\n    writer._readyPromise_resolve = resolve;\n    writer._readyPromise_reject = reject;\n  });\n  writer._readyPromiseState = 'pending';\n}\n\nfunction defaultWriterReadyPromiseResetToRejected(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 = Promise.reject(reason);\n  writer._readyPromiseState = 'rejected';\n}\n\nfunction 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  writer._readyPromise_resolve = undefined;\n  writer._readyPromise_reject = undefined;\n  writer._readyPromiseState = 'fulfilled';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _require = __w_pdfjs_require__(0),\n    IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\nvar _require2 = __w_pdfjs_require__(1),\n    assert = _require2.assert;\n\nexports.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  container._queueTotalSize -= pair.size;\n  if (container._queueTotalSize < 0) {\n    container._queueTotalSize = 0;\n  }\n\n  return pair.value;\n};\n\nexports.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\n  size = Number(size);\n  if (!IsFiniteNonNegativeNumber(size)) {\n    throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n  }\n\n  container._queue.push({ value: value, size: size });\n  container._queueTotalSize += size;\n};\n\nexports.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\n  var pair = container._queue[0];\n  return pair.value;\n};\n\nexports.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\n  container._queue = [];\n  container._queueTotalSize = 0;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _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\nvar _require2 = __w_pdfjs_require__(0),\n    createArrayFromList = _require2.createArrayFromList,\n    createDataProperty = _require2.createDataProperty,\n    typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(1),\n    assert = _require3.assert,\n    rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\nvar _require4 = __w_pdfjs_require__(3),\n    DequeueValue = _require4.DequeueValue,\n    EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n    ResetQueue = _require4.ResetQueue;\n\nvar _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\nvar 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    // Exposed to controllers.\n    this._state = 'readable';\n\n    this._reader = undefined;\n    this._storedError = undefined;\n\n    this._disturbed = false;\n\n    // Initialize to undefined first because the constructor of the controller checks this\n    // variable to validate the caller.\n    this._readableStreamController = undefined;\n    var type = underlyingSource.type;\n    var typeString = String(type);\n    if (typeString === 'bytes') {\n      if (highWaterMark === undefined) {\n        highWaterMark = 0;\n      }\n      this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);\n    } else if (type === undefined) {\n      if (highWaterMark === undefined) {\n        highWaterMark = 1;\n      }\n      this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);\n    } else {\n      throw new RangeError('Invalid type is specified');\n    }\n  }\n\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\n      var promise = this.pipeTo(writable, options);\n\n      ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n\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      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      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\n      var shuttingDown = false;\n\n      // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n      var currentWrite = Promise.resolve();\n\n      return new Promise(function (resolve, reject) {\n        // Using reader and writer, read all chunks from this and write them to dest\n        // - Backpressure must be enforced\n        // - Shutdown must stop all activity\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        // Errors must be propagated forward\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\n        // Errors must be propagated backward\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\n        // Closing must be propagated forward\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        // Closing must be propagated backward\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          // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n          // for that too.\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          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          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\nmodule.exports = {\n  ReadableStream: ReadableStream,\n  IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n  ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n  ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n  ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n  ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n};\n\n// Abstract operations for the ReadableStream.\n\nfunction AcquireReadableStreamBYOBReader(stream) {\n  return new ReadableStreamBYOBReader(stream);\n}\n\nfunction AcquireReadableStreamDefaultReader(stream) {\n  return new ReadableStreamDefaultReader(stream);\n}\n\nfunction 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\nfunction IsReadableStreamDisturbed(stream) {\n  assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n\n  return stream._disturbed;\n}\n\nfunction 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\nfunction ReadableStreamTee(stream, cloneForBranch2) {\n  assert(IsReadableStream(stream) === true);\n  assert(typeof cloneForBranch2 === 'boolean');\n\n  var reader = AcquireReadableStreamDefaultReader(stream);\n\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\n  var pull = create_ReadableStreamTeePullFunction();\n  pull._reader = reader;\n  pull._teeState = teeState;\n  pull._cloneForBranch2 = cloneForBranch2;\n\n  var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n  cancel1._stream = stream;\n  cancel1._teeState = teeState;\n\n  var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n  cancel2._stream = stream;\n  cancel2._teeState = teeState;\n\n  var underlyingSource1 = Object.create(Object.prototype);\n  createDataProperty(underlyingSource1, 'pull', pull);\n  createDataProperty(underlyingSource1, 'cancel', cancel1);\n  var branch1Stream = new ReadableStream(underlyingSource1);\n\n  var underlyingSource2 = Object.create(Object.prototype);\n  createDataProperty(underlyingSource2, 'pull', pull);\n  createDataProperty(underlyingSource2, 'cancel', cancel2);\n  var branch2Stream = new ReadableStream(underlyingSource2);\n\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\nfunction create_ReadableStreamTeePullFunction() {\n  function f() {\n    var reader = f._reader,\n        branch1 = f._branch1,\n        branch2 = f._branch2,\n        teeState = f._teeState;\n\n\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        if (teeState.canceled2 === false) {\n          ReadableStreamDefaultControllerClose(branch2);\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      // There is no way to access the cloning code right now in the reference implementation.\n      // If we add one then we'll need an implementation for serializable objects.\n      // if (teeState.canceled2 === false && cloneForBranch2 === true) {\n      //   value2 = StructuredDeserialize(StructuredSerialize(value2));\n      // }\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  return f;\n}\n\nfunction create_ReadableStreamTeeBranch1CancelFunction() {\n  function f(reason) {\n    var stream = f._stream,\n        teeState = f._teeState;\n\n\n    teeState.canceled1 = true;\n    teeState.reason1 = reason;\n    if (teeState.canceled2 === true) {\n      var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n      var cancelResult = ReadableStreamCancel(stream, compositeReason);\n      teeState._resolve(cancelResult);\n    }\n    return teeState.promise;\n  }\n  return f;\n}\n\nfunction create_ReadableStreamTeeBranch2CancelFunction() {\n  function f(reason) {\n    var stream = f._stream,\n        teeState = f._teeState;\n\n\n    teeState.canceled2 = true;\n    teeState.reason2 = reason;\n    if (teeState.canceled1 === true) {\n      var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);\n      var cancelResult = ReadableStreamCancel(stream, compositeReason);\n      teeState._resolve(cancelResult);\n    }\n    return teeState.promise;\n  }\n  return f;\n}\n\n// ReadableStream API exposed for controllers.\n\nfunction ReadableStreamAddReadIntoRequest(stream) {\n  assert(IsReadableStreamBYOBReader(stream._reader) === true);\n  assert(stream._state === 'readable' || stream._state === 'closed');\n\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\n  return promise;\n}\n\nfunction ReadableStreamAddReadRequest(stream) {\n  assert(IsReadableStreamDefaultReader(stream._reader) === true);\n  assert(stream._state === 'readable');\n\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\n  return promise;\n}\n\nfunction ReadableStreamCancel(stream, reason) {\n  stream._disturbed = true;\n\n  if (stream._state === 'closed') {\n    return Promise.resolve(undefined);\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  return sourceCancelPromise.then(function () {\n    return undefined;\n  });\n}\n\nfunction ReadableStreamClose(stream) {\n  assert(stream._state === 'readable');\n\n  stream._state = 'closed';\n\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    reader._readRequests = [];\n  }\n\n  defaultReaderClosedPromiseResolve(reader);\n\n  return undefined;\n}\n\nfunction ReadableStreamError(stream, e) {\n  assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n  assert(stream._state === 'readable', 'state must be readable');\n\n  stream._state = 'errored';\n  stream._storedError = e;\n\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      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      readIntoRequest._reject(e);\n    }\n\n    reader._readIntoRequests = [];\n  }\n\n  defaultReaderClosedPromiseReject(reader, e);\n  reader._closedPromise.catch(function () {});\n}\n\nfunction ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n  var reader = stream._reader;\n\n  assert(reader._readIntoRequests.length > 0);\n\n  var readIntoRequest = reader._readIntoRequests.shift();\n  readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamFulfillReadRequest(stream, chunk, done) {\n  var reader = stream._reader;\n\n  assert(reader._readRequests.length > 0);\n\n  var readRequest = reader._readRequests.shift();\n  readRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamGetNumReadIntoRequests(stream) {\n  return stream._reader._readIntoRequests.length;\n}\n\nfunction ReadableStreamGetNumReadRequests(stream) {\n  return stream._reader._readRequests.length;\n}\n\nfunction 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\nfunction 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// Readers\n\nvar 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    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\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\nvar 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    if (IsReadableByteStreamController(stream._readableStreamController) === false) {\n      throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');\n    }\n    if (IsReadableStreamLocked(stream)) {\n      throw new TypeError('This stream has already been locked for exclusive reading by another reader');\n    }\n\n    ReadableStreamReaderGenericInitialize(this, stream);\n\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// Abstract operations for the readers.\n\nfunction 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\nfunction 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\nfunction 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\n    defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n    reader._closedPromise.catch(function () {});\n  }\n}\n\n// A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n// check.\n\nfunction ReadableStreamReaderGenericCancel(reader, reason) {\n  var stream = reader._ownerReadableStream;\n  assert(stream !== undefined);\n  return ReadableStreamCancel(stream, reason);\n}\n\nfunction 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  reader._closedPromise.catch(function () {});\n\n  reader._ownerReadableStream._reader = undefined;\n  reader._ownerReadableStream = undefined;\n}\n\nfunction ReadableStreamBYOBReaderRead(reader, view) {\n  var stream = reader._ownerReadableStream;\n\n  assert(stream !== undefined);\n\n  stream._disturbed = true;\n\n  if (stream._state === 'errored') {\n    return Promise.reject(stream._storedError);\n  }\n\n  // Controllers must implement this.\n  return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n}\n\nfunction ReadableStreamDefaultReaderRead(reader) {\n  var stream = reader._ownerReadableStream;\n\n  assert(stream !== undefined);\n\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\n  return stream._readableStreamController.__pullSteps();\n}\n\n// Controllers\n\nvar 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\n    this._underlyingSource = underlyingSource;\n\n    // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n    this._queue = undefined;\n    this._queueTotalSize = undefined;\n    ResetQueue(this);\n\n    this._started = false;\n    this._closeRequested = false;\n    this._pullAgain = false;\n    this._pulling = false;\n\n    var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n    this._strategySize = normalizedStrategy.size;\n    this._strategyHWM = normalizedStrategy.highWaterMark;\n\n    var controller = this;\n\n    var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n    Promise.resolve(startResult).then(function () {\n      controller._started = true;\n\n      assert(controller._pulling === false);\n      assert(controller._pullAgain === false);\n\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      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      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      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// Abstract operations for the ReadableStreamDefaultController.\n\nfunction 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\nfunction ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n  var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\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\n  controller._pulling = true;\n\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    return undefined;\n  }, function (e) {\n    ReadableStreamDefaultControllerErrorIfNeeded(controller, e);\n  }).catch(rethrowAssertionErrorRejection);\n\n  return undefined;\n}\n\nfunction 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  if (desiredSize > 0) {\n    return true;\n  }\n\n  return false;\n}\n\n// A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction ReadableStreamDefaultControllerClose(controller) {\n  var stream = controller._controlledReadableStream;\n\n  assert(controller._closeRequested === false);\n  assert(stream._state === 'readable');\n\n  controller._closeRequested = true;\n\n  if (controller._queue.length === 0) {\n    ReadableStreamClose(stream);\n  }\n}\n\nfunction ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n  var stream = controller._controlledReadableStream;\n\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      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\n  return undefined;\n}\n\nfunction ReadableStreamDefaultControllerError(controller, e) {\n  var stream = controller._controlledReadableStream;\n\n  assert(stream._state === 'readable');\n\n  ResetQueue(controller);\n\n  ReadableStreamError(stream, e);\n}\n\nfunction ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n  if (controller._controlledReadableStream._state === 'readable') {\n    ReadableStreamDefaultControllerError(controller, e);\n  }\n}\n\nfunction ReadableStreamDefaultControllerGetDesiredSize(controller) {\n  var stream = controller._controlledReadableStream;\n  var state = stream._state;\n\n  if (state === 'errored') {\n    return null;\n  }\n  if (state === 'closed') {\n    return 0;\n  }\n\n  return controller._strategyHWM - controller._queueTotalSize;\n}\n\nvar 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\nvar 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\n    this._underlyingByteSource = underlyingByteSource;\n\n    this._pullAgain = false;\n    this._pulling = false;\n\n    ReadableByteStreamControllerClearPendingPullIntos(this);\n\n    // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n    this._queue = this._queueTotalSize = undefined;\n    ResetQueue(this);\n\n    this._closeRequested = false;\n    this._started = false;\n\n    this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n    var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;\n    if (autoAllocateChunkSize !== undefined) {\n      if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {\n        throw new RangeError('autoAllocateChunkSize must be a positive integer');\n      }\n    }\n    this._autoAllocateChunkSize = autoAllocateChunkSize;\n\n    this._pendingPullIntos = [];\n\n    var controller = this;\n\n    var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n    Promise.resolve(startResult).then(function () {\n      controller._started = true;\n\n      assert(controller._pulling === false);\n      assert(controller._pullAgain === false);\n\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      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      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      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\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        this._queueTotalSize -= entry.byteLength;\n\n        ReadableByteStreamControllerHandleQueueDrain(this);\n\n        var view = void 0;\n        try {\n          view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);\n        } catch (viewE) {\n          return Promise.reject(viewE);\n        }\n\n        return Promise.resolve(CreateIterResultObject(view, false));\n      }\n\n      var autoAllocateChunkSize = this._autoAllocateChunkSize;\n      if (autoAllocateChunkSize !== undefined) {\n        var buffer = void 0;\n        try {\n          buffer = new ArrayBuffer(autoAllocateChunkSize);\n        } catch (bufferE) {\n          return Promise.reject(bufferE);\n        }\n\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\n      ReadableByteStreamControllerCallPullIfNeeded(this);\n\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\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// Abstract operations for the ReadableByteStreamController.\n\nfunction 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\nfunction 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\nfunction ReadableByteStreamControllerCallPullIfNeeded(controller) {\n  var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\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\n  controller._pulling = true;\n\n  // TODO: Test controller argument\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\n  return undefined;\n}\n\nfunction ReadableByteStreamControllerClearPendingPullIntos(controller) {\n  ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n  controller._pendingPullIntos = [];\n}\n\nfunction ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n  assert(stream._state !== 'errored', 'state must not be errored');\n\n  var done = false;\n  if (stream._state === 'closed') {\n    assert(pullIntoDescriptor.bytesFilled === 0);\n    done = true;\n  }\n\n  var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n  if (pullIntoDescriptor.readerType === 'default') {\n    ReadableStreamFulfillReadRequest(stream, filledView, done);\n  } else {\n    assert(pullIntoDescriptor.readerType === 'byob');\n    ReadableStreamFulfillReadIntoRequest(stream, filledView, done);\n  }\n}\n\nfunction ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n  var bytesFilled = pullIntoDescriptor.bytesFilled;\n  var elementSize = pullIntoDescriptor.elementSize;\n\n  assert(bytesFilled <= pullIntoDescriptor.byteLength);\n  assert(bytesFilled % elementSize === 0);\n\n  return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n}\n\nfunction ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n  controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n  controller._queueTotalSize += byteLength;\n}\n\nfunction ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n  var elementSize = pullIntoDescriptor.elementSize;\n\n  var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n\n  var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n  var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n  var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n\n  var totalBytesToCopyRemaining = maxBytesToCopy;\n  var ready = false;\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\n    var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n\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    controller._queueTotalSize -= bytesToCopy;\n\n    ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n\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\nfunction ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n  assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n\n  ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n  pullIntoDescriptor.bytesFilled += size;\n}\n\nfunction 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\nfunction 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\nfunction 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\n      ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n    }\n  }\n}\n\nfunction ReadableByteStreamControllerPullInto(controller, view) {\n  var stream = controller._controlledReadableStream;\n\n  var elementSize = 1;\n  if (view.constructor !== DataView) {\n    elementSize = view.constructor.BYTES_PER_ELEMENT;\n  }\n\n  var ctor = view.constructor;\n\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    controller._pendingPullIntos.push(pullIntoDescriptor);\n\n    // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n    // - No change happens on desiredSize\n    // - The source has already been notified of that there's at least 1 pending read(view)\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\n      ReadableByteStreamControllerHandleQueueDrain(controller);\n\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\n      return Promise.reject(e);\n    }\n  }\n\n  pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n  controller._pendingPullIntos.push(pullIntoDescriptor);\n\n  var promise = ReadableStreamAddReadIntoRequest(stream);\n\n  ReadableByteStreamControllerCallPullIfNeeded(controller);\n\n  return promise;\n}\n\nfunction ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n  firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n\n  assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n\n  var stream = controller._controlledReadableStream;\n  if (ReadableStreamHasBYOBReader(stream) === true) {\n    while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n      var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);\n      ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);\n    }\n  }\n}\n\nfunction 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    // TODO: Figure out whether we should detach the buffer or not here.\n    return;\n  }\n\n  ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n  var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;\n  if (remainderSize > 0) {\n    var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n    var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);\n    ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);\n  }\n\n  pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n  pullIntoDescriptor.bytesFilled -= remainderSize;\n  ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n\n  ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n}\n\nfunction ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n  var firstDescriptor = controller._pendingPullIntos[0];\n\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\n    ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n  }\n}\n\nfunction ReadableByteStreamControllerShiftPendingPullInto(controller) {\n  var descriptor = controller._pendingPullIntos.shift();\n  ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n  return descriptor;\n}\n\nfunction 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// A client of ReadableByteStreamController may use these functions directly to bypass state check.\n\nfunction ReadableByteStreamControllerClose(controller) {\n  var stream = controller._controlledReadableStream;\n\n  assert(controller._closeRequested === false);\n  assert(stream._state === 'readable');\n\n  if (controller._queueTotalSize > 0) {\n    controller._closeRequested = true;\n\n    return;\n  }\n\n  if (controller._pendingPullIntos.length > 0) {\n    var firstPendingPullInto = controller._pendingPullIntos[0];\n    if (firstPendingPullInto.bytesFilled > 0) {\n      var e = new TypeError('Insufficient bytes to fill elements in the given buffer');\n      ReadableByteStreamControllerError(controller, e);\n\n      throw e;\n    }\n  }\n\n  ReadableStreamClose(stream);\n}\n\nfunction ReadableByteStreamControllerEnqueue(controller, chunk) {\n  var stream = controller._controlledReadableStream;\n\n  assert(controller._closeRequested === false);\n  assert(stream._state === 'readable');\n\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\n      var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n      ReadableStreamFulfillReadRequest(stream, transferredView, false);\n    }\n  } else if (ReadableStreamHasBYOBReader(stream) === true) {\n    // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\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\nfunction ReadableByteStreamControllerError(controller, e) {\n  var stream = controller._controlledReadableStream;\n\n  assert(stream._state === 'readable');\n\n  ReadableByteStreamControllerClearPendingPullIntos(controller);\n\n  ResetQueue(controller);\n  ReadableStreamError(stream, e);\n}\n\nfunction ReadableByteStreamControllerGetDesiredSize(controller) {\n  var stream = controller._controlledReadableStream;\n  var state = stream._state;\n\n  if (state === 'errored') {\n    return null;\n  }\n  if (state === 'closed') {\n    return 0;\n  }\n\n  return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction ReadableByteStreamControllerRespond(controller, bytesWritten) {\n  bytesWritten = Number(bytesWritten);\n  if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n    throw new RangeError('bytesWritten must be a finite');\n  }\n\n  assert(controller._pendingPullIntos.length > 0);\n\n  ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n}\n\nfunction ReadableByteStreamControllerRespondWithNewView(controller, view) {\n  assert(controller._pendingPullIntos.length > 0);\n\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  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\n  ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n}\n\n// Helper functions for the ReadableStream.\n\nfunction streamBrandCheckException(name) {\n  return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n}\n\n// Helper functions for the readers.\n\nfunction readerLockException(name) {\n  return new TypeError('Cannot ' + name + ' a stream using a released reader');\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction defaultReaderBrandCheckException(name) {\n  return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n}\n\nfunction defaultReaderClosedPromiseInitialize(reader) {\n  reader._closedPromise = new Promise(function (resolve, reject) {\n    reader._closedPromise_resolve = resolve;\n    reader._closedPromise_reject = reject;\n  });\n}\n\nfunction defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n  reader._closedPromise = Promise.reject(reason);\n  reader._closedPromise_resolve = undefined;\n  reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseInitializeAsResolved(reader) {\n  reader._closedPromise = Promise.resolve(undefined);\n  reader._closedPromise_resolve = undefined;\n  reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseReject(reader, reason) {\n  assert(reader._closedPromise_resolve !== undefined);\n  assert(reader._closedPromise_reject !== undefined);\n\n  reader._closedPromise_reject(reason);\n  reader._closedPromise_resolve = undefined;\n  reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseResetToRejected(reader, reason) {\n  assert(reader._closedPromise_resolve === undefined);\n  assert(reader._closedPromise_reject === undefined);\n\n  reader._closedPromise = Promise.reject(reason);\n}\n\nfunction defaultReaderClosedPromiseResolve(reader) {\n  assert(reader._closedPromise_resolve !== undefined);\n  assert(reader._closedPromise_reject !== undefined);\n\n  reader._closedPromise_resolve(undefined);\n  reader._closedPromise_resolve = undefined;\n  reader._closedPromise_reject = undefined;\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction byobReaderBrandCheckException(name) {\n  return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n}\n\n// Helper functions for the ReadableStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n  return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n}\n\n// Helper functions for the ReadableStreamBYOBRequest.\n\nfunction byobRequestBrandCheckException(name) {\n  return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n}\n\n// Helper functions for the ReadableByteStreamController.\n\nfunction byteStreamControllerBrandCheckException(name) {\n  return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n}\n\n// Helper function for ReadableStream pipeThrough\n\nfunction ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n  try {\n    // This relies on the brand-check that is enforced by Promise.prototype.then(). As with the rest of the reference\n    // implementation, it doesn't attempt to do the right thing if someone has modified the global environment.\n    Promise.prototype.then.call(promise, undefined, function () {});\n  } catch (e) {\n    // The brand check failed, therefore the internal slot is not present and there's nothing further to do.\n  }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar transformStream = __w_pdfjs_require__(6);\nvar readableStream = __w_pdfjs_require__(4);\nvar writableStream = __w_pdfjs_require__(2);\n\nexports.TransformStream = transformStream.TransformStream;\nexports.ReadableStream = readableStream.ReadableStream;\nexports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\nexports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\nexports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\nexports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\nexports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\nexports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\nexports.IsWritableStream = writableStream.IsWritableStream;\nexports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\nexports.WritableStream = writableStream.WritableStream;\nexports.WritableStreamAbort = writableStream.WritableStreamAbort;\nexports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\nexports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\nexports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\nexports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(1),\n    assert = _require.assert;\n\nvar _require2 = __w_pdfjs_require__(0),\n    InvokeOrNoop = _require2.InvokeOrNoop,\n    PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n    PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n    typeIsObject = _require2.typeIsObject;\n\nvar _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\nvar _require4 = __w_pdfjs_require__(2),\n    WritableStream = _require4.WritableStream,\n    WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n// Methods on the transform stream controller object\n\nfunction TransformStreamCloseReadable(transformStream) {\n  // console.log('TransformStreamCloseReadable()');\n\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\nfunction TransformStreamEnqueueToReadable(transformStream, chunk) {\n  // console.log('TransformStreamEnqueueToReadable()');\n\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  // We throttle transformer.transform invocation based on the backpressure of the ReadableStream, but we still\n  // accept TransformStreamEnqueueToReadable() calls.\n\n  var controller = transformStream._readableController;\n\n  try {\n    ReadableStreamDefaultControllerEnqueue(controller, chunk);\n  } catch (e) {\n    // This happens when readableStrategy.size() throws.\n    // The ReadableStream has already errored itself.\n    transformStream._readableClosed = true;\n    TransformStreamErrorIfNeeded(transformStream, e);\n\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    // This allows pull() again. When desiredSize is 0, it's possible that a pull() will happen immediately (but\n    // asynchronously) after this because of pending read()s and set _backpressure back to false.\n    //\n    // If pull() could be called from inside enqueue(), then this logic would be wrong. This cannot happen\n    // because there is always a promise pending from start() or pull() when _backpressure is false.\n    TransformStreamSetBackpressure(transformStream, true);\n  }\n}\n\nfunction 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// Abstract operations.\n\nfunction 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\nfunction TransformStreamErrorIfNeeded(transformStream, e) {\n  if (transformStream._errored === false) {\n    TransformStreamErrorInternal(transformStream, e);\n  }\n}\n\nfunction TransformStreamErrorInternal(transformStream, e) {\n  // console.log('TransformStreamErrorInternal()');\n\n  assert(transformStream._errored === false);\n\n  transformStream._errored = true;\n  transformStream._storedError = e;\n\n  if (transformStream._writableDone === false) {\n    WritableStreamDefaultControllerError(transformStream._writableController, e);\n  }\n  if (transformStream._readableClosed === false) {\n    ReadableStreamDefaultControllerError(transformStream._readableController, e);\n  }\n}\n\n// Used for preventing the next write() call on TransformStreamSink until there\n// is no longer backpressure.\nfunction 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\n  return transformStream._backpressureChangePromise;\n}\n\nfunction TransformStreamSetBackpressure(transformStream, backpressure) {\n  // console.log(`TransformStreamSetBackpressure(${backpressure})`);\n\n  // Passes also when called during construction.\n  assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n  if (transformStream._backpressureChangePromise !== undefined) {\n    // The fulfillment value is just for a sanity check.\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\nfunction TransformStreamDefaultTransform(chunk, transformStreamController) {\n  var transformStream = transformStreamController._controlledTransformStream;\n  TransformStreamEnqueueToReadable(transformStream, chunk);\n  return Promise.resolve();\n}\n\nfunction TransformStreamTransform(transformStream, chunk) {\n  // console.log('TransformStreamTransform()');\n\n  assert(transformStream._errored === false);\n  assert(transformStream._transforming === false);\n  assert(transformStream._backpressure === false);\n\n  transformStream._transforming = true;\n\n  var transformer = transformStream._transformer;\n  var controller = transformStream._transformStreamController;\n\n  var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n\n  return transformPromise.then(function () {\n    transformStream._transforming = false;\n\n    return TransformStreamReadableReadyPromise(transformStream);\n  }, function (e) {\n    TransformStreamErrorIfNeeded(transformStream, e);\n    return Promise.reject(e);\n  });\n}\n\nfunction 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\nfunction 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\nvar 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\n      transformStream._writableController = c;\n\n      return this._startPromise.then(function () {\n        return TransformStreamReadableReadyPromise(transformStream);\n      });\n    }\n  }, {\n    key: 'write',\n    value: function write(chunk) {\n      // console.log('TransformStreamSink.write()');\n\n      var transformStream = this._transformStream;\n\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      // console.log('TransformStreamSink.close()');\n\n      var transformStream = this._transformStream;\n\n      assert(transformStream._transforming === false);\n\n      transformStream._writableDone = true;\n\n      var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n      // Return a promise that is fulfilled with undefined on success.\n      return flushPromise.then(function () {\n        if (transformStream._errored === true) {\n          return Promise.reject(transformStream._storedError);\n        }\n        if (transformStream._readableClosed === false) {\n          TransformStreamCloseReadableInternal(transformStream);\n        }\n        return Promise.resolve();\n      }).catch(function (r) {\n        TransformStreamErrorIfNeeded(transformStream, r);\n        return Promise.reject(transformStream._storedError);\n      });\n    }\n  }]);\n\n  return TransformStreamSink;\n}();\n\nvar 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\n      transformStream._readableController = c;\n\n      return this._startPromise.then(function () {\n        // Prevent the first pull() call until there is backpressure.\n\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\n        return transformStream._backpressureChangePromise;\n      });\n    }\n  }, {\n    key: 'pull',\n    value: function pull() {\n      // console.log('TransformStreamSource.pull()');\n\n      var transformStream = this._transformStream;\n\n      // Invariant. Enforced by the promises returned by start() and pull().\n      assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n\n      assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n      TransformStreamSetBackpressure(transformStream, false);\n\n      // Prevent the next pull() call until there is backpressure.\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\nvar 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\n      return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n    }\n  }]);\n\n  return TransformStreamDefaultController;\n}();\n\nvar 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\n\n    this._transforming = false;\n    this._errored = false;\n    this._storedError = undefined;\n\n    this._writableController = undefined;\n    this._readableController = undefined;\n    this._transformStreamController = undefined;\n\n    this._writableDone = false;\n    this._readableClosed = false;\n\n    this._backpressure = undefined;\n    this._backpressureChangePromise = undefined;\n    this._backpressureChangePromise_resolve = undefined;\n\n    this._transformStreamController = new TransformStreamDefaultController(this);\n\n    var startPromise_resolve = void 0;\n    var startPromise = new Promise(function (resolve) {\n      startPromise_resolve = resolve;\n    });\n\n    var source = new TransformStreamSource(this, startPromise);\n\n    this._readable = new ReadableStream(source, readableStrategy);\n\n    var sink = new TransformStreamSink(this, startPromise);\n\n    this._writable = new WritableStream(sink, writableStrategy);\n\n    assert(this._writableController !== undefined);\n    assert(this._readableController !== undefined);\n\n    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n    // Set _backpressure based on desiredSize. As there is no read() at this point, we can just interpret\n    // desiredSize being non-positive as backpressure.\n    TransformStreamSetBackpressure(this, desiredSize <= 0);\n\n    var transformStream = this;\n    var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n    startPromise_resolve(startResult);\n    startPromise.catch(function (e) {\n      // The underlyingSink and underlyingSource will error the readable and writable ends on their own.\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\nmodule.exports = { TransformStream: TransformStream };\n\n// Helper functions for the TransformStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n  return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n}\n\n// Helper functions for the TransformStream.\n\nfunction streamBrandCheckException(name) {\n  return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nmodule.exports = __w_pdfjs_require__(5);\n\n\n/***/ })\n/******/ ])));","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n  // The `URL` constructor is assumed to be available in the extension builds.\n  exports.URL = URL;\n} else {\n  let isURLSupported = false;\n  try {\n    if (typeof URL === 'function' && typeof URL.prototype === 'object' &&\n        ('origin' in URL.prototype)) {\n      const u = new URL('b', 'http://a');\n      u.pathname = 'c%20d';\n      isURLSupported = (u.href === 'http://a/c%20d');\n    }\n  } catch (ex) {\n    // The `URL` constructor cannot be used.\n  }\n\n  if (isURLSupported) {\n    exports.URL = URL;\n  } else {\n    if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n      class DummyURL {\n        constructor() {\n          throw new Error('The current image decoders doesn\\'t utilize the ' +\n                          '`URL` constructor, hence it shouldn\\'t need to be ' +\n                          'polyfilled for the IMAGE_DECODERS build target.');\n        }\n      }\n      exports.URL = DummyURL;\n    } else {\n      const PolyfillURL = require('../../external/url/url-lib').URL;\n\n      // Attempt to copy over the static methods.\n      const OriginalURL = require('./global_scope').URL;\n      if (OriginalURL) {\n        PolyfillURL.createObjectURL = function(blob) {\n          // IE extension allows a second optional options argument, see\n          // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\n          return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n        };\n        PolyfillURL.revokeObjectURL = function(url) {\n          OriginalURL.revokeObjectURL(url);\n        };\n      }\n      exports.URL = PolyfillURL;\n    }\n  }\n}\n","/* Any copyright is dedicated to the Public Domain.\n * http://creativecommons.org/publicdomain/zero/1.0/\n */\n\n// Polyfill obtained from: https://github.com/Polymer/URL\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\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    // XXX\n    return h.toLowerCase();\n  }\n\n  function percentEscape(c) {\n    var unicode = c.charCodeAt(0);\n    if (unicode > 0x20 &&\n       unicode < 0x7F &&\n       // \" # < > ? `\n       [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1\n      ) {\n      return c;\n    }\n    return encodeURIComponent(c);\n  }\n\n  function percentEscapeQuery(c) {\n    // XXX This actually needs to encode c using encoding and then\n    // convert the bytes one-by-one.\n\n    var unicode = c.charCodeAt(0);\n    if (unicode > 0x20 &&\n       unicode < 0x7F &&\n       // \" # < > ` (do not escape '?')\n       [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1\n      ) {\n      return c;\n    }\n    return encodeURIComponent(c);\n  }\n\n  var EOF, 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) &&\n                 !this._isInvalid) {\n      var c = input[cursor];\n      switch (state) {\n        case 'scheme start':\n          if (c && ALPHA.test(c)) {\n            buffer += c.toLowerCase(); // ASCII-safe\n            state = 'scheme';\n          } else if (!stateOverride) {\n            buffer = '';\n            state = 'no scheme';\n            continue;\n          } else {\n            err('Invalid scheme.');\n            break loop;\n          }\n          break;\n\n        case 'scheme':\n          if (c && ALPHANUMERIC.test(c)) {\n            buffer += c.toLowerCase(); // ASCII-safe\n          } else if (c === ':') {\n            this._scheme = buffer;\n            buffer = '';\n            if (stateOverride) {\n              break loop;\n            }\n            if (isRelativeScheme(this._scheme)) {\n              this._isRelative = true;\n            }\n            if (this._scheme === 'file') {\n              state = 'relative';\n            } else if (this._isRelative && base &&\n                       base._scheme === this._scheme) {\n              state = 'relative or authority';\n            } else if (this._isRelative) {\n              state = 'authority first slash';\n            } else {\n              state = 'scheme data';\n            }\n          } else if (!stateOverride) {\n            buffer = '';\n            cursor = 0;\n            state = 'no scheme';\n            continue;\n          } else if (c === EOF) {\n            break loop;\n          } else {\n            err('Code point not allowed in scheme: ' + c);\n            break loop;\n          }\n          break;\n\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            // XXX error handling\n            if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n              this._schemeData += percentEscape(c);\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          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          break;\n\n        case 'relative':\n          this._isRelative = true;\n          if (this._scheme !== 'file') {\n            this._scheme = base._scheme;\n          }\n          if (c === EOF) {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._username = base._username;\n            this._password = base._password;\n            break loop;\n          } else if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n            state = 'relative slash';\n          } else if (c === '?') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = '?';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'query';\n          } else if (c === '#') {\n            this._host = base._host;\n            this._port = base._port;\n            this._path = base._path.slice();\n            this._query = base._query;\n            this._fragment = '#';\n            this._username = base._username;\n            this._password = base._password;\n            state = 'fragment';\n          } else {\n            var nextC = input[cursor + 1];\n            var nextNextC = input[cursor + 2];\n            if (this._scheme !== 'file' || !ALPHA.test(c) ||\n                (nextC !== ':' && nextC !== '|') ||\n                (nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' &&\n                 nextNextC !== '?' && nextNextC !== '#')) {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n              this._path = base._path.slice();\n              this._path.pop();\n            }\n            state = 'relative path';\n            continue;\n          }\n          break;\n\n        case 'relative slash':\n          if (c === '/' || c === '\\\\') {\n            if (c === '\\\\') {\n              err('\\\\ is an invalid code point.');\n            }\n            if (this._scheme === 'file') {\n              state = 'file host';\n            } else {\n              state = 'authority ignore slashes';\n            }\n          } else {\n            if (this._scheme !== 'file') {\n              this._host = base._host;\n              this._port = base._port;\n              this._username = base._username;\n              this._password = base._password;\n            }\n            state = 'relative path';\n            continue;\n          }\n          break;\n\n        case 'authority first slash':\n          if (c === '/') {\n            state = 'authority second slash';\n          } else {\n            err('Expected \\'/\\', got: ' + c);\n            state = 'authority ignore slashes';\n            continue;\n          }\n          break;\n\n        case 'authority second slash':\n          state = 'authority ignore slashes';\n          if (c !== '/') {\n            err('Expected \\'/\\', got: ' + c);\n            continue;\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          break;\n\n        case 'authority':\n          if (c === '@') {\n            if (seenAt) {\n              err('@ already seen.');\n              buffer += '%40';\n            }\n            seenAt = true;\n            for (var i = 0; i < buffer.length; i++) {\n              var cp = buffer[i];\n              if (cp === '\\t' || cp === '\\n' || cp === '\\r') {\n                err('Invalid whitespace in authority.');\n                continue;\n              }\n              // XXX check URL code points\n              if (cp === ':' && this._password === null) {\n                this._password = '';\n                continue;\n              }\n              var tempC = percentEscape(cp);\n              if (this._password !== null) {\n                this._password += tempC;\n              } else {\n                this._username += tempC;\n              }\n            }\n            buffer = '';\n          } else if (c === EOF || c === '/' || c === '\\\\' ||\n                     c === '?' || c === '#') {\n            cursor -= buffer.length;\n            buffer = '';\n            state = 'host';\n            continue;\n          } else {\n            buffer += c;\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]) &&\n                (buffer[1] === ':' || buffer[1] === '|')) {\n              state = 'relative path';\n            } else if (buffer.length === 0) {\n              state = 'relative path start';\n            } else {\n              this._host = IDNAToASCII.call(this, buffer);\n              buffer = '';\n              state = 'relative path start';\n            }\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid whitespace in file host.');\n          } else {\n            buffer += c;\n          }\n          break;\n\n        case 'host':\n        case 'hostname':\n          if (c === ':' && !seenBracket) {\n            // XXX host parsing\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'port';\n            if (stateOverride === 'hostname') {\n              break loop;\n            }\n          } else if (c === EOF || c === '/' ||\n                     c === '\\\\' || c === '?' || c === '#') {\n            this._host = IDNAToASCII.call(this, buffer);\n            buffer = '';\n            state = 'relative path start';\n            if (stateOverride) {\n              break loop;\n            }\n            continue;\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            if (c === '[') {\n              seenBracket = true;\n            } else if (c === ']') {\n              seenBracket = false;\n            }\n            buffer += c;\n          } else {\n            err('Invalid code point in host/hostname: ' + c);\n          }\n          break;\n\n        case 'port':\n          if (/[0-9]/.test(c)) {\n            buffer += c;\n          } else if (c === EOF || c === '/' || c === '\\\\' ||\n                     c === '?' || c === '#' || stateOverride) {\n            if (buffer !== '') {\n              var temp = parseInt(buffer, 10);\n              if (temp !== relative[this._scheme]) {\n                this._port = temp + '';\n              }\n              buffer = '';\n            }\n            if (stateOverride) {\n              break loop;\n            }\n            state = 'relative path start';\n            continue;\n          } else if (c === '\\t' || c === '\\n' || c === '\\r') {\n            err('Invalid code point in port: ' + c);\n          } else {\n            invalid.call(this);\n          }\n          break;\n\n        case 'relative path start':\n          if (c === '\\\\') {\n            err('\\'\\\\\\' not allowed in path.');\n          }\n          state = 'relative path';\n          if (c !== '/' && c !== '\\\\') {\n            continue;\n          }\n          break;\n\n        case 'relative path':\n          if (c === EOF || c === '/' || c === '\\\\' ||\n              (!stateOverride && (c === '?' || c === '#'))) {\n            if (c === '\\\\') {\n              err('\\\\ not allowed in relative path.');\n            }\n            var tmp;\n            if ((tmp = relativePathDotMapping[buffer.toLowerCase()])) {\n              buffer = tmp;\n            }\n            if (buffer === '..') {\n              this._path.pop();\n              if (c !== '/' && c !== '\\\\') {\n                this._path.push('');\n              }\n            } else if (buffer === '.' && c !== '/' && c !== '\\\\') {\n              this._path.push('');\n            } else if (buffer !== '.') {\n              if (this._scheme === 'file' && this._path.length === 0 &&\n                  buffer.length === 2 && ALPHA.test(buffer[0]) &&\n                  buffer[1] === '|') {\n                buffer = buffer[0] + ':';\n              }\n              this._path.push(buffer);\n            }\n            buffer = '';\n            if (c === '?') {\n              this._query = '?';\n              state = 'query';\n            } else if (c === '#') {\n              this._fragment = '#';\n              state = 'fragment';\n            }\n          } else if (c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            buffer += percentEscape(c);\n          }\n          break;\n\n        case 'query':\n          if (!stateOverride && c === '#') {\n            this._fragment = '#';\n            state = 'fragment';\n          } else if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._query += percentEscapeQuery(c);\n          }\n          break;\n\n        case 'fragment':\n          if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n            this._fragment += c;\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  // Does not process domain names or IP addresses.\n  // Does not handle encoding for the query parameter.\n  function JURL(url, base /* , encoding */) {\n    if (base !== undefined && !(base instanceof JURL)) {\n      base = new JURL(String(base));\n    }\n\n    this._url = url;\n    clear.call(this);\n\n    var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n    // encoding = encoding || 'utf-8'\n\n    parse.call(this, input, null, base);\n  }\n\n  JURL.prototype = {\n    toString() {\n      return this.href;\n    },\n    get href() {\n      if (this._isInvalid) {\n        return this._url;\n      }\n      var authority = '';\n      if (this._username !== '' || this._password !== null) {\n        authority = this._username +\n          (this._password !== null ? ':' + this._password : '') + '@';\n      }\n\n      return this.protocol +\n          (this._isRelative ? '//' + authority + this.host : '') +\n          this.pathname + this._query + this._fragment;\n    },\n    // The named parameter should be different from the setter's function name.\n    // Otherwise Safari 5 will throw an error (see issue 8541)\n    set href(value) {\n      clear.call(this);\n      parse.call(this, value);\n    },\n\n    get protocol() {\n      return this._scheme + ':';\n    },\n    set protocol(value) {\n      if (this._isInvalid) {\n        return;\n      }\n      parse.call(this, value + ':', 'scheme start');\n    },\n\n    get host() {\n      return this._isInvalid ? '' : this._port ?\n          this._host + ':' + this._port : this._host;\n    },\n    set host(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n      parse.call(this, value, 'host');\n    },\n\n    get hostname() {\n      return this._host;\n    },\n    set hostname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n      parse.call(this, value, 'hostname');\n    },\n\n    get port() {\n      return this._port;\n    },\n    set port(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n      parse.call(this, value, 'port');\n    },\n\n    get pathname() {\n      return this._isInvalid ? '' : this._isRelative ?\n          '/' + this._path.join('/') : this._schemeData;\n    },\n    set pathname(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n      this._path = [];\n      parse.call(this, value, 'relative path start');\n    },\n\n    get search() {\n      return this._isInvalid || !this._query || this._query === '?' ?\n          '' : this._query;\n    },\n    set search(value) {\n      if (this._isInvalid || !this._isRelative) {\n        return;\n      }\n      this._query = '?';\n      if (value[0] === '?') {\n        value = value.slice(1);\n      }\n      parse.call(this, value, 'query');\n    },\n\n    get hash() {\n      return this._isInvalid || !this._fragment || this._fragment === '#' ?\n          '' : this._fragment;\n    },\n    set hash(value) {\n      if (this._isInvalid) {\n        return;\n      }\n      this._fragment = '#';\n      if (value[0] === '#') {\n        value = value.slice(1);\n      }\n      parse.call(this, value, 'fragment');\n    },\n\n    get origin() {\n      var host;\n      if (this._isInvalid || !this._scheme) {\n        return '';\n      }\n      // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n      // Gecko throws error for \"data://\"\n      // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n      // Gecko returns String(\"\") for file: mailto:\n      // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n      switch (this._scheme) {\n        case 'data':\n        case 'file':\n        case 'javascript':\n        case 'mailto':\n          return 'null';\n        case 'blob':\n          // Special case of blob: -- returns valid origin of _schemeData.\n          try {\n            return new JURL(this._schemeData).origin || 'null';\n          } catch (_) {\n            // Invalid _schemeData origin -- ignoring errors.\n          }\n          return 'null';\n      }\n      host = this.host;\n      if (!host) {\n        return '';\n      }\n      return this._scheme + '://' + host;\n    },\n  };\n\n  exports.URL = JURL;\n})();\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals requirejs, __non_webpack_require__ */\n\nimport {\n  assert, createPromiseCapability, getVerbosityLevel, info, InvalidPDFException,\n  isArrayBuffer, isSameOrigin, MissingPDFException, NativeImageDecoding,\n  PasswordException, setVerbosityLevel, shadow, stringToBytes,\n  UnexpectedResponseException, UnknownErrorException, unreachable, URL, warn\n} from '../shared/util';\nimport {\n  DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer, loadScript,\n  PageViewport, RenderingCancelledException, StatTimer\n} from './dom_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { apiCompatibilityParams } from './api_compatibility';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { MessageHandler } from '../shared/message_handler';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\n\nlet isWorkerDisabled = false;\nlet fallbackWorkerSrc;\n\nlet fakeWorkerFilesLoader = null;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n  let useRequireEnsure = false;\n  // For GENERIC build we need to add support for different fake file loaders\n  // for different frameworks.\n  if (typeof window === 'undefined') {\n    // node.js - disable worker and set require.ensure.\n    isWorkerDisabled = true;\n    if (typeof __non_webpack_require__.ensure === 'undefined') {\n      __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n    }\n    useRequireEnsure = true;\n  } else if (typeof __non_webpack_require__ !== 'undefined' &&\n             typeof __non_webpack_require__.ensure === 'function') {\n    useRequireEnsure = true;\n  }\n  if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n    fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n  }\n  const dynamicLoaderSupported =\n    typeof requirejs !== 'undefined' && requirejs.load;\n  fakeWorkerFilesLoader = useRequireEnsure ? (function() {\n    return new Promise(function(resolve, reject) {\n      __non_webpack_require__.ensure([], function() {\n        try {\n          let worker;\n          if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n            worker = __non_webpack_require__('../pdf.worker.js');\n          } else {\n            worker = __non_webpack_require__('./pdf.worker.js');\n          }\n          resolve(worker.WorkerMessageHandler);\n        } catch (ex) {\n          reject(ex);\n        }\n      }, reject, 'pdfjsWorker');\n    });\n  }) : dynamicLoaderSupported ? (function() {\n    return new Promise(function(resolve, reject) {\n      requirejs(['pdfjs-dist/build/pdf.worker'], function(worker) {\n        try {\n          resolve(worker.WorkerMessageHandler);\n        } catch (ex) {\n          reject(ex);\n        }\n      }, reject);\n    });\n  }) : null;\n\n  if (!fallbackWorkerSrc && typeof document !== 'undefined') {\n    const pdfjsFilePath = document.currentScript && document.currentScript.src;\n    if (pdfjsFilePath) {\n      fallbackWorkerSrc =\n        pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n    }\n  }\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nvar createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n  createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string}     url   - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n *   (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n *   use atob() to convert it to a binary string first.\n * @property {Object}     httpHeaders - Basic authentication headers.\n * @property {boolean}    withCredentials - Indicates whether or not cross-site\n *   Access-Control requests should be made using credentials such as cookies\n *   or authorization headers. The default is false.\n * @property {string}     password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n *   all of the pdf data. Used by the extension since some data is already\n *   loaded before the switch to range requests.\n * @property {number}     length - The PDF file length. It's used for progress\n *   reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number}     rangeChunkSize - Optional parameter to specify\n *   maximum number of bytes fetched per range request. The default value is\n *   2^16 = 65536.\n * @property {PDFWorker}  worker - (optional) The worker that will be used for\n *   the loading and parsing of the PDF data.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n *   in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n *   constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n *   used when attempting to recover valid absolute URLs for annotations, and\n *   outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n *   decoding certain (simple) JPEG images in the browser. This is useful for\n *   environments without DOM image and canvas support, such as e.g. Node.js.\n *   Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n *   for browsers with full image/canvas support, 'display' for environments\n *   with limited image support through stubs (useful for SVG conversion),\n *   and 'none' where JPEG images will be decoded entirely by PDF.js.\n *   The default value is 'decode'.\n * @property {string} cMapUrl - (optional) The URL where the predefined\n *   Adobe CMaps are located. Include trailing slash.\n * @property {boolean} cMapPacked - (optional) Specifies if the Adobe CMaps are\n *   binary packed.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n *   used when reading built-in CMap files. Providing a custom factory is useful\n *   for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n *   The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n *   `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n *   PDF data cannot be successfully parsed, instead of attempting to recover\n *   whatever possible of the data. The default value is `false`.\n * @property {number} maxImageSize - (optional) The maximum allowed image size\n *   in total pixels, i.e. width * height. Images above this value will not be\n *   rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} isEvalSupported - (optional) Determines if we can eval\n *   strings as JS. Primarily used to improve performance of font rendering,\n *   and when parsing PDF functions. The default value is `true`.\n * @property {boolean} disableFontFace - (optional) By default fonts are\n *   converted to OpenType fonts and loaded via font face rules. If disabled,\n *   fonts will be rendered using a built-in font renderer that constructs the\n *   glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} disableRange - (optional) Disable range request loading\n *   of PDF files. When enabled, and if the server supports partial content\n *   requests, then the PDF will be fetched in chunks.\n *   The default value is `false`.\n * @property {boolean} disableStream - (optional) Disable streaming of PDF file\n *   data. By default PDF.js attempts to load PDFs in chunks.\n *   The default value is `false`.\n * @property {boolean} disableAutoFetch - (optional) Disable pre-fetching of PDF\n *   file data. When range requests are enabled PDF.js will automatically keep\n *   fetching more data even if it isn't needed to display the current page.\n *   The default value is `false`.\n *   NOTE: It is also necessary to disable streaming, see above,\n *         in order for disabling of pre-fetching to work correctly.\n * @property {boolean} disableCreateObjectURL - (optional) Disable the use of\n *   `URL.createObjectURL`, for compatibility with older browsers.\n *   The default value is `false`.\n * @property {boolean} pdfBug - (optional) Enables special hooks for debugging\n *   PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Array} streamTypes - Used stream types in the document (an item\n *   is set to true if specific stream ID was used in the document).\n * @property {Array} fontTypes - Used font type in the document (an item is set\n *   to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n  var task = new PDFDocumentLoadingTask();\n\n  var source;\n  if (typeof src === 'string') {\n    source = { url: src, };\n  } else if (isArrayBuffer(src)) {\n    source = { data: src, };\n  } else if (src instanceof PDFDataRangeTransport) {\n    source = { range: src, };\n  } else {\n    if (typeof src !== 'object') {\n      throw new Error('Invalid parameter in getDocument, ' +\n                      'need either Uint8Array, string or a parameter object');\n    }\n    if (!src.url && !src.data && !src.range) {\n      throw new Error(\n        'Invalid parameter object: need either .data, .range or .url');\n    }\n\n    source = src;\n  }\n\n  let params = Object.create(null);\n  var rangeTransport = null;\n  let worker = null;\n\n  for (var key in source) {\n    if (key === 'url' && typeof window !== 'undefined') {\n      // The full path is required in the 'url' field.\n      params[key] = new URL(source[key], window.location).href;\n      continue;\n    } else if (key === 'range') {\n      rangeTransport = source[key];\n      continue;\n    } else if (key === 'worker') {\n      worker = source[key];\n      continue;\n    } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n      // Converting string or array-like data to Uint8Array.\n      var pdfBytes = source[key];\n      if (typeof pdfBytes === 'string') {\n        params[key] = stringToBytes(pdfBytes);\n      } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n                 !isNaN(pdfBytes.length)) {\n        params[key] = new Uint8Array(pdfBytes);\n      } else if (isArrayBuffer(pdfBytes)) {\n        params[key] = new Uint8Array(pdfBytes);\n      } else {\n        throw new Error('Invalid PDF binary data: either typed array, ' +\n                        'string or array-like object is expected in the ' +\n                        'data property.');\n      }\n      continue;\n    }\n    params[key] = source[key];\n  }\n\n  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n  params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n  params.ignoreErrors = params.stopAtErrors !== true;\n  params.pdfBug = params.pdfBug === true;\n\n  const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n  if (params.nativeImageDecoderSupport === undefined ||\n      !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n    params.nativeImageDecoderSupport =\n      (apiCompatibilityParams.nativeImageDecoderSupport ||\n       NativeImageDecoding.DECODE);\n  }\n  if (!Number.isInteger(params.maxImageSize)) {\n    params.maxImageSize = -1;\n  }\n  if (typeof params.isEvalSupported !== 'boolean') {\n    params.isEvalSupported = true;\n  }\n  if (typeof params.disableFontFace !== 'boolean') {\n    params.disableFontFace = apiCompatibilityParams.disableFontFace || false;\n  }\n\n  if (typeof params.disableRange !== 'boolean') {\n    params.disableRange = false;\n  }\n  if (typeof params.disableStream !== 'boolean') {\n    params.disableStream = false;\n  }\n  if (typeof params.disableAutoFetch !== 'boolean') {\n    params.disableAutoFetch = false;\n  }\n  if (typeof params.disableCreateObjectURL !== 'boolean') {\n    params.disableCreateObjectURL =\n      apiCompatibilityParams.disableCreateObjectURL || false;\n  }\n\n  // Set the main-thread verbosity level.\n  setVerbosityLevel(params.verbosity);\n\n  if (!worker) {\n    const workerParams = {\n      postMessageTransfers: params.postMessageTransfers,\n      verbosity: params.verbosity,\n    };\n    // Worker was not provided -- creating and owning our own. If message port\n    // is specified in global worker options, using it.\n    let workerPort = GlobalWorkerOptions.workerPort;\n    if (workerPort) {\n      workerParams.port = workerPort;\n      worker = PDFWorker.fromPort(workerParams);\n    } else {\n      worker = new PDFWorker(workerParams);\n    }\n    task._worker = worker;\n  }\n  var docId = task.docId;\n  worker.promise.then(function () {\n    if (task.destroyed) {\n      throw new Error('Loading aborted');\n    }\n    return _fetchDocument(worker, params, rangeTransport, docId).then(\n        function (workerId) {\n      if (task.destroyed) {\n        throw new Error('Loading aborted');\n      }\n\n      let networkStream;\n      if (rangeTransport) {\n        networkStream = new PDFDataTransportStream({\n          length: params.length,\n          initialData: params.initialData,\n          disableRange: params.disableRange,\n          disableStream: params.disableStream,\n        }, rangeTransport);\n      } else if (!params.data) {\n        networkStream = createPDFNetworkStream({\n          url: params.url,\n          length: params.length,\n          httpHeaders: params.httpHeaders,\n          withCredentials: params.withCredentials,\n          rangeChunkSize: params.rangeChunkSize,\n          disableRange: params.disableRange,\n          disableStream: params.disableStream,\n        });\n      }\n\n      var messageHandler = new MessageHandler(docId, workerId, worker.port);\n      messageHandler.postMessageTransfers = worker.postMessageTransfers;\n      var transport = new WorkerTransport(messageHandler, task, networkStream,\n                                          params);\n      task._transport = transport;\n      messageHandler.send('Ready', null);\n    });\n  }).catch(task._capability.reject);\n\n  return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n *                    MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n  if (worker.destroyed) {\n    return Promise.reject(new Error('Worker was destroyed'));\n  }\n\n  if (pdfDataRangeTransport) {\n    source.length = pdfDataRangeTransport.length;\n    source.initialData = pdfDataRangeTransport.initialData;\n  }\n  return worker.messageHandler.sendWithPromise('GetDocRequest', {\n    docId,\n    apiVersion: (typeof PDFJSDev !== 'undefined' ?\n                 PDFJSDev.eval('BUNDLE_VERSION') : null),\n    source: { // Only send the required properties, and *not* the entire object.\n      data: source.data,\n      url: source.url,\n      password: source.password,\n      disableAutoFetch: source.disableAutoFetch,\n      rangeChunkSize: source.rangeChunkSize,\n      length: source.length,\n    },\n    maxImageSize: source.maxImageSize,\n    disableFontFace: source.disableFontFace,\n    disableCreateObjectURL: source.disableCreateObjectURL,\n    postMessageTransfers: worker.postMessageTransfers,\n    docBaseUrl: source.docBaseUrl,\n    nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n    ignoreErrors: source.ignoreErrors,\n    isEvalSupported: source.isEvalSupported,\n  }).then(function (workerId) {\n    if (worker.destroyed) {\n      throw new Error('Worker was destroyed');\n    }\n    return workerId;\n  });\n}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nvar PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n  var nextDocumentId = 0;\n\n  /** @constructs PDFDocumentLoadingTask */\n  function PDFDocumentLoadingTask() {\n    this._capability = createPromiseCapability();\n    this._transport = null;\n    this._worker = null;\n\n    /**\n     * Unique document loading task id -- used in MessageHandlers.\n     * @type {string}\n     */\n    this.docId = 'd' + (nextDocumentId++);\n\n    /**\n     * Shows if loading task is destroyed.\n     * @type {boolean}\n     */\n    this.destroyed = false;\n\n    /**\n     * Callback to request a password if wrong or no password was provided.\n     * The callback receives two parameters: function that needs to be called\n     * with new password and reason (see {PasswordResponses}).\n     */\n    this.onPassword = null;\n\n    /**\n     * Callback to be able to monitor the loading progress of the PDF file\n     * (necessary to implement e.g. a loading bar). The callback receives\n     * an {Object} with the properties: {number} loaded and {number} total.\n     */\n    this.onProgress = null;\n\n    /**\n     * Callback to when unsupported feature is used. The callback receives\n     * an {UNSUPPORTED_FEATURES} argument.\n     */\n    this.onUnsupportedFeature = null;\n  }\n\n  PDFDocumentLoadingTask.prototype =\n      /** @lends PDFDocumentLoadingTask.prototype */ {\n    /**\n     * @return {Promise}\n     */\n    get promise() {\n      return this._capability.promise;\n    },\n\n    /**\n     * Aborts all network requests and destroys worker.\n     * @return {Promise} A promise that is resolved after destruction activity\n     *                   is completed.\n     */\n    destroy() {\n      this.destroyed = true;\n\n      var transportDestroyed = !this._transport ? Promise.resolve() :\n        this._transport.destroy();\n      return transportDestroyed.then(() => {\n        this._transport = null;\n        if (this._worker) {\n          this._worker.destroy();\n          this._worker = null;\n        }\n      });\n    },\n\n    /**\n     * Registers callbacks to indicate the document loading completion.\n     *\n     * @param {function} onFulfilled The callback for the loading completion.\n     * @param {function} onRejected The callback for the loading failure.\n     * @return {Promise} A promise that is resolved after the onFulfilled or\n     *                   onRejected callback.\n     */\n    then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {\n      return this.promise.then.apply(this.promise, arguments);\n    },\n  };\n\n  return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n */\nclass PDFDataRangeTransport {\n  constructor(length, initialData) {\n    this.length = length;\n    this.initialData = initialData;\n\n    this._rangeListeners = [];\n    this._progressListeners = [];\n    this._progressiveReadListeners = [];\n    this._readyCapability = createPromiseCapability();\n  }\n\n  addRangeListener(listener) {\n    this._rangeListeners.push(listener);\n  }\n\n  addProgressListener(listener) {\n    this._progressListeners.push(listener);\n  }\n\n  addProgressiveReadListener(listener) {\n    this._progressiveReadListeners.push(listener);\n  }\n\n  onDataRange(begin, chunk) {\n    for (const listener of this._rangeListeners) {\n      listener(begin, chunk);\n    }\n  }\n\n  onDataProgress(loaded) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressListeners) {\n        listener(loaded);\n      }\n    });\n  }\n\n  onDataProgressiveRead(chunk) {\n    this._readyCapability.promise.then(() => {\n      for (const listener of this._progressiveReadListeners) {\n        listener(chunk);\n      }\n    });\n  }\n\n  transportReady() {\n    this._readyCapability.resolve();\n  }\n\n  requestDataRange(begin, end) {\n    unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n  }\n\n  abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n  constructor(pdfInfo, transport, loadingTask) {\n    this.loadingTask = loadingTask;\n\n    this._pdfInfo = pdfInfo;\n    this._transport = transport;\n  }\n\n  /**\n   * @return {number} Total number of pages the PDF contains.\n   */\n  get numPages() {\n    return this._pdfInfo.numPages;\n  }\n\n  /**\n   * @return {string} A (not guaranteed to be) unique ID to identify a PDF.\n   */\n  get fingerprint() {\n    return this._pdfInfo.fingerprint;\n  }\n\n  /**\n   * @param {number} pageNumber - The page number to get. The first page is 1.\n   * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n   *   object.\n   */\n  getPage(pageNumber) {\n    return this._transport.getPage(pageNumber);\n  }\n\n  /**\n   * @param {{num: number, gen: number}} ref - The page reference. Must have\n   *   the `num` and `gen` properties.\n   * @return {Promise} A promise that is resolved with the page index that is\n   *   associated with the reference.\n   */\n  getPageIndex(ref) {\n    return this._transport.getPageIndex(ref);\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with a lookup table for\n   *   mapping named destinations to reference numbers.\n   *\n   * This can be slow for large documents. Use `getDestination` instead.\n   */\n  getDestinations() {\n    return this._transport.getDestinations();\n  }\n\n  /**\n   * @param {string} id - The named destination to get.\n   * @return {Promise} A promise that is resolved with all information\n   *   of the given named destination.\n   */\n  getDestination(id) {\n    return this._transport.getDestination(id);\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with an {Array} containing\n   *   the page labels that correspond to the page indexes, or `null` when\n   *   no page labels are present in the PDF file.\n   */\n  getPageLabels() {\n    return this._transport.getPageLabels();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with a {string} containing\n   *   the page mode name.\n   */\n  getPageMode() {\n    return this._transport.getPageMode();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with a lookup table for\n   *   mapping named attachments to their content.\n   */\n  getAttachments() {\n    return this._transport.getAttachments();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with an {Array} of all the\n   *   JavaScript strings in the name tree, or `null` if no JavaScript exists.\n   */\n  getJavaScript() {\n    return this._transport.getJavaScript();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with an {Array} that is a\n   * tree outline (if it has one) of the PDF. The tree is in the format of:\n   * [\n   *   {\n   *     title: string,\n   *     bold: boolean,\n   *     italic: boolean,\n   *     color: rgb Uint8ClampedArray,\n   *     dest: dest obj,\n   *     url: string,\n   *     items: array of more items like this\n   *   },\n   *   ...\n   * ]\n   */\n  getOutline() {\n    return this._transport.getOutline();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with an {Array} that contains\n   *   the permission flags for the PDF document, or `null` when\n   *   no permissions are present in the PDF file.\n   */\n  getPermissions() {\n    return this._transport.getPermissions();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with an {Object} that has\n   *   `info` and `metadata` properties. `info` is an {Object} filled with\n   *   anything available in the information dictionary and similarly\n   *   `metadata` is a {Metadata} object with information from the metadata\n   *   section of the PDF.\n   */\n  getMetadata() {\n    return this._transport.getMetadata();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved with a {TypedArray} that has\n   * the raw data from the PDF.\n   */\n  getData() {\n    return this._transport.getData();\n  }\n\n  /**\n   * @return {Promise} A promise that is resolved when the document's data\n   *   is loaded. It is resolved with an {Object} that contains the `length`\n   *   property that indicates size of the PDF data in bytes.\n   */\n  getDownloadInfo() {\n    return this._transport.downloadInfoCapability.promise;\n  }\n\n  /**\n   * @return {Promise} A promise this is resolved with current statistics about\n   *   document structures (see {@link PDFDocumentStats}).\n   */\n  getStats() {\n    return this._transport.getStats();\n  }\n\n  /**\n   * Cleans up resources allocated by the document, e.g. created `@font-face`.\n   */\n  cleanup() {\n    this._transport.startCleanup();\n  }\n\n  /**\n   * Destroys the current document instance and terminates the worker.\n   */\n  destroy() {\n    return this.loadingTask.destroy();\n  }\n\n  /**\n   * @return {Object} A subset of the current {DocumentInitParameters},\n   *   which are either needed in the viewer and/or whose default values\n   *   may be affected by the `apiCompatibilityParams`.\n   */\n  get loadingParams() {\n    return this._transport.loadingParams;\n  }\n}\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n *   whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n *   same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyles} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n *                    can be either 'display' (viewable annotations) or 'print'\n *                    (printable annotations).\n *                    If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n *                                calling of PDFPage.getViewport method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n *                    (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n *   rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n *                     interactive form elements are rendered in the display\n *                     layer. If so, we do not render them on canvas as well.\n * @property {Array}  transform - (optional) Additional transform, applied\n *                    just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n *                    endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n *                    when creating canvases. The default value is\n *                    {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n *                    Can use any valid canvas.fillStyle: A DOMString parsed as\n *                    CSS <color> value, a CanvasGradient object (a linear or\n *                    radial gradient) or a CanvasPattern object (a repetitive\n *                    image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n *                               functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @class\n * @alias PDFPageProxy\n */\nvar PDFPageProxy = (function PDFPageProxyClosure() {\n  function PDFPageProxy(pageIndex, pageInfo, transport, pdfBug = false) {\n    this.pageIndex = pageIndex;\n    this._pageInfo = pageInfo;\n    this.transport = transport;\n    this._stats = (pdfBug ? new StatTimer() : DummyStatTimer);\n    this._pdfBug = pdfBug;\n    this.commonObjs = transport.commonObjs;\n    this.objs = new PDFObjects();\n    this.cleanupAfterRender = false;\n    this.pendingCleanup = false;\n    this.intentStates = Object.create(null);\n    this.destroyed = false;\n  }\n  PDFPageProxy.prototype = /** @lends PDFPageProxy.prototype */ {\n    /**\n     * @return {number} Page number of the page. First page is 1.\n     */\n    get pageNumber() {\n      return this.pageIndex + 1;\n    },\n    /**\n     * @return {number} The number of degrees the page is rotated clockwise.\n     */\n    get rotate() {\n      return this._pageInfo.rotate;\n    },\n    /**\n     * @return {Object} The reference that points to this page. It has 'num' and\n     * 'gen' properties.\n     */\n    get ref() {\n      return this._pageInfo.ref;\n    },\n    /**\n     * @return {number} The default size of units in 1/72nds of an inch.\n     */\n    get userUnit() {\n      return this._pageInfo.userUnit;\n    },\n    /**\n     * @return {Array} An array of the visible portion of the PDF page in the\n     * user space units - [x1, y1, x2, y2].\n     */\n    get view() {\n      return this._pageInfo.view;\n    },\n\n    /**\n     * @param {number} scale The desired scale of the viewport.\n     * @param {number} rotate Degrees to rotate the viewport. If omitted this\n     * defaults to the page rotation.\n     * @param {boolean} dontFlip (optional) If true, axis Y will not be flipped.\n     * @return {PageViewport} Contains 'width' and 'height' properties\n     * along with transforms required for rendering.\n     */\n    getViewport(scale, rotate = this.rotate, dontFlip = false) {\n      return new PageViewport({\n        viewBox: this.view,\n        scale,\n        rotation: rotate,\n        dontFlip,\n      });\n    },\n    /**\n     * @param {GetAnnotationsParameters} params - Annotation parameters.\n     * @return {Promise} A promise that is resolved with an {Array} of the\n     * annotation objects.\n     */\n    getAnnotations: function PDFPageProxy_getAnnotations(params) {\n      var intent = (params && params.intent) || null;\n\n      if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n        this.annotationsPromise = this.transport.getAnnotations(this.pageIndex,\n                                                                intent);\n        this.annotationsIntent = intent;\n      }\n      return this.annotationsPromise;\n    },\n    /**\n     * Begins the process of rendering a page to the desired context.\n     * @param {RenderParameters} params Page render parameters.\n     * @return {RenderTask} An object that contains the promise, which\n     *                      is resolved when the page finishes rendering.\n     */\n    render: function PDFPageProxy_render(params) {\n      let stats = this._stats;\n      stats.time('Overall');\n\n      // If there was a pending destroy cancel it so no cleanup happens during\n      // this call to render.\n      this.pendingCleanup = false;\n\n      var renderingIntent = (params.intent === 'print' ? 'print' : 'display');\n      var canvasFactory = params.canvasFactory || new DOMCanvasFactory();\n      let webGLContext = new WebGLContext({\n        enable: params.enableWebGL,\n      });\n\n      if (!this.intentStates[renderingIntent]) {\n        this.intentStates[renderingIntent] = Object.create(null);\n      }\n      var intentState = this.intentStates[renderingIntent];\n\n      // If there's no displayReadyCapability yet, then the operatorList\n      // was never requested before. Make the request and create the promise.\n      if (!intentState.displayReadyCapability) {\n        intentState.receivingOperatorList = true;\n        intentState.displayReadyCapability = createPromiseCapability();\n        intentState.operatorList = {\n          fnArray: [],\n          argsArray: [],\n          lastChunk: false,\n        };\n\n        stats.time('Page Request');\n        this.transport.messageHandler.send('RenderPageRequest', {\n          pageIndex: this.pageNumber - 1,\n          intent: renderingIntent,\n          renderInteractiveForms: (params.renderInteractiveForms === true),\n        });\n      }\n\n      var complete = (error) => {\n        var i = intentState.renderTasks.indexOf(internalRenderTask);\n        if (i >= 0) {\n          intentState.renderTasks.splice(i, 1);\n        }\n\n        if (this.cleanupAfterRender) {\n          this.pendingCleanup = true;\n        }\n        this._tryCleanup();\n\n        if (error) {\n          internalRenderTask.capability.reject(error);\n        } else {\n          internalRenderTask.capability.resolve();\n        }\n        stats.timeEnd('Rendering');\n        stats.timeEnd('Overall');\n      };\n\n      var internalRenderTask = new InternalRenderTask(complete, params,\n                                                      this.objs,\n                                                      this.commonObjs,\n                                                      intentState.operatorList,\n                                                      this.pageNumber,\n                                                      canvasFactory,\n                                                      webGLContext,\n                                                      this._pdfBug);\n      internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';\n      if (!intentState.renderTasks) {\n        intentState.renderTasks = [];\n      }\n      intentState.renderTasks.push(internalRenderTask);\n      var renderTask = internalRenderTask.task;\n\n      intentState.displayReadyCapability.promise.then((transparency) => {\n        if (this.pendingCleanup) {\n          complete();\n          return;\n        }\n        stats.time('Rendering');\n        internalRenderTask.initializeGraphics(transparency);\n        internalRenderTask.operatorListChanged();\n      }).catch(complete);\n\n      return renderTask;\n    },\n\n    /**\n     * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n     *   object that represents page's operator list.\n     */\n    getOperatorList: function PDFPageProxy_getOperatorList() {\n      function operatorListChanged() {\n        if (intentState.operatorList.lastChunk) {\n          intentState.opListReadCapability.resolve(intentState.operatorList);\n\n          var i = intentState.renderTasks.indexOf(opListTask);\n          if (i >= 0) {\n            intentState.renderTasks.splice(i, 1);\n          }\n        }\n      }\n\n      var renderingIntent = 'oplist';\n      if (!this.intentStates[renderingIntent]) {\n        this.intentStates[renderingIntent] = Object.create(null);\n      }\n      var intentState = this.intentStates[renderingIntent];\n      var opListTask;\n\n      if (!intentState.opListReadCapability) {\n        opListTask = {};\n        opListTask.operatorListChanged = operatorListChanged;\n        intentState.receivingOperatorList = true;\n        intentState.opListReadCapability = createPromiseCapability();\n        intentState.renderTasks = [];\n        intentState.renderTasks.push(opListTask);\n        intentState.operatorList = {\n          fnArray: [],\n          argsArray: [],\n          lastChunk: false,\n        };\n\n        this._stats.time('Page Request');\n        this.transport.messageHandler.send('RenderPageRequest', {\n          pageIndex: this.pageIndex,\n          intent: renderingIntent,\n        });\n      }\n      return intentState.opListReadCapability.promise;\n    },\n\n    /**\n     * @param {getTextContentParameters} params - getTextContent parameters.\n     * @return {ReadableStream} ReadableStream to read textContent chunks.\n     */\n    streamTextContent(params = {}) {\n      const TEXT_CONTENT_CHUNK_SIZE = 100;\n      return this.transport.messageHandler.sendWithStream('GetTextContent', {\n        pageIndex: this.pageNumber - 1,\n        normalizeWhitespace: (params.normalizeWhitespace === true),\n        combineTextItems: (params.disableCombineTextItems !== true),\n      }, {\n        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n        size(textContent) {\n          return textContent.items.length;\n        },\n      });\n    },\n\n    /**\n     * @param {getTextContentParameters} params - getTextContent parameters.\n     * @return {Promise} That is resolved a {@link TextContent}\n     * object that represent the page text content.\n     */\n    getTextContent: function PDFPageProxy_getTextContent(params) {\n      params = params || {};\n      let readableStream = this.streamTextContent(params);\n\n      return new Promise(function(resolve, reject) {\n        function pump() {\n          reader.read().then(function({ value, done, }) {\n            if (done) {\n              resolve(textContent);\n              return;\n            }\n            Object.assign(textContent.styles, value.styles);\n            textContent.items.push(...value.items);\n            pump();\n          }, reject);\n        }\n\n        let reader = readableStream.getReader();\n        let textContent = {\n          items: [],\n          styles: Object.create(null),\n        };\n\n        pump();\n      });\n    },\n\n    /**\n     * Destroys page object.\n     */\n    _destroy: function PDFPageProxy_destroy() {\n      this.destroyed = true;\n      this.transport.pageCache[this.pageIndex] = null;\n\n      var waitOn = [];\n      Object.keys(this.intentStates).forEach(function(intent) {\n        if (intent === 'oplist') {\n          // Avoid errors below, since the renderTasks are just stubs.\n          return;\n        }\n        var intentState = this.intentStates[intent];\n        intentState.renderTasks.forEach(function(renderTask) {\n          var renderCompleted = renderTask.capability.promise.\n            catch(function () {}); // ignoring failures\n          waitOn.push(renderCompleted);\n          renderTask.cancel();\n        });\n      }, this);\n      this.objs.clear();\n      this.annotationsPromise = null;\n      this.pendingCleanup = false;\n      return Promise.all(waitOn);\n    },\n\n    /**\n     * Cleans up resources allocated by the page.\n     * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n     *   The default value is `false`.\n     */\n    cleanup(resetStats = false) {\n      this.pendingCleanup = true;\n      this._tryCleanup(resetStats);\n    },\n    /**\n     * For internal use only. Attempts to clean up if rendering is in a state\n     * where that's possible.\n     * @ignore\n     */\n    _tryCleanup(resetStats = false) {\n      if (!this.pendingCleanup ||\n          Object.keys(this.intentStates).some(function(intent) {\n            var intentState = this.intentStates[intent];\n            return (intentState.renderTasks.length !== 0 ||\n                    intentState.receivingOperatorList);\n          }, this)) {\n        return;\n      }\n\n      Object.keys(this.intentStates).forEach(function(intent) {\n        delete this.intentStates[intent];\n      }, this);\n      this.objs.clear();\n      this.annotationsPromise = null;\n      if (resetStats && this._stats instanceof StatTimer) {\n        this._stats = new StatTimer();\n      }\n      this.pendingCleanup = false;\n    },\n    /**\n     * For internal use only.\n     * @ignore\n     */\n    _startRenderPage: function PDFPageProxy_startRenderPage(transparency,\n                                                            intent) {\n      var intentState = this.intentStates[intent];\n      // TODO Refactor RenderPageRequest to separate rendering\n      // and operator list logic\n      if (intentState.displayReadyCapability) {\n        intentState.displayReadyCapability.resolve(transparency);\n      }\n    },\n    /**\n     * For internal use only.\n     * @ignore\n     */\n    _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk,\n                                                            intent) {\n      var intentState = this.intentStates[intent];\n      var i, ii;\n      // Add the new chunk to the current operator list.\n      for (i = 0, ii = operatorListChunk.length; i < ii; i++) {\n        intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n        intentState.operatorList.argsArray.push(\n          operatorListChunk.argsArray[i]);\n      }\n      intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n      // Notify all the rendering tasks there are more operators to be consumed.\n      for (i = 0; i < intentState.renderTasks.length; i++) {\n        intentState.renderTasks[i].operatorListChanged();\n      }\n\n      if (operatorListChunk.lastChunk) {\n        intentState.receivingOperatorList = false;\n        this._tryCleanup();\n      }\n    },\n\n    /**\n     * @return {Object} Returns page stats, if enabled.\n     */\n    get stats() {\n      return (this._stats instanceof StatTimer ? this._stats : null);\n    },\n  };\n  return PDFPageProxy;\n})();\n\nclass LoopbackPort {\n  constructor(defer = true) {\n    this._listeners = [];\n    this._defer = defer;\n    this._deferred = Promise.resolve(undefined);\n  }\n\n  postMessage(obj, transfers) {\n    function cloneValue(value) {\n      // Trying to perform a structured clone close to the spec, including\n      // transfers.\n      if (typeof value !== 'object' || value === null) {\n        return value;\n      }\n      if (cloned.has(value)) { // already cloned the object\n        return cloned.get(value);\n      }\n      var result;\n      var buffer;\n      if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n        // We found object with ArrayBuffer (typed array).\n        var transferable = transfers && transfers.includes(buffer);\n        if (value === buffer) {\n          // Special case when we are faking typed arrays in compatibility.js.\n          result = value;\n        } else if (transferable) {\n          result = new value.constructor(buffer, value.byteOffset,\n                                         value.byteLength);\n        } else {\n          result = new value.constructor(value);\n        }\n        cloned.set(value, result);\n        return result;\n      }\n      result = Array.isArray(value) ? [] : {};\n      cloned.set(value, result); // adding to cache now for cyclic references\n      // Cloning all value and object properties, however ignoring properties\n      // defined via getter.\n      for (var i in value) {\n        var desc, p = value;\n        while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n          p = Object.getPrototypeOf(p);\n        }\n        if (typeof desc.value === 'undefined' ||\n            typeof desc.value === 'function') {\n          continue;\n        }\n        result[i] = cloneValue(desc.value);\n      }\n      return result;\n    }\n\n    if (!this._defer) {\n      this._listeners.forEach(function (listener) {\n        listener.call(this, { data: obj, });\n      }, this);\n      return;\n    }\n\n    var cloned = new WeakMap();\n    var e = { data: cloneValue(obj), };\n    this._deferred.then(() => {\n      this._listeners.forEach(function (listener) {\n        listener.call(this, e);\n      }, this);\n    });\n  }\n\n  addEventListener(name, listener) {\n    this._listeners.push(listener);\n  }\n\n  removeEventListener(name, listener) {\n    var i = this._listeners.indexOf(listener);\n    this._listeners.splice(i, 1);\n  }\n\n  terminate() {\n    this._listeners = [];\n  }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n *   in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n *   constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nvar PDFWorker = (function PDFWorkerClosure() {\n  let nextFakeWorkerId = 0;\n\n  function getWorkerSrc() {\n    if (GlobalWorkerOptions.workerSrc) {\n      return GlobalWorkerOptions.workerSrc;\n    }\n    if (typeof fallbackWorkerSrc !== 'undefined') {\n      return fallbackWorkerSrc;\n    }\n    throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n  }\n\n  function getMainThreadWorkerMessageHandler() {\n    try {\n      if (typeof window !== 'undefined') {\n        return (window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler);\n      }\n    } catch (ex) { }\n    return null;\n  }\n\n  let fakeWorkerFilesLoadedCapability;\n\n  // Loads worker code into main thread.\n  function setupFakeWorkerGlobal() {\n    if (fakeWorkerFilesLoadedCapability) {\n      return fakeWorkerFilesLoadedCapability.promise;\n    }\n    fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n    let mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n    if (mainWorkerMessageHandler) {\n      // The worker was already loaded using a `<script>` tag.\n      fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n      return fakeWorkerFilesLoadedCapability.promise;\n    }\n    // In the developer build load worker_loader.js which in turn loads all the\n    // other files and resolves the promise. In production only the\n    // pdf.worker.js file is needed.\n    if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n      if (typeof SystemJS === 'object') {\n        SystemJS.import('pdfjs/core/worker').then((worker) => {\n          fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n        }).catch(fakeWorkerFilesLoadedCapability.reject);\n      } else if (typeof require === 'function') {\n        try {\n          let worker = require('../core/worker.js');\n          fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);\n        } catch (ex) {\n          fakeWorkerFilesLoadedCapability.reject(ex);\n        }\n      } else {\n        fakeWorkerFilesLoadedCapability.reject(new Error(\n          'SystemJS or CommonJS must be used to load fake worker.'));\n      }\n    } else {\n      const loader = fakeWorkerFilesLoader || function() {\n        return loadScript(getWorkerSrc()).then(function() {\n          return window.pdfjsWorker.WorkerMessageHandler;\n        });\n      };\n      loader().then(fakeWorkerFilesLoadedCapability.resolve,\n                    fakeWorkerFilesLoadedCapability.reject);\n    }\n    return fakeWorkerFilesLoadedCapability.promise;\n  }\n\n  function createCDNWrapper(url) {\n    // We will rely on blob URL's property to specify origin.\n    // We want this function to fail in case if createObjectURL or Blob do not\n    // exist or fail for some reason -- our Worker creation will fail anyway.\n    var wrapper = 'importScripts(\\'' + url + '\\');';\n    return URL.createObjectURL(new Blob([wrapper]));\n  }\n\n  let pdfWorkerPorts = new WeakMap();\n\n  /**\n   * @param {PDFWorkerParameters} params - The worker initialization parameters.\n   */\n  function PDFWorker({ name = null, port = null,\n                       postMessageTransfers = true,\n                       verbosity = getVerbosityLevel(), } = {}) {\n    if (port && pdfWorkerPorts.has(port)) {\n      throw new Error('Cannot use more than one PDFWorker per port');\n    }\n\n    this.name = name;\n    this.destroyed = false;\n    this.postMessageTransfers = postMessageTransfers !== false;\n    this.verbosity = verbosity;\n\n    this._readyCapability = createPromiseCapability();\n    this._port = null;\n    this._webWorker = null;\n    this._messageHandler = null;\n\n    if (port) {\n      pdfWorkerPorts.set(port, this);\n      this._initializeFromPort(port);\n      return;\n    }\n\n    this._initialize();\n  }\n\n  PDFWorker.prototype = /** @lends PDFWorker.prototype */ {\n    get promise() {\n      return this._readyCapability.promise;\n    },\n\n    get port() {\n      return this._port;\n    },\n\n    get messageHandler() {\n      return this._messageHandler;\n    },\n\n    _initializeFromPort: function PDFWorker_initializeFromPort(port) {\n      this._port = port;\n      this._messageHandler = new MessageHandler('main', 'worker', port);\n      this._messageHandler.on('ready', function () {\n        // Ignoring 'ready' event -- MessageHandler shall be already initialized\n        // and ready to accept the messages.\n      });\n      this._readyCapability.resolve();\n    },\n\n    _initialize: function PDFWorker_initialize() {\n      // If worker support isn't disabled explicit and the browser has worker\n      // support, create a new web worker and test if it/the browser fulfills\n      // all requirements to run parts of pdf.js in a web worker.\n      // Right now, the requirement is, that an Uint8Array is still an\n      // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n      if (typeof Worker !== 'undefined' && !isWorkerDisabled &&\n          !getMainThreadWorkerMessageHandler()) {\n        let workerSrc = getWorkerSrc();\n\n        try {\n          // Wraps workerSrc path into blob URL, if the former does not belong\n          // to the same origin.\n          if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC') &&\n              !isSameOrigin(window.location.href, workerSrc)) {\n            workerSrc = createCDNWrapper(\n              new URL(workerSrc, window.location).href);\n          }\n\n          // Some versions of FF can't create a worker on localhost, see:\n          // https://bugzilla.mozilla.org/show_bug.cgi?id=683280\n          var worker = new Worker(workerSrc);\n          var messageHandler = new MessageHandler('main', 'worker', worker);\n          var terminateEarly = () => {\n            worker.removeEventListener('error', onWorkerError);\n            messageHandler.destroy();\n            worker.terminate();\n            if (this.destroyed) {\n              this._readyCapability.reject(new Error('Worker was destroyed'));\n            } else {\n              // Fall back to fake worker if the termination is caused by an\n              // error (e.g. NetworkError / SecurityError).\n              this._setupFakeWorker();\n            }\n          };\n\n          var onWorkerError = () => {\n            if (!this._webWorker) {\n              // Worker failed to initialize due to an error. Clean up and fall\n              // back to the fake worker.\n              terminateEarly();\n            }\n          };\n          worker.addEventListener('error', onWorkerError);\n\n          messageHandler.on('test', (data) => {\n            worker.removeEventListener('error', onWorkerError);\n            if (this.destroyed) {\n              terminateEarly();\n              return; // worker was destroyed\n            }\n            if (data && data.supportTypedArray) {\n              this._messageHandler = messageHandler;\n              this._port = worker;\n              this._webWorker = worker;\n              if (!data.supportTransfers) {\n                this.postMessageTransfers = false;\n              }\n              this._readyCapability.resolve();\n              // Send global setting, e.g. verbosity level.\n              messageHandler.send('configure', {\n                verbosity: this.verbosity,\n              });\n            } else {\n              this._setupFakeWorker();\n              messageHandler.destroy();\n              worker.terminate();\n            }\n          });\n\n          messageHandler.on('ready', (data) => {\n            worker.removeEventListener('error', onWorkerError);\n            if (this.destroyed) {\n              terminateEarly();\n              return; // worker was destroyed\n            }\n            try {\n              sendTest();\n            } catch (e) {\n              // We need fallback to a faked worker.\n              this._setupFakeWorker();\n            }\n          });\n\n          const sendTest = () => {\n            let testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);\n            // Some versions of Opera throw a DATA_CLONE_ERR on serializing the\n            // typed array. Also, checking if we can use transfers.\n            try {\n              messageHandler.send('test', testObj, [testObj.buffer]);\n            } catch (ex) {\n              info('Cannot use postMessage transfers');\n              testObj[0] = 0;\n              messageHandler.send('test', testObj);\n            }\n          };\n\n          // It might take time for worker to initialize (especially when AMD\n          // loader is used). We will try to send test immediately, and then\n          // when 'ready' message will arrive. The worker shall process only\n          // first received 'test'.\n          sendTest();\n          return;\n        } catch (e) {\n          info('The worker has been disabled.');\n        }\n      }\n      // Either workers are disabled, not supported or have thrown an exception.\n      // Thus, we fallback to a faked worker.\n      this._setupFakeWorker();\n    },\n\n    _setupFakeWorker: function PDFWorker_setupFakeWorker() {\n      if (!isWorkerDisabled) {\n        warn('Setting up fake worker.');\n        isWorkerDisabled = true;\n      }\n\n      setupFakeWorkerGlobal().then((WorkerMessageHandler) => {\n        if (this.destroyed) {\n          this._readyCapability.reject(new Error('Worker was destroyed'));\n          return;\n        }\n        let port = new LoopbackPort();\n        this._port = port;\n\n        // All fake workers use the same port, making id unique.\n        var id = 'fake' + (nextFakeWorkerId++);\n\n        // If the main thread is our worker, setup the handling for the\n        // messages -- the main thread sends to it self.\n        var workerHandler = new MessageHandler(id + '_worker', id, port);\n        WorkerMessageHandler.setup(workerHandler, port);\n\n        var messageHandler = new MessageHandler(id, id + '_worker', port);\n        this._messageHandler = messageHandler;\n        this._readyCapability.resolve();\n      }).catch((reason) => {\n        this._readyCapability.reject(\n          new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n      });\n    },\n\n    /**\n     * Destroys the worker instance.\n     */\n    destroy: function PDFWorker_destroy() {\n      this.destroyed = true;\n      if (this._webWorker) {\n        // We need to terminate only web worker created resource.\n        this._webWorker.terminate();\n        this._webWorker = null;\n      }\n      pdfWorkerPorts.delete(this._port);\n      this._port = null;\n      if (this._messageHandler) {\n        this._messageHandler.destroy();\n        this._messageHandler = null;\n      }\n    },\n  };\n\n  /**\n   * @param {PDFWorkerParameters} params - The worker initialization parameters.\n   */\n  PDFWorker.fromPort = function(params) {\n    if (!params || !params.port) {\n      throw new Error('PDFWorker.fromPort - invalid method signature.');\n    }\n    if (pdfWorkerPorts.has(params.port)) {\n      return pdfWorkerPorts.get(params.port);\n    }\n    return new PDFWorker(params);\n  };\n\n  PDFWorker.getWorkerSrc = function() {\n    return getWorkerSrc();\n  };\n\n  return PDFWorker;\n})();\n\n/**\n * For internal use only.\n * @ignore\n */\nclass WorkerTransport {\n  constructor(messageHandler, loadingTask, networkStream, params) {\n    this.messageHandler = messageHandler;\n    this.loadingTask = loadingTask;\n    this.commonObjs = new PDFObjects();\n    this.fontLoader = new FontLoader(loadingTask.docId);\n    this._params = params;\n    this.CMapReaderFactory = new params.CMapReaderFactory({\n      baseUrl: params.cMapUrl,\n      isCompressed: params.cMapPacked,\n    });\n\n    this.destroyed = false;\n    this.destroyCapability = null;\n    this._passwordCapability = null;\n\n    this._networkStream = networkStream;\n    this._fullReader = null;\n    this._lastProgress = null;\n\n    this.pageCache = [];\n    this.pagePromises = [];\n    this.downloadInfoCapability = createPromiseCapability();\n\n    this.setupMessageHandler();\n  }\n\n  destroy() {\n    if (this.destroyCapability) {\n      return this.destroyCapability.promise;\n    }\n\n    this.destroyed = true;\n    this.destroyCapability = createPromiseCapability();\n\n    if (this._passwordCapability) {\n      this._passwordCapability.reject(\n        new Error('Worker was destroyed during onPassword callback'));\n    }\n\n    const waitOn = [];\n    // We need to wait for all renderings to be completed, e.g.\n    // timeout/rAF can take a long time.\n    this.pageCache.forEach(function(page) {\n      if (page) {\n        waitOn.push(page._destroy());\n      }\n    });\n    this.pageCache = [];\n    this.pagePromises = [];\n    // We also need to wait for the worker to finish its long running tasks.\n    const terminated = this.messageHandler.sendWithPromise('Terminate', null);\n    waitOn.push(terminated);\n    Promise.all(waitOn).then(() => {\n      this.fontLoader.clear();\n      if (this._networkStream) {\n        this._networkStream.cancelAllRequests();\n      }\n\n      if (this.messageHandler) {\n        this.messageHandler.destroy();\n        this.messageHandler = null;\n      }\n      this.destroyCapability.resolve();\n    }, this.destroyCapability.reject);\n    return this.destroyCapability.promise;\n  }\n\n  setupMessageHandler() {\n    const { messageHandler, loadingTask, } = this;\n\n    messageHandler.on('GetReader', function(data, sink) {\n      assert(this._networkStream);\n      this._fullReader = this._networkStream.getFullReader();\n      this._fullReader.onProgress = (evt) => {\n        this._lastProgress = {\n          loaded: evt.loaded,\n          total: evt.total,\n        };\n      };\n      sink.onPull = () => {\n        this._fullReader.read().then(function({ value, done, }) {\n          if (done) {\n            sink.close();\n            return;\n          }\n          assert(isArrayBuffer(value));\n          // Enqueue data chunk into sink, and transfer it\n          // to other side as `Transferable` object.\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch((reason) => {\n          sink.error(reason);\n        });\n      };\n\n      sink.onCancel = (reason) => {\n        this._fullReader.cancel(reason);\n      };\n    }, this);\n\n    messageHandler.on('ReaderHeadersReady', function(data) {\n      const headersCapability = createPromiseCapability();\n      const fullReader = this._fullReader;\n      fullReader.headersReady.then(() => {\n        // If stream or range are disabled, it's our only way to report\n        // loading progress.\n        if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n          if (this._lastProgress && loadingTask.onProgress) {\n            loadingTask.onProgress(this._lastProgress);\n          }\n          fullReader.onProgress = (evt) => {\n            if (loadingTask.onProgress) {\n              loadingTask.onProgress({\n                loaded: evt.loaded,\n                total: evt.total,\n              });\n            }\n          };\n        }\n\n        headersCapability.resolve({\n          isStreamingSupported: fullReader.isStreamingSupported,\n          isRangeSupported: fullReader.isRangeSupported,\n          contentLength: fullReader.contentLength,\n        });\n      }, headersCapability.reject);\n\n      return headersCapability.promise;\n    }, this);\n\n    messageHandler.on('GetRangeReader', function(data, sink) {\n      assert(this._networkStream);\n      const rangeReader =\n        this._networkStream.getRangeReader(data.begin, data.end);\n\n      sink.onPull = () => {\n        rangeReader.read().then(function({ value, done, }) {\n          if (done) {\n            sink.close();\n            return;\n          }\n          assert(isArrayBuffer(value));\n          sink.enqueue(new Uint8Array(value), 1, [value]);\n        }).catch((reason) => {\n          sink.error(reason);\n        });\n      };\n\n      sink.onCancel = (reason) => {\n        rangeReader.cancel(reason);\n      };\n    }, this);\n\n    messageHandler.on('GetDoc', function({ pdfInfo, }) {\n      this.numPages = pdfInfo.numPages;\n      this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);\n      loadingTask._capability.resolve(this.pdfDocument);\n    }, this);\n\n    messageHandler.on('PasswordRequest', function(exception) {\n      this._passwordCapability = createPromiseCapability();\n\n      if (loadingTask.onPassword) {\n        const updatePassword = (password) => {\n          this._passwordCapability.resolve({\n            password,\n          });\n        };\n        try {\n          loadingTask.onPassword(updatePassword, exception.code);\n        } catch (ex) {\n          this._passwordCapability.reject(ex);\n        }\n      } else {\n        this._passwordCapability.reject(\n          new PasswordException(exception.message, exception.code));\n      }\n      return this._passwordCapability.promise;\n    }, this);\n\n    messageHandler.on('PasswordException', function(exception) {\n      loadingTask._capability.reject(\n        new PasswordException(exception.message, exception.code));\n    }, this);\n\n    messageHandler.on('InvalidPDF', function(exception) {\n      loadingTask._capability.reject(\n        new InvalidPDFException(exception.message));\n    }, this);\n\n    messageHandler.on('MissingPDF', function(exception) {\n      loadingTask._capability.reject(\n        new MissingPDFException(exception.message));\n    }, this);\n\n    messageHandler.on('UnexpectedResponse', function(exception) {\n      loadingTask._capability.reject(\n        new UnexpectedResponseException(exception.message, exception.status));\n    }, this);\n\n    messageHandler.on('UnknownError', function(exception) {\n      loadingTask._capability.reject(\n        new UnknownErrorException(exception.message, exception.details));\n    }, this);\n\n    messageHandler.on('DataLoaded', function(data) {\n      // For consistency: Ensure that progress is always reported when the\n      // entire PDF file has been loaded, regardless of how it was fetched.\n      if (loadingTask.onProgress) {\n        loadingTask.onProgress({\n          loaded: data.length,\n          total: data.length,\n        });\n      }\n      this.downloadInfoCapability.resolve(data);\n    }, this);\n\n    messageHandler.on('StartRenderPage', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.pageCache[data.pageIndex];\n      page._stats.timeEnd('Page Request');\n      page._startRenderPage(data.transparency, data.intent);\n    }, this);\n\n    messageHandler.on('RenderPageChunk', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.pageCache[data.pageIndex];\n      page._renderPageChunk(data.operatorList, data.intent);\n    }, this);\n\n    messageHandler.on('commonobj', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const [id, type, exportedData] = data;\n      if (this.commonObjs.hasData(id)) {\n        return;\n      }\n\n      switch (type) {\n        case 'Font':\n          const params = this._params;\n\n          if ('error' in exportedData) {\n            const exportedError = exportedData.error;\n            warn(`Error during font loading: ${exportedError}`);\n            this.commonObjs.resolve(id, exportedError);\n            break;\n          }\n\n          let fontRegistry = null;\n          if (params.pdfBug && globalScope.FontInspector &&\n              globalScope.FontInspector.enabled) {\n            fontRegistry = {\n              registerFont(font, url) {\n                globalScope['FontInspector'].fontAdded(font, url);\n              },\n            };\n          }\n          const font = new FontFaceObject(exportedData, {\n            isEvalSupported: params.isEvalSupported,\n            disableFontFace: params.disableFontFace,\n            ignoreErrors: params.ignoreErrors,\n            onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n            fontRegistry,\n          });\n          const fontReady = (fontObjs) => {\n            this.commonObjs.resolve(id, font);\n          };\n\n          this.fontLoader.bind([font], fontReady);\n          break;\n        case 'FontPath':\n          this.commonObjs.resolve(id, exportedData);\n          break;\n        default:\n          throw new Error(`Got unknown common object type ${type}`);\n      }\n    }, this);\n\n    messageHandler.on('obj', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const [id, pageIndex, type, imageData] = data;\n      const pageProxy = this.pageCache[pageIndex];\n      if (pageProxy.objs.hasData(id)) {\n        return;\n      }\n\n      switch (type) {\n        case 'JpegStream':\n          return new Promise((resolve, reject) => {\n            const img = new Image();\n            img.onload = function() {\n              resolve(img);\n            };\n            img.onerror = function() {\n              reject(new Error('Error during JPEG image loading'));\n              // Note that when the browser image loading/decoding fails,\n              // we'll fallback to the built-in PDF.js JPEG decoder; see\n              // `PartialEvaluator.buildPaintImageXObject` in the\n              // `src/core/evaluator.js` file.\n            };\n            img.src = imageData;\n          }).then((img) => {\n            pageProxy.objs.resolve(id, img);\n          });\n        case 'Image':\n          pageProxy.objs.resolve(id, imageData);\n\n          // Heuristic that will allow us not to store large data.\n          const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n          if (imageData && 'data' in imageData &&\n              imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n            pageProxy.cleanupAfterRender = true;\n          }\n          break;\n        default:\n          throw new Error(`Got unknown object type ${type}`);\n      }\n    }, this);\n\n    messageHandler.on('DocProgress', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      if (loadingTask.onProgress) {\n        loadingTask.onProgress({\n          loaded: data.loaded,\n          total: data.total,\n        });\n      }\n    }, this);\n\n    messageHandler.on('PageError', function(data) {\n      if (this.destroyed) {\n        return; // Ignore any pending requests if the worker was terminated.\n      }\n\n      const page = this.pageCache[data.pageNum - 1];\n      const intentState = page.intentStates[data.intent];\n\n      if (intentState.displayReadyCapability) {\n        intentState.displayReadyCapability.reject(data.error);\n      } else {\n        throw new Error(data.error);\n      }\n\n      if (intentState.operatorList) {\n        // Mark operator list as complete.\n        intentState.operatorList.lastChunk = true;\n        for (let i = 0; i < intentState.renderTasks.length; i++) {\n          intentState.renderTasks[i].operatorListChanged();\n        }\n      }\n    }, this);\n\n    messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);\n\n    messageHandler.on('JpegDecode', function(data) {\n      if (this.destroyed) {\n        return Promise.reject(new Error('Worker was destroyed'));\n      }\n\n      if (typeof document === 'undefined') {\n        // Make sure that this code is not executing in node.js, as\n        // it's using DOM image, and there is no library to support that.\n        return Promise.reject(new Error('\"document\" is not defined.'));\n      }\n\n      const [imageUrl, components] = data;\n      if (components !== 3 && components !== 1) {\n        return Promise.reject(\n          new Error('Only 3 components or 1 component can be returned'));\n      }\n\n      return new Promise(function (resolve, reject) {\n        const img = new Image();\n        img.onload = function () {\n          const width = img.width;\n          const height = img.height;\n          const size = width * height;\n          const rgbaLength = size * 4;\n          const buf = new Uint8ClampedArray(size * components);\n          const tmpCanvas = document.createElement('canvas');\n          tmpCanvas.width = width;\n          tmpCanvas.height = height;\n          const tmpCtx = tmpCanvas.getContext('2d');\n          tmpCtx.drawImage(img, 0, 0);\n          const data = tmpCtx.getImageData(0, 0, width, height).data;\n\n          if (components === 3) {\n            for (let i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n              buf[j] = data[i];\n              buf[j + 1] = data[i + 1];\n              buf[j + 2] = data[i + 2];\n            }\n          } else if (components === 1) {\n            for (let i = 0, j = 0; i < rgbaLength; i += 4, j++) {\n              buf[j] = data[i];\n            }\n          }\n          resolve({ data: buf, width, height, });\n        };\n        img.onerror = function () {\n          reject(new Error('JpegDecode failed to load image'));\n        };\n        img.src = imageUrl;\n      });\n    }, this);\n\n    messageHandler.on('FetchBuiltInCMap', function(data) {\n      if (this.destroyed) {\n        return Promise.reject(new Error('Worker was destroyed'));\n      }\n      return this.CMapReaderFactory.fetch({\n        name: data.name,\n      });\n    }, this);\n  }\n\n  _onUnsupportedFeature({ featureId, }) {\n    if (this.destroyed) {\n      return; // Ignore any pending requests if the worker was terminated.\n    }\n    if (this.loadingTask.onUnsupportedFeature) {\n      this.loadingTask.onUnsupportedFeature(featureId);\n    }\n  }\n\n  getData() {\n    return this.messageHandler.sendWithPromise('GetData', null);\n  }\n\n  getPage(pageNumber) {\n    if (!Number.isInteger(pageNumber) ||\n        pageNumber <= 0 || pageNumber > this.numPages) {\n      return Promise.reject(new Error('Invalid page request'));\n    }\n\n    const pageIndex = pageNumber - 1;\n    if (pageIndex in this.pagePromises) {\n      return this.pagePromises[pageIndex];\n    }\n    const promise = this.messageHandler.sendWithPromise('GetPage', {\n      pageIndex,\n    }).then((pageInfo) => {\n      if (this.destroyed) {\n        throw new Error('Transport destroyed');\n      }\n      const page = new PDFPageProxy(pageIndex, pageInfo, this,\n                                    this._params.pdfBug);\n      this.pageCache[pageIndex] = page;\n      return page;\n    });\n    this.pagePromises[pageIndex] = promise;\n    return promise;\n  }\n\n  getPageIndex(ref) {\n    return this.messageHandler.sendWithPromise('GetPageIndex', {\n      ref,\n    }).catch(function(reason) {\n      return Promise.reject(new Error(reason));\n    });\n  }\n\n  getAnnotations(pageIndex, intent) {\n    return this.messageHandler.sendWithPromise('GetAnnotations', {\n      pageIndex,\n      intent,\n    });\n  }\n\n  getDestinations() {\n    return this.messageHandler.sendWithPromise('GetDestinations', null);\n  }\n\n  getDestination(id) {\n    if (typeof id !== 'string') {\n      return Promise.reject(new Error('Invalid destination request.'));\n    }\n    return this.messageHandler.sendWithPromise('GetDestination', {\n      id,\n    });\n  }\n\n  getPageLabels() {\n    return this.messageHandler.sendWithPromise('GetPageLabels', null);\n  }\n\n  getPageMode() {\n    return this.messageHandler.sendWithPromise('GetPageMode', null);\n  }\n\n  getAttachments() {\n    return this.messageHandler.sendWithPromise('GetAttachments', null);\n  }\n\n  getJavaScript() {\n    return this.messageHandler.sendWithPromise('GetJavaScript', null);\n  }\n\n  getOutline() {\n    return this.messageHandler.sendWithPromise('GetOutline', null);\n  }\n\n  getPermissions() {\n    return this.messageHandler.sendWithPromise('GetPermissions', null);\n  }\n\n  getMetadata() {\n    return this.messageHandler.sendWithPromise('GetMetadata', null).\n        then((results) => {\n      return {\n        info: results[0],\n        metadata: (results[1] ? new Metadata(results[1]) : null),\n        contentDispositionFilename: (this._fullReader ?\n                                     this._fullReader.filename : null),\n      };\n    });\n  }\n\n  getStats() {\n    return this.messageHandler.sendWithPromise('GetStats', null);\n  }\n\n  startCleanup() {\n    this.messageHandler.sendWithPromise('Cleanup', null).then(() => {\n      for (let i = 0, ii = this.pageCache.length; i < ii; i++) {\n        const page = this.pageCache[i];\n        if (page) {\n          page.cleanup();\n        }\n      }\n      this.commonObjs.clear();\n      this.fontLoader.clear();\n    });\n  }\n\n  get loadingParams() {\n    const params = this._params;\n    return shadow(this, 'loadingParams', {\n      disableAutoFetch: params.disableAutoFetch,\n      disableCreateObjectURL: params.disableCreateObjectURL,\n      disableFontFace: params.disableFontFace,\n      nativeImageDecoderSupport: params.nativeImageDecoderSupport,\n    });\n  }\n}\n\n/**\n * A PDF document and page is built of many objects. E.g. there are objects\n * for fonts, images, rendering code and such. These objects might get processed\n * inside of a worker. The `PDFObjects` implements some basic functions to\n * manage these objects.\n * @ignore\n */\nvar PDFObjects = (function PDFObjectsClosure() {\n  function PDFObjects() {\n    this.objs = Object.create(null);\n  }\n\n  PDFObjects.prototype = {\n    /**\n     * Internal function.\n     * Ensures there is an object defined for `objId`.\n     */\n    ensureObj: function PDFObjects_ensureObj(objId) {\n      if (this.objs[objId]) {\n        return this.objs[objId];\n      }\n\n      var obj = {\n        capability: createPromiseCapability(),\n        data: null,\n        resolved: false,\n      };\n      this.objs[objId] = obj;\n\n      return obj;\n    },\n\n    /**\n     * If called *without* callback, this returns the data of `objId` but the\n     * object needs to be resolved. If it isn't, this function throws.\n     *\n     * If called *with* a callback, the callback is called with the data of the\n     * object once the object is resolved. That means, if you call this\n     * function and the object is already resolved, the callback gets called\n     * right away.\n     */\n    get: function PDFObjects_get(objId, callback) {\n      // If there is a callback, then the get can be async and the object is\n      // not required to be resolved right now\n      if (callback) {\n        this.ensureObj(objId).capability.promise.then(callback);\n        return null;\n      }\n\n      // If there isn't a callback, the user expects to get the resolved data\n      // directly.\n      var obj = this.objs[objId];\n\n      // If there isn't an object yet or the object isn't resolved, then the\n      // data isn't ready yet!\n      if (!obj || !obj.resolved) {\n        throw new Error(`Requesting object that isn't resolved yet ${objId}`);\n      }\n\n      return obj.data;\n    },\n\n    /**\n     * Resolves the object `objId` with optional `data`.\n     */\n    resolve: function PDFObjects_resolve(objId, data) {\n      var obj = this.ensureObj(objId);\n\n      obj.resolved = true;\n      obj.data = data;\n      obj.capability.resolve(data);\n    },\n\n    isResolved: function PDFObjects_isResolved(objId) {\n      var objs = this.objs;\n\n      if (!objs[objId]) {\n        return false;\n      }\n      return objs[objId].resolved;\n    },\n\n    hasData: function PDFObjects_hasData(objId) {\n      return this.isResolved(objId);\n    },\n\n    /**\n     * Returns the data of `objId` if object exists, null otherwise.\n     */\n    getData: function PDFObjects_getData(objId) {\n      var objs = this.objs;\n      if (!objs[objId] || !objs[objId].resolved) {\n        return null;\n      }\n      return objs[objId].data;\n    },\n\n    clear: function PDFObjects_clear() {\n      this.objs = Object.create(null);\n    },\n  };\n  return PDFObjects;\n})();\n\n/**\n * Allows controlling of the rendering tasks.\n * @class\n * @alias RenderTask\n */\nvar RenderTask = (function RenderTaskClosure() {\n  function RenderTask(internalRenderTask) {\n    this._internalRenderTask = internalRenderTask;\n\n    /**\n     * Callback for incremental rendering -- a function that will be called\n     * each time the rendering is paused.  To continue rendering call the\n     * function that is the first argument to the callback.\n     * @type {function}\n     */\n    this.onContinue = null;\n  }\n\n  RenderTask.prototype = /** @lends RenderTask.prototype */ {\n    /**\n     * Promise for rendering task completion.\n     * @return {Promise}\n     */\n    get promise() {\n      return this._internalRenderTask.capability.promise;\n    },\n\n    /**\n     * Cancels the rendering task. If the task is currently rendering it will\n     * not be cancelled until graphics pauses with a timeout. The promise that\n     * this object extends will be rejected when cancelled.\n     */\n    cancel: function RenderTask_cancel() {\n      this._internalRenderTask.cancel();\n    },\n\n    /**\n     * Registers callbacks to indicate the rendering task completion.\n     *\n     * @param {function} onFulfilled The callback for the rendering completion.\n     * @param {function} onRejected The callback for the rendering failure.\n     * @return {Promise} A promise that is resolved after the onFulfilled or\n     *                   onRejected callback.\n     */\n    then: function RenderTask_then(onFulfilled, onRejected) {\n      return this.promise.then.apply(this.promise, arguments);\n    },\n  };\n\n  return RenderTask;\n})();\n\n/**\n * For internal use only.\n * @ignore\n */\nvar InternalRenderTask = (function InternalRenderTaskClosure() {\n  let canvasInRendering = new WeakMap();\n\n  function InternalRenderTask(callback, params, objs, commonObjs, operatorList,\n                              pageNumber, canvasFactory, webGLContext,\n                              pdfBug = false) {\n    this.callback = callback;\n    this.params = params;\n    this.objs = objs;\n    this.commonObjs = commonObjs;\n    this.operatorListIdx = null;\n    this.operatorList = operatorList;\n    this.pageNumber = pageNumber;\n    this.canvasFactory = canvasFactory;\n    this.webGLContext = webGLContext;\n    this._pdfBug = pdfBug;\n\n    this.running = false;\n    this.graphicsReadyCallback = null;\n    this.graphicsReady = false;\n    this.useRequestAnimationFrame = false;\n    this.cancelled = false;\n    this.capability = createPromiseCapability();\n    this.task = new RenderTask(this);\n    // caching this-bound methods\n    this._continueBound = this._continue.bind(this);\n    this._scheduleNextBound = this._scheduleNext.bind(this);\n    this._nextBound = this._next.bind(this);\n    this._canvas = params.canvasContext.canvas;\n  }\n\n  InternalRenderTask.prototype = {\n\n    initializeGraphics(transparency) {\n      if (this.cancelled) {\n        return;\n      }\n      if (this._canvas) {\n        if (canvasInRendering.has(this._canvas)) {\n          throw new Error(\n            'Cannot use the same canvas during multiple render() operations. ' +\n            'Use different canvas or ensure previous operations were ' +\n            'cancelled or completed.');\n        }\n        canvasInRendering.set(this._canvas, this);\n      }\n\n      if (this._pdfBug && globalScope.StepperManager &&\n          globalScope.StepperManager.enabled) {\n        this.stepper = globalScope.StepperManager.create(this.pageNumber - 1);\n        this.stepper.init(this.operatorList);\n        this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n      }\n\n      var params = this.params;\n      this.gfx = new CanvasGraphics(params.canvasContext, this.commonObjs,\n                                    this.objs, this.canvasFactory,\n                                    this.webGLContext, params.imageLayer);\n\n      this.gfx.beginDrawing({\n        transform: params.transform,\n        viewport: params.viewport,\n        transparency,\n        background: params.background,\n      });\n      this.operatorListIdx = 0;\n      this.graphicsReady = true;\n      if (this.graphicsReadyCallback) {\n        this.graphicsReadyCallback();\n      }\n    },\n\n    cancel: function InternalRenderTask_cancel() {\n      this.running = false;\n      this.cancelled = true;\n      if (this._canvas) {\n        canvasInRendering.delete(this._canvas);\n      }\n      this.callback(new RenderingCancelledException(\n        'Rendering cancelled, page ' + this.pageNumber, 'canvas'));\n    },\n\n    operatorListChanged: function InternalRenderTask_operatorListChanged() {\n      if (!this.graphicsReady) {\n        if (!this.graphicsReadyCallback) {\n          this.graphicsReadyCallback = this._continueBound;\n        }\n        return;\n      }\n\n      if (this.stepper) {\n        this.stepper.updateOperatorList(this.operatorList);\n      }\n\n      if (this.running) {\n        return;\n      }\n      this._continue();\n    },\n\n    _continue: function InternalRenderTask__continue() {\n      this.running = true;\n      if (this.cancelled) {\n        return;\n      }\n      if (this.task.onContinue) {\n        this.task.onContinue(this._scheduleNextBound);\n      } else {\n        this._scheduleNext();\n      }\n    },\n\n    _scheduleNext: function InternalRenderTask__scheduleNext() {\n      if (this.useRequestAnimationFrame && typeof window !== 'undefined') {\n        window.requestAnimationFrame(() => {\n          this._nextBound().catch(this.callback);\n        });\n      } else {\n        Promise.resolve().then(this._nextBound).catch(this.callback);\n      }\n    },\n\n    _next: function InternalRenderTask__next() {\n      return new Promise(() => {\n        if (this.cancelled) {\n          return;\n        }\n        this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList,\n                                          this.operatorListIdx,\n                                          this._continueBound,\n                                          this.stepper);\n        if (this.operatorListIdx === this.operatorList.argsArray.length) {\n          this.running = false;\n          if (this.operatorList.lastChunk) {\n            this.gfx.endDrawing();\n            if (this._canvas) {\n              canvasInRendering.delete(this._canvas);\n            }\n            this.callback();\n          }\n        }\n      });\n    },\n\n  };\n\n  return InternalRenderTask;\n})();\n\nvar version, build;\nif (typeof PDFJSDev !== 'undefined') {\n  version = PDFJSDev.eval('BUNDLE_VERSION');\n  build = PDFJSDev.eval('BUNDLE_BUILD');\n}\n\nexport {\n  getDocument,\n  LoopbackPort,\n  PDFDataRangeTransport,\n  PDFWorker,\n  PDFDocumentProxy,\n  PDFPageProxy,\n  setPDFNetworkStreamFactory,\n  version,\n  build,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert, CMapCompressionType, removeNullCharacters, stringToBytes,\n  unreachable, Util, warn\n} from '../shared/util';\n\nconst DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nconst SVG_NS = 'http://www.w3.org/2000/svg';\n\nclass DOMCanvasFactory {\n  create(width, height) {\n    if (width <= 0 || height <= 0) {\n      throw new Error('invalid canvas size');\n    }\n    let canvas = document.createElement('canvas');\n    let context = canvas.getContext('2d');\n    canvas.width = width;\n    canvas.height = height;\n    return {\n      canvas,\n      context,\n    };\n  }\n\n  reset(canvasAndContext, width, height) {\n    if (!canvasAndContext.canvas) {\n      throw new Error('canvas is not specified');\n    }\n    if (width <= 0 || height <= 0) {\n      throw new Error('invalid canvas size');\n    }\n    canvasAndContext.canvas.width = width;\n    canvasAndContext.canvas.height = height;\n  }\n\n  destroy(canvasAndContext) {\n    if (!canvasAndContext.canvas) {\n      throw new Error('canvas is not specified');\n    }\n    // Zeroing the width and height cause Firefox to release graphics\n    // resources immediately, which can greatly reduce memory consumption.\n    canvasAndContext.canvas.width = 0;\n    canvasAndContext.canvas.height = 0;\n    canvasAndContext.canvas = null;\n    canvasAndContext.context = null;\n  }\n}\n\nclass DOMCMapReaderFactory {\n  constructor({ baseUrl = null, isCompressed = false, }) {\n    this.baseUrl = baseUrl;\n    this.isCompressed = isCompressed;\n  }\n\n  fetch({ name, }) {\n    if (!this.baseUrl) {\n      return Promise.reject(new Error(\n        'The CMap \"baseUrl\" parameter must be specified, ensure that ' +\n        'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'));\n    }\n    if (!name) {\n      return Promise.reject(new Error('CMap name must be specified.'));\n    }\n    return new Promise((resolve, reject) => {\n      let url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : '');\n\n      let request = new XMLHttpRequest();\n      request.open('GET', url, true);\n\n      if (this.isCompressed) {\n        request.responseType = 'arraybuffer';\n      }\n      request.onreadystatechange = () => {\n        if (request.readyState !== XMLHttpRequest.DONE) {\n          return;\n        }\n        if (request.status === 200 || request.status === 0) {\n          let data;\n          if (this.isCompressed && request.response) {\n            data = new Uint8Array(request.response);\n          } else if (!this.isCompressed && request.responseText) {\n            data = stringToBytes(request.responseText);\n          }\n          if (data) {\n            resolve({\n              cMapData: data,\n              compressionType: this.isCompressed ?\n                CMapCompressionType.BINARY : CMapCompressionType.NONE,\n            });\n            return;\n          }\n        }\n        reject(new Error('Unable to load ' +\n                         (this.isCompressed ? 'binary ' : '') +\n                         'CMap at: ' + url));\n      };\n\n      request.send(null);\n    });\n  }\n}\n\nclass DOMSVGFactory {\n  create(width, height) {\n    assert(width > 0 && height > 0, 'Invalid SVG dimensions');\n\n    let svg = document.createElementNS(SVG_NS, 'svg:svg');\n    svg.setAttribute('version', '1.1');\n    svg.setAttribute('width', width + 'px');\n    svg.setAttribute('height', height + 'px');\n    svg.setAttribute('preserveAspectRatio', 'none');\n    svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n\n    return svg;\n  }\n\n  createElement(type) {\n    assert(typeof type === 'string', 'Invalid SVG element type');\n\n    return document.createElementNS(SVG_NS, type);\n  }\n}\n\n/**\n * @typedef {Object} PageViewportParameters\n * @property {Array} viewBox - The xMin, yMin, xMax and yMax coordinates.\n * @property {number} scale - The scale of the viewport.\n * @property {number} rotation - The rotation, in degrees, of the viewport.\n * @property {number} offsetX - (optional) The vertical, i.e. x-axis, offset.\n *   The default value is `0`.\n * @property {number} offsetY - (optional) The horizontal, i.e. y-axis, offset.\n *   The default value is `0`.\n * @property {boolean} dontFlip - (optional) If true, the x-axis will not be\n *   flipped. The default value is `false`.\n */\n\n/**\n * @typedef {Object} PageViewportCloneParameters\n * @property {number} scale - (optional) The scale, overriding the one in the\n *   cloned viewport. The default value is `this.scale`.\n * @property {number} rotation - (optional) The rotation, in degrees, overriding\n *   the one in the cloned viewport. The default value is `this.rotation`.\n * @property {boolean} dontFlip - (optional) If true, the x-axis will not be\n *   flipped. The default value is `false`.\n */\n\n/**\n * PDF page viewport created based on scale, rotation and offset.\n */\nclass PageViewport {\n  /**\n   * @param {PageViewportParameters}\n   */\n  constructor({ viewBox, scale, rotation, offsetX = 0, offsetY = 0,\n                dontFlip = false, }) {\n    this.viewBox = viewBox;\n    this.scale = scale;\n    this.rotation = rotation;\n    this.offsetX = offsetX;\n    this.offsetY = offsetY;\n\n    // creating transform to convert pdf coordinate system to the normal\n    // canvas like coordinates taking in account scale and rotation\n    let centerX = (viewBox[2] + viewBox[0]) / 2;\n    let centerY = (viewBox[3] + viewBox[1]) / 2;\n    let rotateA, rotateB, rotateC, rotateD;\n    rotation = rotation % 360;\n    rotation = rotation < 0 ? rotation + 360 : rotation;\n    switch (rotation) {\n      case 180:\n        rotateA = -1; rotateB = 0; rotateC = 0; rotateD = 1;\n        break;\n      case 90:\n        rotateA = 0; rotateB = 1; rotateC = 1; rotateD = 0;\n        break;\n      case 270:\n        rotateA = 0; rotateB = -1; rotateC = -1; rotateD = 0;\n        break;\n      // case 0:\n      default:\n        rotateA = 1; rotateB = 0; rotateC = 0; rotateD = -1;\n        break;\n    }\n\n    if (dontFlip) {\n      rotateC = -rotateC; rotateD = -rotateD;\n    }\n\n    let offsetCanvasX, offsetCanvasY;\n    let width, height;\n    if (rotateA === 0) {\n      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n      width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n      height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n    } else {\n      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n      width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n      height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n    }\n    // creating transform for the following operations:\n    // translate(-centerX, -centerY), rotate and flip vertically,\n    // scale, and translate(offsetCanvasX, offsetCanvasY)\n    this.transform = [\n      rotateA * scale,\n      rotateB * scale,\n      rotateC * scale,\n      rotateD * scale,\n      offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY,\n      offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY\n    ];\n\n    this.width = width;\n    this.height = height;\n  }\n\n  /**\n   * Clones viewport, with optional additional properties.\n   * @param {PageViewportCloneParameters} - (optional)\n   * @return {PageViewport} Cloned viewport.\n   */\n  clone({ scale = this.scale, rotation = this.rotation,\n          dontFlip = false, } = {}) {\n    return new PageViewport({\n      viewBox: this.viewBox.slice(),\n      scale,\n      rotation,\n      offsetX: this.offsetX,\n      offsetY: this.offsetY,\n      dontFlip,\n    });\n  }\n\n  /**\n   * Converts PDF point to the viewport coordinates. For examples, useful for\n   * converting PDF location into canvas pixel coordinates.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @return {Object} Object containing `x` and `y` properties of the\n   *   point in the viewport coordinate space.\n   * @see {@link convertToPdfPoint}\n   * @see {@link convertToViewportRectangle}\n   */\n  convertToViewportPoint(x, y) {\n    return Util.applyTransform([x, y], this.transform);\n  }\n\n  /**\n   * Converts PDF rectangle to the viewport coordinates.\n   * @param {Array} rect - The xMin, yMin, xMax and yMax coordinates.\n   * @return {Array} Array containing corresponding coordinates of the rectangle\n   *   in the viewport coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToViewportRectangle(rect) {\n    let tl = Util.applyTransform([rect[0], rect[1]], this.transform);\n    let br = Util.applyTransform([rect[2], rect[3]], this.transform);\n    return [tl[0], tl[1], br[0], br[1]];\n  }\n\n  /**\n   * Converts viewport coordinates to the PDF location. For examples, useful\n   * for converting canvas pixel location into PDF one.\n   * @param {number} x - The x-coordinate.\n   * @param {number} y - The y-coordinate.\n   * @return {Object} Object containing `x` and `y` properties of the\n   *   point in the PDF coordinate space.\n   * @see {@link convertToViewportPoint}\n   */\n  convertToPdfPoint(x, y) {\n    return Util.applyInverseTransform([x, y], this.transform);\n  }\n}\n\nvar RenderingCancelledException = (function RenderingCancelledException() {\n  function RenderingCancelledException(msg, type) {\n    this.message = msg;\n    this.type = type;\n  }\n\n  RenderingCancelledException.prototype = new Error();\n  RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n  RenderingCancelledException.constructor = RenderingCancelledException;\n\n  return RenderingCancelledException;\n})();\n\nconst LinkTarget = {\n  NONE: 0, // Default value.\n  SELF: 1,\n  BLANK: 2,\n  PARENT: 3,\n  TOP: 4,\n};\n\nconst LinkTargetStringMap = [\n  '',\n  '_self',\n  '_blank',\n  '_parent',\n  '_top'\n];\n\n/**\n * @typedef ExternalLinkParameters\n * @typedef {Object} ExternalLinkParameters\n * @property {string} url - An absolute URL.\n * @property {LinkTarget} target - (optional) The link target.\n *   The default value is `LinkTarget.NONE`.\n * @property {string} rel - (optional) The link relationship.\n *   The default value is `DEFAULT_LINK_REL`.\n */\n\n/**\n * Adds various attributes (href, title, target, rel) to hyperlinks.\n * @param {HTMLLinkElement} link - The link element.\n * @param {ExternalLinkParameters} params\n */\nfunction addLinkAttributes(link, { url, target, rel, } = {}) {\n  link.href = link.title = (url ? removeNullCharacters(url) : '');\n\n  if (url) {\n    const LinkTargetValues = Object.values(LinkTarget);\n    let targetIndex =\n      LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n    link.target = LinkTargetStringMap[targetIndex];\n\n    link.rel = (typeof rel === 'string' ? rel : DEFAULT_LINK_REL);\n  }\n}\n\n// Gets the file name from a given URL.\nfunction getFilenameFromUrl(url) {\n  var anchor = url.indexOf('#');\n  var query = url.indexOf('?');\n  var end = Math.min(\n    anchor > 0 ? anchor : url.length,\n    query > 0 ? query : url.length);\n  return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nclass StatTimer {\n  constructor(enable = true) {\n    this.enabled = !!enable;\n    this.started = Object.create(null);\n    this.times = [];\n  }\n\n  time(name) {\n    if (!this.enabled) {\n      return;\n    }\n    if (name in this.started) {\n      warn('Timer is already running for ' + name);\n    }\n    this.started[name] = Date.now();\n  }\n\n  timeEnd(name) {\n    if (!this.enabled) {\n      return;\n    }\n    if (!(name in this.started)) {\n      warn('Timer has not been started for ' + name);\n    }\n    this.times.push({\n      'name': name,\n      'start': this.started[name],\n      'end': Date.now(),\n    });\n    // Remove timer from started so it can be called again.\n    delete this.started[name];\n  }\n\n  toString() {\n    let times = this.times;\n    // Find the longest name for padding purposes.\n    let out = '', longest = 0;\n    for (let i = 0, ii = times.length; i < ii; ++i) {\n      let name = times[i]['name'];\n      if (name.length > longest) {\n        longest = name.length;\n      }\n    }\n    for (let i = 0, ii = times.length; i < ii; ++i) {\n      let span = times[i];\n      let duration = span.end - span.start;\n      out += `${span['name'].padEnd(longest)} ${duration}ms\\n`;\n    }\n    return out;\n  }\n}\n\n/**\n * Helps avoid having to initialize {StatTimer} instances, e.g. one for every\n * page, in cases where the collected stats are not actually being used.\n * This (dummy) class can thus, since all its methods are `static`, be directly\n * shared between multiple call-sites without the need to be initialized first.\n *\n * NOTE: This must implement the same interface as {StatTimer}.\n */\nclass DummyStatTimer {\n  constructor() {\n    unreachable('Cannot initialize DummyStatTimer.');\n  }\n\n  static time(name) {}\n\n  static timeEnd(name) {}\n\n  static toString() {\n    return '';\n  }\n}\n\nfunction loadScript(src) {\n  return new Promise((resolve, reject) => {\n    let script = document.createElement('script');\n    script.src = src;\n\n    script.onload = resolve;\n    script.onerror = function() {\n      reject(new Error(`Cannot load script at: ${script.src}`));\n    };\n    (document.head || document.documentElement).appendChild(script);\n  });\n}\n\nexport {\n  PageViewport,\n  RenderingCancelledException,\n  addLinkAttributes,\n  getFilenameFromUrl,\n  LinkTarget,\n  DEFAULT_LINK_REL,\n  DOMCanvasFactory,\n  DOMCMapReaderFactory,\n  DOMSVGFactory,\n  StatTimer,\n  DummyStatTimer,\n  loadScript,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert, bytesToString, isEvalSupported, shadow, string32, unreachable,\n  UNSUPPORTED_FEATURES, warn\n} from '../shared/util';\n\nclass BaseFontLoader {\n  constructor(docId) {\n    if (this.constructor === BaseFontLoader) {\n      unreachable('Cannot initialize BaseFontLoader.');\n    }\n    this.docId = docId;\n\n    this.nativeFontFaces = [];\n    this.styleElement = null;\n    this.loadingContext = {\n      requests: [],\n      nextRequestId: 0,\n    };\n  }\n\n  addNativeFontFace(nativeFontFace) {\n    this.nativeFontFaces.push(nativeFontFace);\n    document.fonts.add(nativeFontFace);\n  }\n\n  insertRule(rule) {\n    let styleElement = this.styleElement;\n    if (!styleElement) {\n      styleElement = this.styleElement = document.createElement('style');\n      styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n      document.documentElement.getElementsByTagName('head')[0].appendChild(\n        styleElement);\n    }\n\n    const styleSheet = styleElement.sheet;\n    styleSheet.insertRule(rule, styleSheet.cssRules.length);\n  }\n\n  clear() {\n    this.nativeFontFaces.forEach(function(nativeFontFace) {\n      document.fonts.delete(nativeFontFace);\n    });\n    this.nativeFontFaces.length = 0;\n\n    if (this.styleElement) {\n      // Note: ChildNode.remove doesn't throw if the parentNode is undefined.\n      this.styleElement.remove();\n      this.styleElement = null;\n    }\n  }\n\n  bind(fonts, callback) {\n    const rules = [];\n    const fontsToLoad = [];\n    const fontLoadPromises = [];\n    const getNativeFontPromise = function(nativeFontFace) {\n      // Return a promise that is always fulfilled, even when the font fails to\n      // load.\n      return nativeFontFace.loaded.catch(function(reason) {\n        warn(`Failed to load font \"${nativeFontFace.family}\": ${reason}`);\n      });\n    };\n\n    for (const font of fonts) {\n      // Add the font to the DOM only once; skip if the font is already loaded.\n      if (font.attached || font.missingFile) {\n        continue;\n      }\n      font.attached = true;\n\n      if (this.isFontLoadingAPISupported) {\n        const nativeFontFace = font.createNativeFontFace();\n        if (nativeFontFace) {\n          this.addNativeFontFace(nativeFontFace);\n          fontLoadPromises.push(getNativeFontPromise(nativeFontFace));\n        }\n      } else {\n        const rule = font.createFontFaceRule();\n        if (rule) {\n          this.insertRule(rule);\n          rules.push(rule);\n          fontsToLoad.push(font);\n        }\n      }\n    }\n\n    const request = this._queueLoadingCallback(callback);\n    if (this.isFontLoadingAPISupported) {\n      Promise.all(fontLoadPromises).then(request.complete);\n    } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n      this._prepareFontLoadEvent(rules, fontsToLoad, request);\n    } else {\n      request.complete();\n    }\n  }\n\n  _queueLoadingCallback(callback) {\n    function completeRequest() {\n      assert(!request.done, 'completeRequest() cannot be called twice.');\n      request.done = true;\n\n      // Sending all completed requests in order of how they were queued.\n      while (context.requests.length > 0 && context.requests[0].done) {\n        const otherRequest = context.requests.shift();\n        setTimeout(otherRequest.callback, 0);\n      }\n    }\n\n    const context = this.loadingContext;\n    const request = {\n      id: `pdfjs-font-loading-${context.nextRequestId++}`,\n      done: false,\n      complete: completeRequest,\n      callback,\n    };\n    context.requests.push(request);\n    return request;\n  }\n\n  get isFontLoadingAPISupported() {\n    unreachable('Abstract method `isFontLoadingAPISupported`.');\n  }\n\n  get isSyncFontLoadingSupported() {\n    unreachable('Abstract method `isSyncFontLoadingSupported`.');\n  }\n\n  get _loadTestFont() {\n    unreachable('Abstract method `_loadTestFont`.');\n  }\n\n  _prepareFontLoadEvent(rules, fontsToLoad, request) {\n    unreachable('Abstract method `_prepareFontLoadEvent`.');\n  }\n}\n\nlet FontLoader;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n\nFontLoader = class MozcentralFontLoader extends BaseFontLoader {\n  get isFontLoadingAPISupported() {\n    return shadow(this, 'isFontLoadingAPISupported',\n                  typeof document !== 'undefined' && !!document.fonts);\n  }\n\n  get isSyncFontLoadingSupported() {\n    return shadow(this, 'isSyncFontLoadingSupported', true);\n  }\n};\n\n} else { // PDFJSDev.test('CHROME || GENERIC')\n\nFontLoader = class GenericFontLoader extends BaseFontLoader {\n  constructor(docId) {\n    super(docId);\n    this.loadTestFontId = 0;\n  }\n\n  get isFontLoadingAPISupported() {\n    let supported = (typeof document !== 'undefined' && !!document.fonts);\n\n    if ((typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) &&\n        (supported && typeof navigator !== 'undefined')) {\n      // The Firefox Font Loading API does not work with `mozPrintCallback`\n      // prior to version 63; see https://bugzilla.mozilla.org/show_bug.cgi?id=1473742\n      const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n      if (m && m[1] < 63) {\n        supported = false;\n      }\n    }\n    return shadow(this, 'isFontLoadingAPISupported', supported);\n  }\n\n  get isSyncFontLoadingSupported() {\n    let supported = false;\n    if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {\n      if (typeof navigator === 'undefined') {\n        // Node.js - we can pretend that sync font loading is supported.\n        supported = true;\n      } else {\n        // User agent string sniffing is bad, but there is no reliable way to\n        // tell if the font is fully loaded and ready to be used with canvas.\n        const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n        if (m && m[1] >= 14) {\n          supported = true;\n        }\n        // TODO - other browsers...\n      }\n    }\n    return shadow(this, 'isSyncFontLoadingSupported', supported);\n  }\n\n  get _loadTestFont() {\n    const getLoadTestFont = function() {\n      // This is a CFF font with 1 glyph for '.' that fills its entire width and\n      // height.\n      return atob(\n        'T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' +\n        'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' +\n        'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' +\n        'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' +\n        'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' +\n        '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' +\n        'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' +\n        'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' +\n        'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' +\n        'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' +\n        'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' +\n        'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' +\n        'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n        'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n        'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n        'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n        'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' +\n        'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' +\n        'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' +\n        'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' +\n        'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' +\n        'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n    };\n    return shadow(this, '_loadTestFont', getLoadTestFont());\n  }\n\n  _prepareFontLoadEvent(rules, fonts, request) {\n    /** Hack begin */\n    // There's currently no event when a font has finished downloading so the\n    // following code is a dirty hack to 'guess' when a font is ready.\n    // It's assumed fonts are loaded in order, so add a known test font after\n    // the desired fonts and then test for the loading of that test font.\n\n    function int32(data, offset) {\n      return (data.charCodeAt(offset) << 24) |\n             (data.charCodeAt(offset + 1) << 16) |\n             (data.charCodeAt(offset + 2) << 8) |\n             (data.charCodeAt(offset + 3) & 0xff);\n    }\n    function spliceString(s, offset, remove, insert) {\n      let chunk1 = s.substring(0, offset);\n      let chunk2 = s.substring(offset + remove);\n      return chunk1 + insert + chunk2;\n    }\n    let i, ii;\n\n    // The temporary canvas is used to determine if fonts are loaded.\n    let canvas = document.createElement('canvas');\n    canvas.width = 1;\n    canvas.height = 1;\n    let ctx = canvas.getContext('2d');\n\n    let called = 0;\n    function isFontReady(name, callback) {\n      called++;\n      // With setTimeout clamping this gives the font ~100ms to load.\n      if (called > 30) {\n        warn('Load test font never loaded.');\n        callback();\n        return;\n      }\n      ctx.font = '30px ' + name;\n      ctx.fillText('.', 0, 20);\n      let imageData = ctx.getImageData(0, 0, 1, 1);\n      if (imageData.data[3] > 0) {\n        callback();\n        return;\n      }\n      setTimeout(isFontReady.bind(null, name, callback));\n    }\n\n    const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n    // Chromium seems to cache fonts based on a hash of the actual font data,\n    // so the font must be modified for each load test else it will appear to\n    // be loaded already.\n    // TODO: This could maybe be made faster by avoiding the btoa of the full\n    // font by splitting it in chunks before hand and padding the font id.\n    let data = this._loadTestFont;\n    let COMMENT_OFFSET = 976; // has to be on 4 byte boundary (for checksum)\n    data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length,\n                        loadTestFontId);\n    // CFF checksum is important for IE, adjusting it\n    let CFF_CHECKSUM_OFFSET = 16;\n    let XXXX_VALUE = 0x58585858; // the \"comment\" filled with 'X'\n    let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n    for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n      checksum = (checksum - XXXX_VALUE + int32(loadTestFontId, i)) | 0;\n    }\n    if (i < loadTestFontId.length) { // align to 4 bytes boundary\n      checksum = (checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i)) | 0;\n    }\n    data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, string32(checksum));\n\n    const url = `url(data:font/opentype;base64,${btoa(data)});`;\n    const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n    this.insertRule(rule);\n\n    let names = [];\n    for (i = 0, ii = fonts.length; i < ii; i++) {\n      names.push(fonts[i].loadedName);\n    }\n    names.push(loadTestFontId);\n\n    let div = document.createElement('div');\n    div.setAttribute('style', 'visibility: hidden;' +\n                              'width: 10px; height: 10px;' +\n                              'position: absolute; top: 0px; left: 0px;');\n    for (i = 0, ii = names.length; i < ii; ++i) {\n      let span = document.createElement('span');\n      span.textContent = 'Hi';\n      span.style.fontFamily = names[i];\n      div.appendChild(span);\n    }\n    document.body.appendChild(div);\n\n    isFontReady(loadTestFontId, function() {\n      document.body.removeChild(div);\n      request.complete();\n    });\n    /** Hack end */\n  }\n};\n\n} // End of PDFJSDev.test('CHROME || GENERIC')\n\nconst IsEvalSupportedCached = {\n  get value() {\n    return shadow(this, 'value', isEvalSupported());\n  },\n};\n\nclass FontFaceObject {\n  constructor(translatedData, { isEvalSupported = true,\n                                disableFontFace = false,\n                                ignoreErrors = false,\n                                onUnsupportedFeature = null,\n                                fontRegistry = null, }) {\n    this.compiledGlyphs = Object.create(null);\n    // importing translated data\n    for (let i in translatedData) {\n      this[i] = translatedData[i];\n    }\n    this.isEvalSupported = isEvalSupported !== false;\n    this.disableFontFace = disableFontFace === true;\n    this.ignoreErrors = ignoreErrors === true;\n    this._onUnsupportedFeature = onUnsupportedFeature;\n    this.fontRegistry = fontRegistry;\n  }\n\n  createNativeFontFace() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const nativeFontFace = new FontFace(this.loadedName, this.data, {});\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this);\n    }\n    return nativeFontFace;\n  }\n\n  createFontFaceRule() {\n    if (!this.data || this.disableFontFace) {\n      return null;\n    }\n    const data = bytesToString(new Uint8Array(this.data));\n    // Add the @font-face rule to the document.\n    const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n    const rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n\n    if (this.fontRegistry) {\n      this.fontRegistry.registerFont(this, url);\n    }\n    return rule;\n  }\n\n  getPathGenerator(objs, character) {\n    if (this.compiledGlyphs[character] !== undefined) {\n      return this.compiledGlyphs[character];\n    }\n\n    let cmds, current;\n    try {\n      cmds = objs.get(this.loadedName + '_path_' + character);\n    } catch (ex) {\n      if (!this.ignoreErrors) {\n        throw ex;\n      }\n      if (this._onUnsupportedFeature) {\n        this._onUnsupportedFeature({ featureId: UNSUPPORTED_FEATURES.font, });\n      }\n      warn(`getPathGenerator - ignoring character: \"${ex}\".`);\n\n      return this.compiledGlyphs[character] = function(c, size) {\n        // No-op function, to allow rendering to continue.\n      };\n    }\n\n    // If we can, compile cmds into JS for MAXIMUM SPEED...\n    if (this.isEvalSupported && IsEvalSupportedCached.value) {\n      let args, js = '';\n      for (let i = 0, ii = cmds.length; i < ii; i++) {\n        current = cmds[i];\n\n        if (current.args !== undefined) {\n          args = current.args.join(',');\n        } else {\n          args = '';\n        }\n        js += 'c.' + current.cmd + '(' + args + ');\\n';\n      }\n      // eslint-disable-next-line no-new-func\n      return this.compiledGlyphs[character] = new Function('c', 'size', js);\n    }\n    // ... but fall back on using Function.prototype.apply() if we're\n    // blocked from using eval() for whatever reason (like CSP policies).\n    return this.compiledGlyphs[character] = function(c, size) {\n      for (let i = 0, ii = cmds.length; i < ii; i++) {\n        current = cmds[i];\n\n        if (current.cmd === 'scale') {\n          current.args = [size, -size];\n        }\n        c[current.cmd].apply(c, current.args);\n      }\n    };\n  }\n}\n\nexport {\n  FontFaceObject,\n  FontLoader,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nlet compatibilityParams = Object.create(null);\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n  const isNodeJS = require('../shared/is_node');\n\n  const userAgent =\n    (typeof navigator !== 'undefined' && navigator.userAgent) || '';\n  const isIE = /Trident/.test(userAgent);\n  const isIOSChrome = /CriOS/.test(userAgent);\n\n  // Checks if possible to use URL.createObjectURL()\n  // Support: IE, Chrome on iOS\n  (function checkOnBlobSupport() {\n    // Sometimes IE and Chrome on iOS losing the data created with\n    // createObjectURL(), see issues #3977 and #8081.\n    if (isIE || isIOSChrome) {\n      compatibilityParams.disableCreateObjectURL = true;\n    }\n  })();\n\n  // Support: Node.js\n  (function checkFontFaceAndImage() {\n    // Node.js is missing native support for `@font-face` and `Image`.\n    if (isNodeJS()) {\n      compatibilityParams.disableFontFace = true;\n      compatibilityParams.nativeImageDecoderSupport = 'none';\n    }\n  })();\n}\n\nexports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, info, isLittleEndian, isNum,\n  OPS, shadow, TextRenderingMode, unreachable, Util, warn\n} from '../shared/util';\nimport { getShadingPatternFromIR, TilingPattern } from './pattern_helper';\n\n// <canvas> contexts store most of the state we need natively.\n// However, PDF needs a bit more state, which we store here.\n\n// Minimal font size that would be used during canvas fillText operations.\nvar MIN_FONT_SIZE = 16;\n// Maximum font size that would be used during canvas fillText operations.\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\n\n// Heuristic value used when enforcing minimum line widths.\nvar MIN_WIDTH_FACTOR = 0.65;\n\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\n\nvar FULL_CHUNK_HEIGHT = 16;\n\nvar IsLittleEndianCached = {\n  get value() {\n    return shadow(IsLittleEndianCached, 'value', isLittleEndian());\n  },\n};\n\nfunction addContextCurrentTransform(ctx) {\n  // If the context doesn't expose a `mozCurrentTransform`, add a JS based one.\n  if (!ctx.mozCurrentTransform) {\n    ctx._originalSave = ctx.save;\n    ctx._originalRestore = ctx.restore;\n    ctx._originalRotate = ctx.rotate;\n    ctx._originalScale = ctx.scale;\n    ctx._originalTranslate = ctx.translate;\n    ctx._originalTransform = ctx.transform;\n    ctx._originalSetTransform = ctx.setTransform;\n\n    ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n    ctx._transformStack = [];\n\n    Object.defineProperty(ctx, 'mozCurrentTransform', {\n      get: function getCurrentTransform() {\n        return this._transformMatrix;\n      },\n    });\n\n    Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n      get: function getCurrentTransformInverse() {\n        // Calculation done using WolframAlpha:\n        // http://www.wolframalpha.com/input/?\n        //   i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}}\n\n        var m = this._transformMatrix;\n        var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n\n        var ad_bc = a * d - b * c;\n        var bc_ad = b * c - a * d;\n\n        return [\n          d / ad_bc,\n          b / bc_ad,\n          c / bc_ad,\n          a / ad_bc,\n          (d * e - c * f) / bc_ad,\n          (b * e - a * f) / ad_bc\n        ];\n      },\n    });\n\n    ctx.save = function ctxSave() {\n      var old = this._transformMatrix;\n      this._transformStack.push(old);\n      this._transformMatrix = old.slice(0, 6);\n\n      this._originalSave();\n    };\n\n    ctx.restore = function ctxRestore() {\n      var prev = this._transformStack.pop();\n      if (prev) {\n        this._transformMatrix = prev;\n        this._originalRestore();\n      }\n    };\n\n    ctx.translate = function ctxTranslate(x, y) {\n      var m = this._transformMatrix;\n      m[4] = m[0] * x + m[2] * y + m[4];\n      m[5] = m[1] * x + m[3] * y + m[5];\n\n      this._originalTranslate(x, y);\n    };\n\n    ctx.scale = function ctxScale(x, y) {\n      var m = this._transformMatrix;\n      m[0] = m[0] * x;\n      m[1] = m[1] * x;\n      m[2] = m[2] * y;\n      m[3] = m[3] * y;\n\n      this._originalScale(x, y);\n    };\n\n    ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * a + m[2] * b,\n        m[1] * a + m[3] * b,\n        m[0] * c + m[2] * d,\n        m[1] * c + m[3] * d,\n        m[0] * e + m[2] * f + m[4],\n        m[1] * e + m[3] * f + m[5]\n      ];\n\n      ctx._originalTransform(a, b, c, d, e, f);\n    };\n\n    ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n      this._transformMatrix = [a, b, c, d, e, f];\n\n      ctx._originalSetTransform(a, b, c, d, e, f);\n    };\n\n    ctx.rotate = function ctxRotate(angle) {\n      var cosValue = Math.cos(angle);\n      var sinValue = Math.sin(angle);\n\n      var m = this._transformMatrix;\n      this._transformMatrix = [\n        m[0] * cosValue + m[2] * sinValue,\n        m[1] * cosValue + m[3] * sinValue,\n        m[0] * (-sinValue) + m[2] * cosValue,\n        m[1] * (-sinValue) + m[3] * cosValue,\n        m[4],\n        m[5]\n      ];\n\n      this._originalRotate(angle);\n    };\n  }\n}\n\nvar CachedCanvases = (function CachedCanvasesClosure() {\n  function CachedCanvases(canvasFactory) {\n    this.canvasFactory = canvasFactory;\n    this.cache = Object.create(null);\n  }\n  CachedCanvases.prototype = {\n    getCanvas: function CachedCanvases_getCanvas(id, width, height,\n                                                 trackTransform) {\n      var canvasEntry;\n      if (this.cache[id] !== undefined) {\n        canvasEntry = this.cache[id];\n        this.canvasFactory.reset(canvasEntry, width, height);\n        // reset canvas transform for emulated mozCurrentTransform, if needed\n        canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n      } else {\n        canvasEntry = this.canvasFactory.create(width, height);\n        this.cache[id] = canvasEntry;\n      }\n      if (trackTransform) {\n        addContextCurrentTransform(canvasEntry.context);\n      }\n      return canvasEntry;\n    },\n    clear() {\n      for (var id in this.cache) {\n        var canvasEntry = this.cache[id];\n        this.canvasFactory.destroy(canvasEntry);\n        delete this.cache[id];\n      }\n    },\n  };\n  return CachedCanvases;\n})();\n\nfunction compileType3Glyph(imgData) {\n  var POINT_TO_PROCESS_LIMIT = 1000;\n\n  var width = imgData.width, height = imgData.height;\n  var i, j, j0, width1 = width + 1;\n  var points = new Uint8Array(width1 * (height + 1));\n  var POINT_TYPES =\n      new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n\n  // decodes bit-packed mask data\n  var lineSize = (width + 7) & ~7, data0 = imgData.data;\n  var data = new Uint8Array(lineSize * height), pos = 0, ii;\n  for (i = 0, ii = data0.length; i < ii; i++) {\n    var mask = 128, elem = data0[i];\n    while (mask > 0) {\n      data[pos++] = (elem & mask) ? 0 : 255;\n      mask >>= 1;\n    }\n  }\n\n  // finding interesting points: every point is located between mask pixels,\n  // so there will be points of the (width + 1)x(height + 1) grid. Every point\n  // will have flags assigned based on neighboring mask pixels:\n  //   4 | 8\n  //   --P--\n  //   2 | 1\n  // We are interested only in points with the flags:\n  //   - outside corners: 1, 2, 4, 8;\n  //   - inside corners: 7, 11, 13, 14;\n  //   - and, intersections: 5, 10.\n  var count = 0;\n  pos = 0;\n  if (data[pos] !== 0) {\n    points[0] = 1;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j] = data[pos] ? 2 : 1;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j] = 2;\n    ++count;\n  }\n  for (i = 1; i < height; i++) {\n    pos = i * lineSize;\n    j0 = i * width1;\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0] = data[pos] ? 1 : 8;\n      ++count;\n    }\n    // 'sum' is the position of the current pixel configuration in the 'TYPES'\n    // array (in order 8-1-2-4, so we can use '>>2' to shift the column).\n    var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n    for (j = 1; j < width; j++) {\n      sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) +\n            (data[pos - lineSize + 1] ? 8 : 0);\n      if (POINT_TYPES[sum]) {\n        points[j0 + j] = POINT_TYPES[sum];\n        ++count;\n      }\n      pos++;\n    }\n    if (data[pos - lineSize] !== data[pos]) {\n      points[j0 + j] = data[pos] ? 2 : 4;\n      ++count;\n    }\n\n    if (count > POINT_TO_PROCESS_LIMIT) {\n      return null;\n    }\n  }\n\n  pos = lineSize * (height - 1);\n  j0 = i * width1;\n  if (data[pos] !== 0) {\n    points[j0] = 8;\n    ++count;\n  }\n  for (j = 1; j < width; j++) {\n    if (data[pos] !== data[pos + 1]) {\n      points[j0 + j] = data[pos] ? 4 : 8;\n      ++count;\n    }\n    pos++;\n  }\n  if (data[pos] !== 0) {\n    points[j0 + j] = 4;\n    ++count;\n  }\n  if (count > POINT_TO_PROCESS_LIMIT) {\n    return null;\n  }\n\n  // building outlines\n  var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n  var outlines = [];\n  for (i = 0; count && i <= height; i++) {\n    var p = i * width1;\n    var end = p + width;\n    while (p < end && !points[p]) {\n      p++;\n    }\n    if (p === end) {\n      continue;\n    }\n    var coords = [p % width1, i];\n\n    var type = points[p], p0 = p, pp;\n    do {\n      var step = steps[type];\n      do {\n        p += step;\n      } while (!points[p]);\n\n      pp = points[p];\n      if (pp !== 5 && pp !== 10) {\n        // set new direction\n        type = pp;\n        // delete mark\n        points[p] = 0;\n      } else { // type is 5 or 10, ie, a crossing\n        // set new direction\n        type = pp & ((0x33 * type) >> 4);\n        // set new type for \"future hit\"\n        points[p] &= (type >> 2 | type << 2);\n      }\n\n      coords.push(p % width1);\n      coords.push((p / width1) | 0);\n      --count;\n    } while (p0 !== p);\n    outlines.push(coords);\n    --i;\n  }\n\n  var drawOutline = function(c) {\n    c.save();\n    // the path shall be painted in [0..1]x[0..1] space\n    c.scale(1 / width, -1 / height);\n    c.translate(0, -height);\n    c.beginPath();\n    for (var i = 0, ii = outlines.length; i < ii; i++) {\n      var o = outlines[i];\n      c.moveTo(o[0], o[1]);\n      for (var j = 2, jj = o.length; j < jj; j += 2) {\n        c.lineTo(o[j], o[j + 1]);\n      }\n    }\n    c.fill();\n    c.beginPath();\n    c.restore();\n  };\n\n  return drawOutline;\n}\n\nvar CanvasExtraState = (function CanvasExtraStateClosure() {\n  function CanvasExtraState() {\n    // Are soft masks and alpha values shapes or opacities?\n    this.alphaIsShape = false;\n    this.fontSize = 0;\n    this.fontSizeScale = 1;\n    this.textMatrix = IDENTITY_MATRIX;\n    this.textMatrixScale = 1;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRenderingMode = TextRenderingMode.FILL;\n    this.textRise = 0;\n    // Default fore and background colors\n    this.fillColor = '#000000';\n    this.strokeColor = '#000000';\n    this.patternFill = false;\n    // Note: fill alpha applies to all non-stroking operations\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.activeSMask = null;\n    this.resumeSMaskCtx = null; // nonclonable field (see the save method below)\n  }\n\n  CanvasExtraState.prototype = {\n    clone: function CanvasExtraState_clone() {\n      return Object.create(this);\n    },\n    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    },\n  };\n  return CanvasExtraState;\n})();\n\nvar CanvasGraphics = (function CanvasGraphicsClosure() {\n  // Defines the time the executeOperatorList is going to be executing\n  // before it stops and shedules a continue of execution.\n  var EXECUTION_TIME = 15;\n  // Defines the number of steps before checking the execution time\n  var EXECUTION_STEPS = 10;\n\n  function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory,\n                          webGLContext, imageLayer) {\n    this.ctx = canvasCtx;\n    this.current = new CanvasExtraState();\n    this.stateStack = [];\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n    this.res = null;\n    this.xobjs = null;\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.canvasFactory = canvasFactory;\n    this.webGLContext = webGLContext;\n    this.imageLayer = imageLayer;\n    this.groupStack = [];\n    this.processingType3 = null;\n    // Patterns are painted relative to the initial page/form transform, see pdf\n    // spec 8.7.2 NOTE 1.\n    this.baseTransform = null;\n    this.baseTransformStack = [];\n    this.groupLevel = 0;\n    this.smaskStack = [];\n    this.smaskCounter = 0;\n    this.tempSMask = null;\n    this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n    if (canvasCtx) {\n      // NOTE: if mozCurrentTransform is polyfilled, then the current state of\n      // the transformation must already be set in canvasCtx._transformMatrix.\n      addContextCurrentTransform(canvasCtx);\n    }\n    this._cachedGetSinglePixelWidth = null;\n  }\n\n  function putBinaryImageData(ctx, imgData) {\n    if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n      ctx.putImageData(imgData, 0, 0);\n      return;\n    }\n\n    // Put the image data to the canvas in chunks, rather than putting the\n    // whole image at once.  This saves JS memory, because the ImageData object\n    // is smaller. It also possibly saves C++ memory within the implementation\n    // of putImageData(). (E.g. in Firefox we make two short-lived copies of\n    // the data passed to putImageData()). |n| shouldn't be too small, however,\n    // because too many putImageData() calls will slow things down.\n    //\n    // Note: as written, if the last chunk is partial, the putImageData() call\n    // will (conceptually) put pixels past the bounds of the canvas.  But\n    // that's ok; any such pixels are ignored.\n\n    var height = imgData.height, width = imgData.width;\n    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n    var srcPos = 0, destPos;\n    var src = imgData.data;\n    var dest = chunkImgData.data;\n    var i, j, thisChunkHeight, elemsInThisChunk;\n\n    // There are multiple forms in which the pixel data can be passed, and\n    // imgData.kind tells us which one this is.\n    if (imgData.kind === ImageKind.GRAYSCALE_1BPP) {\n      // Grayscale, 1 bit per pixel (i.e. black-and-white).\n      var srcLength = src.byteLength;\n      var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n      var dest32DataLength = dest32.length;\n      var fullSrcDiff = (width + 7) >> 3;\n      var white = 0xFFFFFFFF;\n      var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;\n      for (i = 0; i < totalChunks; i++) {\n        thisChunkHeight =\n          (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n        destPos = 0;\n        for (j = 0; j < thisChunkHeight; j++) {\n          var srcDiff = srcLength - srcPos;\n          var k = 0;\n          var kEnd = (srcDiff > fullSrcDiff) ? width : srcDiff * 8 - 7;\n          var kEndUnrolled = kEnd & ~7;\n          var mask = 0;\n          var srcByte = 0;\n          for (; k < kEndUnrolled; k += 8) {\n            srcByte = src[srcPos++];\n            dest32[destPos++] = (srcByte & 128) ? white : black;\n            dest32[destPos++] = (srcByte & 64) ? white : black;\n            dest32[destPos++] = (srcByte & 32) ? white : black;\n            dest32[destPos++] = (srcByte & 16) ? white : black;\n            dest32[destPos++] = (srcByte & 8) ? white : black;\n            dest32[destPos++] = (srcByte & 4) ? white : black;\n            dest32[destPos++] = (srcByte & 2) ? white : black;\n            dest32[destPos++] = (srcByte & 1) ? white : black;\n          }\n          for (; k < kEnd; k++) {\n             if (mask === 0) {\n               srcByte = src[srcPos++];\n               mask = 128;\n             }\n\n            dest32[destPos++] = (srcByte & mask) ? white : black;\n            mask >>= 1;\n          }\n        }\n        // We ran out of input. Make all remaining pixels transparent.\n        while (destPos < dest32DataLength) {\n          dest32[destPos++] = 0;\n        }\n\n        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n      }\n    } else if (imgData.kind === ImageKind.RGBA_32BPP) {\n      // RGBA, 32-bits per pixel.\n\n      j = 0;\n      elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n      for (i = 0; i < fullChunks; i++) {\n        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n        srcPos += elemsInThisChunk;\n\n        ctx.putImageData(chunkImgData, 0, j);\n        j += FULL_CHUNK_HEIGHT;\n      }\n      if (i < totalChunks) {\n        elemsInThisChunk = width * partialChunkHeight * 4;\n        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n        ctx.putImageData(chunkImgData, 0, j);\n      }\n\n    } else if (imgData.kind === ImageKind.RGB_24BPP) {\n      // RGB, 24-bits per pixel.\n      thisChunkHeight = FULL_CHUNK_HEIGHT;\n      elemsInThisChunk = width * thisChunkHeight;\n      for (i = 0; i < totalChunks; i++) {\n        if (i >= fullChunks) {\n          thisChunkHeight = partialChunkHeight;\n          elemsInThisChunk = width * thisChunkHeight;\n        }\n\n        destPos = 0;\n        for (j = elemsInThisChunk; j--;) {\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = src[srcPos++];\n          dest[destPos++] = 255;\n        }\n        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n      }\n    } else {\n      throw new Error(`bad image kind: ${imgData.kind}`);\n    }\n  }\n\n  function putBinaryImageMask(ctx, imgData) {\n    var height = imgData.height, width = imgData.width;\n    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n\n    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n    var srcPos = 0;\n    var src = imgData.data;\n    var dest = chunkImgData.data;\n\n    for (var i = 0; i < totalChunks; i++) {\n      var thisChunkHeight =\n        (i < fullChunks) ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n\n      // Expand the mask so it can be used by the canvas.  Any required\n      // inversion has already been handled.\n      var destPos = 3; // alpha component offset\n      for (var j = 0; j < thisChunkHeight; j++) {\n        var mask = 0;\n        for (var k = 0; k < width; k++) {\n          if (!mask) {\n            var elem = src[srcPos++];\n            mask = 128;\n          }\n          dest[destPos] = (elem & mask) ? 0 : 255;\n          destPos += 4;\n          mask >>= 1;\n        }\n      }\n      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n    }\n  }\n\n  function copyCtxState(sourceCtx, destCtx) {\n    var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha',\n                      'lineWidth', 'lineCap', 'lineJoin', 'miterLimit',\n                      'globalCompositeOperation', 'font'];\n    for (var i = 0, ii = properties.length; i < ii; i++) {\n      var property = properties[i];\n      if (sourceCtx[property] !== undefined) {\n        destCtx[property] = sourceCtx[property];\n      }\n    }\n    if (sourceCtx.setLineDash !== undefined) {\n      destCtx.setLineDash(sourceCtx.getLineDash());\n      destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n    }\n  }\n\n  function resetCtxToDefault(ctx) {\n    ctx.strokeStyle = '#000000';\n    ctx.fillStyle = '#000000';\n    ctx.fillRule = 'nonzero';\n    ctx.globalAlpha = 1;\n    ctx.lineWidth = 1;\n    ctx.lineCap = 'butt';\n    ctx.lineJoin = 'miter';\n    ctx.miterLimit = 10;\n    ctx.globalCompositeOperation = 'source-over';\n    ctx.font = '10px sans-serif';\n    if (ctx.setLineDash !== undefined) {\n      ctx.setLineDash([]);\n      ctx.lineDashOffset = 0;\n    }\n  }\n\n  function composeSMaskBackdrop(bytes, r0, g0, b0) {\n    var length = bytes.length;\n    for (var i = 3; i < length; i += 4) {\n      var alpha = bytes[i];\n      if (alpha === 0) {\n        bytes[i - 3] = r0;\n        bytes[i - 2] = g0;\n        bytes[i - 1] = b0;\n      } else if (alpha < 255) {\n        var alpha_ = 255 - alpha;\n        bytes[i - 3] = (bytes[i - 3] * alpha + r0 * alpha_) >> 8;\n        bytes[i - 2] = (bytes[i - 2] * alpha + g0 * alpha_) >> 8;\n        bytes[i - 1] = (bytes[i - 1] * alpha + b0 * alpha_) >> 8;\n      }\n    }\n  }\n\n  function composeSMaskAlpha(maskData, layerData, transferMap) {\n    var length = maskData.length;\n    var scale = 1 / 255;\n    for (var i = 3; i < length; i += 4) {\n      var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n      layerData[i] = (layerData[i] * alpha * scale) | 0;\n    }\n  }\n\n  function composeSMaskLuminosity(maskData, layerData, transferMap) {\n    var length = maskData.length;\n    for (var i = 3; i < length; i += 4) {\n      var y = (maskData[i - 3] * 77) +  // * 0.3 / 255 * 0x10000\n              (maskData[i - 2] * 152) + // * 0.59 ....\n              (maskData[i - 1] * 28);   // * 0.11 ....\n      layerData[i] = transferMap ?\n        (layerData[i] * transferMap[y >> 8]) >> 8 :\n        (layerData[i] * y) >> 16;\n    }\n  }\n\n  function genericComposeSMask(maskCtx, layerCtx, width, height,\n                               subtype, backdrop, transferMap) {\n    var hasBackdrop = !!backdrop;\n    var r0 = hasBackdrop ? backdrop[0] : 0;\n    var g0 = hasBackdrop ? backdrop[1] : 0;\n    var b0 = hasBackdrop ? backdrop[2] : 0;\n\n    var composeFn;\n    if (subtype === 'Luminosity') {\n      composeFn = composeSMaskLuminosity;\n    } else {\n      composeFn = composeSMaskAlpha;\n    }\n\n    // processing image in chunks to save memory\n    var PIXELS_TO_PROCESS = 1048576;\n    var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n    for (var row = 0; row < height; row += chunkSize) {\n      var chunkHeight = Math.min(chunkSize, height - row);\n      var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n      var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n\n      if (hasBackdrop) {\n        composeSMaskBackdrop(maskData.data, r0, g0, b0);\n      }\n      composeFn(maskData.data, layerData.data, transferMap);\n\n      maskCtx.putImageData(layerData, 0, row);\n    }\n  }\n\n  function composeSMask(ctx, smask, layerCtx, webGLContext) {\n    var mask = smask.canvas;\n    var maskCtx = smask.context;\n\n    ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY,\n                     smask.offsetX, smask.offsetY);\n\n    var backdrop = smask.backdrop || null;\n    if (!smask.transferMap && webGLContext.isEnabled) {\n      let composed = webGLContext.composeSMask({\n        layer: layerCtx.canvas,\n        mask,\n        properties: {\n          subtype: smask.subtype,\n          backdrop,\n        },\n      });\n      ctx.setTransform(1, 0, 0, 1, 0, 0);\n      ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n      return;\n    }\n    genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height,\n                        smask.subtype, backdrop, smask.transferMap);\n    ctx.drawImage(mask, 0, 0);\n  }\n\n  var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n  var NORMAL_CLIP = {};\n  var EO_CLIP = {};\n\n  CanvasGraphics.prototype = {\n\n    beginDrawing({ transform, viewport, transparency,\n                   background = null, }) {\n      // For pdfs that use blend modes we have to clear the canvas else certain\n      // blend modes can look wrong since we'd be blending with a white\n      // backdrop. The problem with a transparent backdrop though is we then\n      // don't get sub pixel anti aliasing on text, creating temporary\n      // transparent canvas when we have blend modes.\n      var width = this.ctx.canvas.width;\n      var height = this.ctx.canvas.height;\n\n      this.ctx.save();\n      this.ctx.fillStyle = background || 'rgb(255, 255, 255)';\n      this.ctx.fillRect(0, 0, width, height);\n      this.ctx.restore();\n\n      if (transparency) {\n        var transparentCanvas = this.cachedCanvases.getCanvas(\n          'transparent', width, height, true);\n        this.compositeCtx = this.ctx;\n        this.transparentCanvas = transparentCanvas.canvas;\n        this.ctx = transparentCanvas.context;\n        this.ctx.save();\n        // The transform can be applied before rendering, transferring it to\n        // the new canvas.\n        this.ctx.transform.apply(this.ctx,\n                                 this.compositeCtx.mozCurrentTransform);\n      }\n\n      this.ctx.save();\n      resetCtxToDefault(this.ctx);\n      if (transform) {\n        this.ctx.transform.apply(this.ctx, transform);\n      }\n      this.ctx.transform.apply(this.ctx, viewport.transform);\n\n      this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n      if (this.imageLayer) {\n        this.imageLayer.beginLayout();\n      }\n    },\n\n    executeOperatorList: function CanvasGraphics_executeOperatorList(\n                                    operatorList,\n                                    executionStartIdx, continueCallback,\n                                    stepper) {\n      var argsArray = operatorList.argsArray;\n      var fnArray = operatorList.fnArray;\n      var i = executionStartIdx || 0;\n      var argsArrayLen = argsArray.length;\n\n      // Sometimes the OperatorList to execute is empty.\n      if (argsArrayLen === i) {\n        return i;\n      }\n\n      var chunkOperations = (argsArrayLen - i > EXECUTION_STEPS &&\n                             typeof continueCallback === 'function');\n      var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n      var steps = 0;\n\n      var commonObjs = this.commonObjs;\n      var objs = this.objs;\n      var fnId;\n\n      while (true) {\n        if (stepper !== undefined && i === stepper.nextBreakPoint) {\n          stepper.breakIt(i, continueCallback);\n          return i;\n        }\n\n        fnId = fnArray[i];\n\n        if (fnId !== OPS.dependency) {\n          this[fnId].apply(this, argsArray[i]);\n        } else {\n          var deps = argsArray[i];\n          for (var n = 0, nn = deps.length; n < nn; n++) {\n            var depObjId = deps[n];\n            var common = depObjId[0] === 'g' && depObjId[1] === '_';\n            var objsPool = common ? commonObjs : objs;\n\n            // If the promise isn't resolved yet, add the continueCallback\n            // to the promise and bail out.\n            if (!objsPool.isResolved(depObjId)) {\n              objsPool.get(depObjId, continueCallback);\n              return i;\n            }\n          }\n        }\n\n        i++;\n\n        // If the entire operatorList was executed, stop as were done.\n        if (i === argsArrayLen) {\n          return i;\n        }\n\n        // If the execution took longer then a certain amount of time and\n        // `continueCallback` is specified, interrupt the execution.\n        if (chunkOperations && ++steps > EXECUTION_STEPS) {\n          if (Date.now() > endTime) {\n            continueCallback();\n            return i;\n          }\n          steps = 0;\n        }\n\n        // If the operatorList isn't executed completely yet OR the execution\n        // time was short enough, do another execution round.\n      }\n    },\n\n    endDrawing: function CanvasGraphics_endDrawing() {\n      // Finishing all opened operations such as SMask group painting.\n      if (this.current.activeSMask !== null) {\n        this.endSMaskGroup();\n      }\n\n      this.ctx.restore();\n\n      if (this.transparentCanvas) {\n        this.ctx = this.compositeCtx;\n        this.ctx.save();\n        this.ctx.setTransform(1, 0, 0, 1, 0, 0); // Avoid apply transform twice\n        this.ctx.drawImage(this.transparentCanvas, 0, 0);\n        this.ctx.restore();\n        this.transparentCanvas = null;\n      }\n\n      this.cachedCanvases.clear();\n      this.webGLContext.clear();\n\n      if (this.imageLayer) {\n        this.imageLayer.endLayout();\n      }\n    },\n\n    // Graphics state\n    setLineWidth: function CanvasGraphics_setLineWidth(width) {\n      this.current.lineWidth = width;\n      this.ctx.lineWidth = width;\n    },\n    setLineCap: function CanvasGraphics_setLineCap(style) {\n      this.ctx.lineCap = LINE_CAP_STYLES[style];\n    },\n    setLineJoin: function CanvasGraphics_setLineJoin(style) {\n      this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n    },\n    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n      this.ctx.miterLimit = limit;\n    },\n    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n      var ctx = this.ctx;\n      if (ctx.setLineDash !== undefined) {\n        ctx.setLineDash(dashArray);\n        ctx.lineDashOffset = dashPhase;\n      }\n    },\n    setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {\n      // Maybe if we one day fully support color spaces this will be important\n      // for now we can ignore.\n      // TODO set rendering intent?\n    },\n    setFlatness: function CanvasGraphics_setFlatness(flatness) {\n      // There's no way to control this with canvas, but we can safely ignore.\n      // TODO set flatness?\n    },\n    setGState: function CanvasGraphics_setGState(states) {\n      for (var i = 0, ii = states.length; i < ii; i++) {\n        var state = states[i];\n        var key = state[0];\n        var value = state[1];\n\n        switch (key) {\n          case 'LW':\n            this.setLineWidth(value);\n            break;\n          case 'LC':\n            this.setLineCap(value);\n            break;\n          case 'LJ':\n            this.setLineJoin(value);\n            break;\n          case 'ML':\n            this.setMiterLimit(value);\n            break;\n          case 'D':\n            this.setDash(value[0], value[1]);\n            break;\n          case 'RI':\n            this.setRenderingIntent(value);\n            break;\n          case 'FL':\n            this.setFlatness(value);\n            break;\n          case 'Font':\n            this.setFont(value[0], value[1]);\n            break;\n          case 'CA':\n            this.current.strokeAlpha = state[1];\n            break;\n          case 'ca':\n            this.current.fillAlpha = state[1];\n            this.ctx.globalAlpha = state[1];\n            break;\n          case 'BM':\n            this.ctx.globalCompositeOperation = value;\n            break;\n          case 'SMask':\n            if (this.current.activeSMask) {\n              // If SMask is currrenly used, it needs to be suspended or\n              // finished. Suspend only makes sense when at least one save()\n              // was performed and state needs to be reverted on restore().\n              if (this.stateStack.length > 0 &&\n                  (this.stateStack[this.stateStack.length - 1].activeSMask ===\n                   this.current.activeSMask)) {\n                this.suspendSMaskGroup();\n              } else {\n                this.endSMaskGroup();\n              }\n            }\n            this.current.activeSMask = value ? this.tempSMask : null;\n            if (this.current.activeSMask) {\n              this.beginSMaskGroup();\n            }\n            this.tempSMask = null;\n            break;\n        }\n      }\n    },\n    beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n\n      var activeSMask = this.current.activeSMask;\n      var drawnWidth = activeSMask.canvas.width;\n      var drawnHeight = activeSMask.canvas.height;\n      var cacheId = 'smaskGroupAt' + this.groupLevel;\n      var scratchCanvas = this.cachedCanvases.getCanvas(\n        cacheId, drawnWidth, drawnHeight, true);\n\n      var currentCtx = this.ctx;\n      var currentTransform = currentCtx.mozCurrentTransform;\n      this.ctx.save();\n\n      var groupCtx = scratchCanvas.context;\n      groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n      groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n      groupCtx.transform.apply(groupCtx, currentTransform);\n\n      activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n\n      copyCtxState(currentCtx, groupCtx);\n      this.ctx = groupCtx;\n      this.setGState([\n        ['BM', 'source-over'],\n        ['ca', 1],\n        ['CA', 1]\n      ]);\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n    },\n    suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      // Similar to endSMaskGroup, the intermediate canvas has to be composed\n      // and future ctx state restored.\n      var groupCtx = this.ctx;\n      this.groupLevel--;\n      this.ctx = this.groupStack.pop();\n\n      composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n                   this.webGLContext);\n      this.ctx.restore();\n      this.ctx.save(); // save is needed since SMask will be resumed.\n      copyCtxState(groupCtx, this.ctx);\n\n      // Saving state for resuming.\n      this.current.resumeSMaskCtx = groupCtx;\n      // Transform was changed in the SMask canvas, reflecting this change on\n      // this.ctx.\n      var deltaTransform = Util.transform(\n        this.current.activeSMask.startTransformInverse,\n        groupCtx.mozCurrentTransform);\n      this.ctx.transform.apply(this.ctx, deltaTransform);\n\n      // SMask was composed, the results at the groupCtx can be cleared.\n      groupCtx.save();\n      groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n      groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n      groupCtx.restore();\n    },\n    resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      // Resuming state saved by suspendSMaskGroup. We don't need to restore\n      // any groupCtx state since restore() command (the only caller) will do\n      // that for us. See also beginSMaskGroup.\n      var groupCtx = this.current.resumeSMaskCtx;\n      var currentCtx = this.ctx;\n      this.ctx = groupCtx;\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n    },\n    endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n      var groupCtx = this.ctx;\n      this.groupLevel--;\n      this.ctx = this.groupStack.pop();\n\n      composeSMask(this.ctx, this.current.activeSMask, groupCtx,\n                   this.webGLContext);\n      this.ctx.restore();\n      copyCtxState(groupCtx, this.ctx);\n      // Transform was changed in the SMask canvas, reflecting this change on\n      // this.ctx.\n      var deltaTransform = Util.transform(\n        this.current.activeSMask.startTransformInverse,\n        groupCtx.mozCurrentTransform);\n      this.ctx.transform.apply(this.ctx, deltaTransform);\n    },\n    save: function CanvasGraphics_save() {\n      this.ctx.save();\n      var old = this.current;\n      this.stateStack.push(old);\n      this.current = old.clone();\n      this.current.resumeSMaskCtx = null;\n    },\n    restore: function CanvasGraphics_restore() {\n      // SMask was suspended, we just need to resume it.\n      if (this.current.resumeSMaskCtx) {\n        this.resumeSMaskGroup();\n      }\n      // SMask has to be finished once there is no states that are using the\n      // same SMask.\n      if (this.current.activeSMask !== null && (this.stateStack.length === 0 ||\n          this.stateStack[this.stateStack.length - 1].activeSMask !==\n          this.current.activeSMask)) {\n        this.endSMaskGroup();\n      }\n\n      if (this.stateStack.length !== 0) {\n        this.current = this.stateStack.pop();\n        this.ctx.restore();\n\n        // Ensure that the clipping path is reset (fixes issue6413.pdf).\n        this.pendingClip = null;\n\n        this._cachedGetSinglePixelWidth = null;\n      }\n    },\n    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n      this.ctx.transform(a, b, c, d, e, f);\n\n      this._cachedGetSinglePixelWidth = null;\n    },\n\n    // Path\n    constructPath: function CanvasGraphics_constructPath(ops, args) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var x = current.x, y = current.y;\n      for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n        switch (ops[i] | 0) {\n          case OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            var width = args[j++];\n            var height = args[j++];\n            if (width === 0) {\n              width = this.getSinglePixelWidth();\n            }\n            if (height === 0) {\n              height = this.getSinglePixelWidth();\n            }\n            var xw = x + width;\n            var yh = y + height;\n            this.ctx.moveTo(x, y);\n            this.ctx.lineTo(xw, y);\n            this.ctx.lineTo(xw, yh);\n            this.ctx.lineTo(x, yh);\n            this.ctx.lineTo(x, y);\n            this.ctx.closePath();\n            break;\n          case OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            ctx.moveTo(x, y);\n            break;\n          case OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            ctx.lineTo(x, y);\n            break;\n          case OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3],\n                              x, y);\n            j += 6;\n            break;\n          case OPS.curveTo2:\n            ctx.bezierCurveTo(x, y, args[j], args[j + 1],\n                              args[j + 2], args[j + 3]);\n            x = args[j + 2];\n            y = args[j + 3];\n            j += 4;\n            break;\n          case OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n            j += 4;\n            break;\n          case OPS.closePath:\n            ctx.closePath();\n            break;\n        }\n      }\n      current.setCurrentPoint(x, y);\n    },\n    closePath: function CanvasGraphics_closePath() {\n      this.ctx.closePath();\n    },\n    stroke: function CanvasGraphics_stroke(consumePath) {\n      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n      var ctx = this.ctx;\n      var strokeColor = this.current.strokeColor;\n      // Prevent drawing too thin lines by enforcing a minimum line width.\n      ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR,\n                               this.current.lineWidth);\n      // For stroke we want to temporarily change the global alpha to the\n      // stroking alpha.\n      ctx.globalAlpha = this.current.strokeAlpha;\n      if (strokeColor && strokeColor.hasOwnProperty('type') &&\n          strokeColor.type === 'Pattern') {\n        // for patterns, we transform to pattern space, calculate\n        // the pattern, call stroke, and restore to user space\n        ctx.save();\n        ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n        ctx.stroke();\n        ctx.restore();\n      } else {\n        ctx.stroke();\n      }\n      if (consumePath) {\n        this.consumePath();\n      }\n      // Restore the global alpha to the fill alpha\n      ctx.globalAlpha = this.current.fillAlpha;\n    },\n    closeStroke: function CanvasGraphics_closeStroke() {\n      this.closePath();\n      this.stroke();\n    },\n    fill: function CanvasGraphics_fill(consumePath) {\n      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n      var ctx = this.ctx;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n      var needRestore = false;\n\n      if (isPatternFill) {\n        ctx.save();\n        if (this.baseTransform) {\n          ctx.setTransform.apply(ctx, this.baseTransform);\n        }\n        ctx.fillStyle = fillColor.getPattern(ctx, this);\n        needRestore = true;\n      }\n\n      if (this.pendingEOFill) {\n        ctx.fill('evenodd');\n        this.pendingEOFill = false;\n      } else {\n        ctx.fill();\n      }\n\n      if (needRestore) {\n        ctx.restore();\n      }\n      if (consumePath) {\n        this.consumePath();\n      }\n    },\n    eoFill: function CanvasGraphics_eoFill() {\n      this.pendingEOFill = true;\n      this.fill();\n    },\n    fillStroke: function CanvasGraphics_fillStroke() {\n      this.fill(false);\n      this.stroke(false);\n\n      this.consumePath();\n    },\n    eoFillStroke: function CanvasGraphics_eoFillStroke() {\n      this.pendingEOFill = true;\n      this.fillStroke();\n    },\n    closeFillStroke: function CanvasGraphics_closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    },\n    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n      this.pendingEOFill = true;\n      this.closePath();\n      this.fillStroke();\n    },\n    endPath: function CanvasGraphics_endPath() {\n      this.consumePath();\n    },\n\n    // Clipping\n    clip: function CanvasGraphics_clip() {\n      this.pendingClip = NORMAL_CLIP;\n    },\n    eoClip: function CanvasGraphics_eoClip() {\n      this.pendingClip = EO_CLIP;\n    },\n\n    // Text\n    beginText: function CanvasGraphics_beginText() {\n      this.current.textMatrix = IDENTITY_MATRIX;\n      this.current.textMatrixScale = 1;\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    endText: function CanvasGraphics_endText() {\n      var paths = this.pendingTextPaths;\n      var ctx = this.ctx;\n      if (paths === undefined) {\n        ctx.beginPath();\n        return;\n      }\n\n      ctx.save();\n      ctx.beginPath();\n      for (var i = 0; i < paths.length; i++) {\n        var path = paths[i];\n        ctx.setTransform.apply(ctx, path.transform);\n        ctx.translate(path.x, path.y);\n        path.addToPath(ctx, path.fontSize);\n      }\n      ctx.restore();\n      ctx.clip();\n      ctx.beginPath();\n      delete this.pendingTextPaths;\n    },\n    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n      this.current.charSpacing = spacing;\n    },\n    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n      this.current.wordSpacing = spacing;\n    },\n    setHScale: function CanvasGraphics_setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    },\n    setLeading: function CanvasGraphics_setLeading(leading) {\n      this.current.leading = -leading;\n    },\n    setFont: function CanvasGraphics_setFont(fontRefName, size) {\n      var fontObj = this.commonObjs.get(fontRefName);\n      var current = this.current;\n\n      if (!fontObj) {\n        throw new Error(`Can't find font for ${fontRefName}`);\n      }\n\n      current.fontMatrix = (fontObj.fontMatrix ?\n                            fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n      // A valid matrix needs all main diagonal elements to be non-zero\n      // This also ensures we bypass FF bugzilla bug #719844.\n      if (current.fontMatrix[0] === 0 ||\n          current.fontMatrix[3] === 0) {\n        warn('Invalid font matrix for font ' + fontRefName);\n      }\n\n      // The spec for Tf (setFont) says that 'size' specifies the font 'scale',\n      // and in some docs this can be negative (inverted x-y axes).\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n\n      this.current.font = fontObj;\n      this.current.fontSize = size;\n\n      if (fontObj.isType3Font) {\n        return; // we don't need ctx.font for Type3 fonts\n      }\n\n      var name = fontObj.loadedName || 'sans-serif';\n      var bold = fontObj.black ? '900' : (fontObj.bold ? 'bold' : 'normal');\n      var italic = fontObj.italic ? 'italic' : 'normal';\n      var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n\n      // Some font backends cannot handle fonts below certain size.\n      // Keeping the font at minimal size and using the fontSizeScale to change\n      // the current transformation matrix before the fillText/strokeText.\n      // See https://bugzilla.mozilla.org/show_bug.cgi?id=726227\n      var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE :\n                            size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n      this.current.fontSizeScale = size / browserFontSize;\n\n      var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n      this.ctx.font = rule;\n    },\n    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n      this.current.textRenderingMode = mode;\n    },\n    setTextRise: function CanvasGraphics_setTextRise(rise) {\n      this.current.textRise = rise;\n    },\n    moveText: function CanvasGraphics_moveText(x, y) {\n      this.current.x = this.current.lineX += x;\n      this.current.y = this.current.lineY += y;\n    },\n    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    },\n    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n      this.current.textMatrix = [a, b, c, d, e, f];\n      this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n    },\n    nextLine: function CanvasGraphics_nextLine() {\n      this.moveText(0, this.current.leading);\n    },\n\n    paintChar(character, x, y, patternTransform) {\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var textRenderingMode = current.textRenderingMode;\n      var fontSize = current.fontSize / current.fontSizeScale;\n      var fillStrokeMode = textRenderingMode &\n        TextRenderingMode.FILL_STROKE_MASK;\n      var isAddToPathSet = !!(textRenderingMode &\n        TextRenderingMode.ADD_TO_PATH_FLAG);\n      let patternFill = current.patternFill && font.data;\n\n      var addToPath;\n      if (font.disableFontFace || isAddToPathSet || patternFill) {\n        addToPath = font.getPathGenerator(this.commonObjs, character);\n      }\n\n      if (font.disableFontFace || patternFill) {\n        ctx.save();\n        ctx.translate(x, y);\n        ctx.beginPath();\n        addToPath(ctx, fontSize);\n        if (patternTransform) {\n          ctx.setTransform.apply(ctx, patternTransform);\n        }\n        if (fillStrokeMode === TextRenderingMode.FILL ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.fill();\n        }\n        if (fillStrokeMode === TextRenderingMode.STROKE ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.stroke();\n        }\n        ctx.restore();\n      } else {\n        if (fillStrokeMode === TextRenderingMode.FILL ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.fillText(character, x, y);\n        }\n        if (fillStrokeMode === TextRenderingMode.STROKE ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          ctx.strokeText(character, x, y);\n        }\n      }\n\n      if (isAddToPathSet) {\n        var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n        paths.push({\n          transform: ctx.mozCurrentTransform,\n          x,\n          y,\n          fontSize,\n          addToPath,\n        });\n      }\n    },\n\n    get isFontSubpixelAAEnabled() {\n      // Checks if anti-aliasing is enabled when scaled text is painted.\n      // On Windows GDI scaled fonts looks bad.\n      var ctx = this.canvasFactory.create(10, 10).context;\n      ctx.scale(1.5, 1);\n      ctx.fillText('I', 0, 10);\n      var data = ctx.getImageData(0, 0, 10, 10).data;\n      var enabled = false;\n      for (var i = 3; i < data.length; i += 4) {\n        if (data[i] > 0 && data[i] < 255) {\n          enabled = true;\n          break;\n        }\n      }\n      return shadow(this, 'isFontSubpixelAAEnabled', enabled);\n    },\n\n    showText: function CanvasGraphics_showText(glyphs) {\n      var current = this.current;\n      var font = current.font;\n      if (font.isType3Font) {\n        return this.showType3Text(glyphs);\n      }\n\n      var fontSize = current.fontSize;\n      if (fontSize === 0) {\n        return;\n      }\n\n      var ctx = this.ctx;\n      var fontSizeScale = current.fontSizeScale;\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var fontDirection = current.fontDirection;\n      var textHScale = current.textHScale * fontDirection;\n      var glyphsLength = glyphs.length;\n      var vertical = font.vertical;\n      var spacingDir = vertical ? 1 : -1;\n      var defaultVMetrics = font.defaultVMetrics;\n      var widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n      var simpleFillText =\n        current.textRenderingMode === TextRenderingMode.FILL &&\n        !font.disableFontFace && !current.patternFill;\n\n      ctx.save();\n      let patternTransform;\n      if (current.patternFill) {\n        // TODO: Patterns are not applied correctly to text if a non-embedded\n        // font is used. E.g. issue 8111 and ShowText-ShadingPattern.pdf.\n        ctx.save();\n        let pattern = current.fillColor.getPattern(ctx, this);\n        patternTransform = ctx.mozCurrentTransform;\n        ctx.restore();\n        ctx.fillStyle = pattern;\n      }\n      ctx.transform.apply(ctx, current.textMatrix);\n      ctx.translate(current.x, current.y + current.textRise);\n\n      if (fontDirection > 0) {\n        ctx.scale(textHScale, -1);\n      } else {\n        ctx.scale(textHScale, 1);\n      }\n\n      var lineWidth = current.lineWidth;\n      var scale = current.textMatrixScale;\n      if (scale === 0 || lineWidth === 0) {\n        var fillStrokeMode = current.textRenderingMode &\n          TextRenderingMode.FILL_STROKE_MASK;\n        if (fillStrokeMode === TextRenderingMode.STROKE ||\n            fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n          this._cachedGetSinglePixelWidth = null;\n          lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n        }\n      } else {\n        lineWidth /= scale;\n      }\n\n      if (fontSizeScale !== 1.0) {\n        ctx.scale(fontSizeScale, fontSizeScale);\n        lineWidth /= fontSizeScale;\n      }\n\n      ctx.lineWidth = lineWidth;\n\n      var x = 0, i;\n      for (i = 0; i < glyphsLength; ++i) {\n        var glyph = glyphs[i];\n        if (isNum(glyph)) {\n          x += spacingDir * glyph * fontSize / 1000;\n          continue;\n        }\n\n        var restoreNeeded = false;\n        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        var character = glyph.fontChar;\n        var accent = glyph.accent;\n        var scaledX, scaledY, scaledAccentX, scaledAccentY;\n        var width = glyph.width;\n        if (vertical) {\n          var vmetric, vx, vy;\n          vmetric = glyph.vmetric || defaultVMetrics;\n          vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n          vx = -vx * widthAdvanceScale;\n          vy = vmetric[2] * widthAdvanceScale;\n\n          width = vmetric ? -vmetric[0] : width;\n          scaledX = vx / fontSizeScale;\n          scaledY = (x + vy) / fontSizeScale;\n        } else {\n          scaledX = x / fontSizeScale;\n          scaledY = 0;\n        }\n\n        if (font.remeasure && width > 0) {\n          // Some standard fonts may not have the exact width: rescale per\n          // character if measured width is greater than expected glyph width\n          // and subpixel-aa is enabled, otherwise just center the glyph.\n          var measuredWidth = ctx.measureText(character).width * 1000 /\n            fontSize * fontSizeScale;\n          if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n            var characterScaleX = width / measuredWidth;\n            restoreNeeded = true;\n            ctx.save();\n            ctx.scale(characterScaleX, 1);\n            scaledX /= characterScaleX;\n          } else if (width !== measuredWidth) {\n            scaledX += (width - measuredWidth) / 2000 *\n              fontSize / fontSizeScale;\n          }\n        }\n\n        // Only attempt to draw the glyph if it is actually in the embedded font\n        // file or if there isn't a font file so the fallback font is shown.\n        if (glyph.isInFont || font.missingFile) {\n          if (simpleFillText && !accent) {\n            // common case\n            ctx.fillText(character, scaledX, scaledY);\n          } else {\n            this.paintChar(character, scaledX, scaledY, patternTransform);\n            if (accent) {\n              scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n              scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n              this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY,\n                             patternTransform);\n            }\n          }\n        }\n\n        var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n        x += charWidth;\n\n        if (restoreNeeded) {\n          ctx.restore();\n        }\n      }\n      if (vertical) {\n        current.y -= x * textHScale;\n      } else {\n        current.x += x * textHScale;\n      }\n      ctx.restore();\n    },\n\n    showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n      // Type3 fonts - each glyph is a \"mini-PDF\"\n      var ctx = this.ctx;\n      var current = this.current;\n      var font = current.font;\n      var fontSize = current.fontSize;\n      var fontDirection = current.fontDirection;\n      var spacingDir = font.vertical ? 1 : -1;\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var textHScale = current.textHScale * fontDirection;\n      var fontMatrix = current.fontMatrix || FONT_IDENTITY_MATRIX;\n      var glyphsLength = glyphs.length;\n      var isTextInvisible =\n        current.textRenderingMode === TextRenderingMode.INVISIBLE;\n      var i, glyph, width, spacingLength;\n\n      if (isTextInvisible || fontSize === 0) {\n        return;\n      }\n      this._cachedGetSinglePixelWidth = null;\n\n      ctx.save();\n      ctx.transform.apply(ctx, current.textMatrix);\n      ctx.translate(current.x, current.y);\n\n      ctx.scale(textHScale, fontDirection);\n\n      for (i = 0; i < glyphsLength; ++i) {\n        glyph = glyphs[i];\n        if (isNum(glyph)) {\n          spacingLength = spacingDir * glyph * fontSize / 1000;\n          this.ctx.translate(spacingLength, 0);\n          current.x += spacingLength * textHScale;\n          continue;\n        }\n\n        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        var operatorList = font.charProcOperatorList[glyph.operatorListId];\n        if (!operatorList) {\n          warn(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n          continue;\n        }\n        this.processingType3 = glyph;\n        this.save();\n        ctx.scale(fontSize, fontSize);\n        ctx.transform.apply(ctx, fontMatrix);\n        this.executeOperatorList(operatorList);\n        this.restore();\n\n        var transformed = Util.applyTransform([glyph.width, 0], fontMatrix);\n        width = transformed[0] * fontSize + spacing;\n\n        ctx.translate(width, 0);\n        current.x += width * textHScale;\n      }\n      ctx.restore();\n      this.processingType3 = null;\n    },\n\n    // Type3 fonts\n    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {\n      // We can safely ignore this since the width should be the same\n      // as the width in the Widths array.\n    },\n    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth,\n                                                                        yWidth,\n                                                                        llx,\n                                                                        lly,\n                                                                        urx,\n                                                                        ury) {\n      // TODO According to the spec we're also suppose to ignore any operators\n      // that set color or include images while processing this type3 font.\n      this.ctx.rect(llx, lly, urx - llx, ury - lly);\n      this.clip();\n      this.endPath();\n    },\n\n    // Color\n    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n      var pattern;\n      if (IR[0] === 'TilingPattern') {\n        var color = IR[1];\n        var baseTransform = this.baseTransform ||\n                            this.ctx.mozCurrentTransform.slice();\n        var canvasGraphicsFactory = {\n          createCanvasGraphics: (ctx) => {\n            return new CanvasGraphics(ctx, this.commonObjs, this.objs,\n                                      this.canvasFactory, this.webGLContext);\n          },\n        };\n        pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory,\n                                    baseTransform);\n      } else {\n        pattern = getShadingPatternFromIR(IR);\n      }\n      return pattern;\n    },\n    setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n      this.current.strokeColor = this.getColorN_Pattern(arguments);\n    },\n    setFillColorN: function CanvasGraphics_setFillColorN() {\n      this.current.fillColor = this.getColorN_Pattern(arguments);\n      this.current.patternFill = true;\n    },\n    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.ctx.strokeStyle = color;\n      this.current.strokeColor = color;\n    },\n    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.ctx.fillStyle = color;\n      this.current.fillColor = color;\n      this.current.patternFill = false;\n    },\n\n    shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n      var ctx = this.ctx;\n\n      this.save();\n      var pattern = getShadingPatternFromIR(patternIR);\n      ctx.fillStyle = pattern.getPattern(ctx, this, true);\n\n      var inv = ctx.mozCurrentTransformInverse;\n      if (inv) {\n        var canvas = ctx.canvas;\n        var width = canvas.width;\n        var height = canvas.height;\n\n        var bl = Util.applyTransform([0, 0], inv);\n        var br = Util.applyTransform([0, height], inv);\n        var ul = Util.applyTransform([width, 0], inv);\n        var ur = Util.applyTransform([width, height], inv);\n\n        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n\n        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n      } else {\n        // HACK to draw the gradient onto an infinite rectangle.\n        // PDF gradients are drawn across the entire image while\n        // Canvas only allows gradients to be drawn in a rectangle\n        // The following bug should allow us to remove this.\n        // https://bugzilla.mozilla.org/show_bug.cgi?id=664884\n\n        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n      }\n\n      this.restore();\n    },\n\n    // Images\n    beginInlineImage: function CanvasGraphics_beginInlineImage() {\n      unreachable('Should not call beginInlineImage');\n    },\n    beginImageData: function CanvasGraphics_beginImageData() {\n      unreachable('Should not call beginImageData');\n    },\n\n    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix,\n                                                                        bbox) {\n      this.save();\n      this.baseTransformStack.push(this.baseTransform);\n\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform.apply(this, matrix);\n      }\n\n      this.baseTransform = this.ctx.mozCurrentTransform;\n\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        var width = bbox[2] - bbox[0];\n        var height = bbox[3] - bbox[1];\n        this.ctx.rect(bbox[0], bbox[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n    },\n\n    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n      this.restore();\n      this.baseTransform = this.baseTransformStack.pop();\n    },\n\n    beginGroup: function CanvasGraphics_beginGroup(group) {\n      this.save();\n      var currentCtx = this.ctx;\n      // TODO non-isolated groups - according to Rik at adobe non-isolated\n      // group results aren't usually that different and they even have tools\n      // that ignore this setting. Notes from Rik on implementing:\n      // - When you encounter an transparency group, create a new canvas with\n      // the dimensions of the bbox\n      // - copy the content from the previous canvas to the new canvas\n      // - draw as usual\n      // - remove the backdrop alpha:\n      // alphaNew = 1 - (1 - alpha)/(1 - alphaBackdrop) with 'alpha' the alpha\n      // value of your transparency group and 'alphaBackdrop' the alpha of the\n      // backdrop\n      // - remove background color:\n      // colorNew = color - alphaNew *colorBackdrop /(1 - alphaNew)\n      if (!group.isolated) {\n        info('TODO: Support non-isolated groups.');\n      }\n\n      // TODO knockout - supposedly possible with the clever use of compositing\n      // modes.\n      if (group.knockout) {\n        warn('Knockout groups not supported.');\n      }\n\n      var currentTransform = currentCtx.mozCurrentTransform;\n      if (group.matrix) {\n        currentCtx.transform.apply(currentCtx, group.matrix);\n      }\n      if (!group.bbox) {\n        throw new Error('Bounding box is required.');\n      }\n\n      // Based on the current transform figure out how big the bounding box\n      // will actually be.\n      var bounds = Util.getAxialAlignedBoundingBox(\n                    group.bbox,\n                    currentCtx.mozCurrentTransform);\n      // Clip the bounding box to the current canvas.\n      var canvasBounds = [0,\n                          0,\n                          currentCtx.canvas.width,\n                          currentCtx.canvas.height];\n      bounds = Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n      // Use ceil in case we're between sizes so we don't create canvas that is\n      // too small and make the canvas at least 1x1 pixels.\n      var offsetX = Math.floor(bounds[0]);\n      var offsetY = Math.floor(bounds[1]);\n      var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n      var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n      var scaleX = 1, scaleY = 1;\n      if (drawnWidth > MAX_GROUP_SIZE) {\n        scaleX = drawnWidth / MAX_GROUP_SIZE;\n        drawnWidth = MAX_GROUP_SIZE;\n      }\n      if (drawnHeight > MAX_GROUP_SIZE) {\n        scaleY = drawnHeight / MAX_GROUP_SIZE;\n        drawnHeight = MAX_GROUP_SIZE;\n      }\n\n      var cacheId = 'groupAt' + this.groupLevel;\n      if (group.smask) {\n        // Using two cache entries is case if masks are used one after another.\n        cacheId += '_smask_' + ((this.smaskCounter++) % 2);\n      }\n      var scratchCanvas = this.cachedCanvases.getCanvas(\n        cacheId, drawnWidth, drawnHeight, true);\n      var groupCtx = scratchCanvas.context;\n\n      // Since we created a new canvas that is just the size of the bounding box\n      // we have to translate the group ctx.\n      groupCtx.scale(1 / scaleX, 1 / scaleY);\n      groupCtx.translate(-offsetX, -offsetY);\n      groupCtx.transform.apply(groupCtx, currentTransform);\n\n      if (group.smask) {\n        // Saving state and cached mask to be used in setGState.\n        this.smaskStack.push({\n          canvas: scratchCanvas.canvas,\n          context: groupCtx,\n          offsetX,\n          offsetY,\n          scaleX,\n          scaleY,\n          subtype: group.smask.subtype,\n          backdrop: group.smask.backdrop,\n          transferMap: group.smask.transferMap || null,\n          startTransformInverse: null, // used during suspend operation\n        });\n      } else {\n        // Setup the current ctx so when the group is popped we draw it at the\n        // right location.\n        currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n        currentCtx.translate(offsetX, offsetY);\n        currentCtx.scale(scaleX, scaleY);\n      }\n      // The transparency group inherits all off the current graphics state\n      // except the blend mode, soft mask, and alpha constants.\n      copyCtxState(currentCtx, groupCtx);\n      this.ctx = groupCtx;\n      this.setGState([\n        ['BM', 'source-over'],\n        ['ca', 1],\n        ['CA', 1]\n      ]);\n      this.groupStack.push(currentCtx);\n      this.groupLevel++;\n\n      // Reseting mask state, masks will be applied on restore of the group.\n      this.current.activeSMask = null;\n    },\n\n    endGroup: function CanvasGraphics_endGroup(group) {\n      this.groupLevel--;\n      var groupCtx = this.ctx;\n      this.ctx = this.groupStack.pop();\n      // Turn off image smoothing to avoid sub pixel interpolation which can\n      // look kind of blurry for some pdfs.\n      if (this.ctx.imageSmoothingEnabled !== undefined) {\n        this.ctx.imageSmoothingEnabled = false;\n      } else {\n        this.ctx.mozImageSmoothingEnabled = false;\n      }\n      if (group.smask) {\n        this.tempSMask = this.smaskStack.pop();\n      } else {\n        this.ctx.drawImage(groupCtx.canvas, 0, 0);\n      }\n      this.restore();\n    },\n\n    beginAnnotations: function CanvasGraphics_beginAnnotations() {\n      this.save();\n      if (this.baseTransform) {\n        this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n      }\n    },\n\n    endAnnotations: function CanvasGraphics_endAnnotations() {\n      this.restore();\n    },\n\n    beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform,\n                                                             matrix) {\n      this.save();\n      resetCtxToDefault(this.ctx);\n      this.current = new CanvasExtraState();\n\n      if (Array.isArray(rect) && rect.length === 4) {\n        var width = rect[2] - rect[0];\n        var height = rect[3] - rect[1];\n        this.ctx.rect(rect[0], rect[1], width, height);\n        this.clip();\n        this.endPath();\n      }\n\n      this.transform.apply(this, transform);\n      this.transform.apply(this, matrix);\n    },\n\n    endAnnotation: function CanvasGraphics_endAnnotation() {\n      this.restore();\n    },\n\n    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n      var domImage = this.objs.get(objId);\n      if (!domImage) {\n        warn('Dependent image isn\\'t ready yet');\n        return;\n      }\n\n      this.save();\n\n      var ctx = this.ctx;\n      // scale the image to the unit square\n      ctx.scale(1 / w, -1 / h);\n\n      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height,\n                    0, -h, w, h);\n      if (this.imageLayer) {\n        var currentTransform = ctx.mozCurrentTransformInverse;\n        var position = this.getCanvasPosition(0, 0);\n        this.imageLayer.appendImage({\n          objId,\n          left: position[0],\n          top: position[1],\n          width: w / currentTransform[0],\n          height: h / currentTransform[3],\n        });\n      }\n      this.restore();\n    },\n\n    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n      var ctx = this.ctx;\n      var width = img.width, height = img.height;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n\n      var glyph = this.processingType3;\n\n      if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n        if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n          glyph.compiled =\n            compileType3Glyph({ data: img.data, width, height, });\n        } else {\n          glyph.compiled = null;\n        }\n      }\n\n      if (glyph && glyph.compiled) {\n        glyph.compiled(ctx);\n        return;\n      }\n\n      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n                                                     width, height);\n      var maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageMask(maskCtx, img);\n\n      maskCtx.globalCompositeOperation = 'source-in';\n\n      maskCtx.fillStyle = isPatternFill ?\n                          fillColor.getPattern(maskCtx, this) : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      this.paintInlineImageXObject(maskCanvas.canvas);\n    },\n\n    paintImageMaskXObjectRepeat:\n      function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX,\n                                                          scaleY, positions) {\n      var width = imgData.width;\n      var height = imgData.height;\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n\n      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n                                                     width, height);\n      var maskCtx = maskCanvas.context;\n      maskCtx.save();\n\n      putBinaryImageMask(maskCtx, imgData);\n\n      maskCtx.globalCompositeOperation = 'source-in';\n\n      maskCtx.fillStyle = isPatternFill ?\n                          fillColor.getPattern(maskCtx, this) : fillColor;\n      maskCtx.fillRect(0, 0, width, height);\n\n      maskCtx.restore();\n\n      var ctx = this.ctx;\n      for (var i = 0, ii = positions.length; i < ii; i += 2) {\n        ctx.save();\n        ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n        ctx.scale(1, -1);\n        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n          0, -1, 1, 1);\n        ctx.restore();\n      }\n    },\n\n    paintImageMaskXObjectGroup:\n      function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n      var ctx = this.ctx;\n\n      var fillColor = this.current.fillColor;\n      var isPatternFill = this.current.patternFill;\n      for (var i = 0, ii = images.length; i < ii; i++) {\n        var image = images[i];\n        var width = image.width, height = image.height;\n\n        var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas',\n                                                       width, height);\n        var maskCtx = maskCanvas.context;\n        maskCtx.save();\n\n        putBinaryImageMask(maskCtx, image);\n\n        maskCtx.globalCompositeOperation = 'source-in';\n\n        maskCtx.fillStyle = isPatternFill ?\n                            fillColor.getPattern(maskCtx, this) : fillColor;\n        maskCtx.fillRect(0, 0, width, height);\n\n        maskCtx.restore();\n\n        ctx.save();\n        ctx.transform.apply(ctx, image.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height,\n                      0, -1, 1, 1);\n        ctx.restore();\n      }\n    },\n\n    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n      var imgData = this.objs.get(objId);\n      if (!imgData) {\n        warn('Dependent image isn\\'t ready yet');\n        return;\n      }\n\n      this.paintInlineImageXObject(imgData);\n    },\n\n    paintImageXObjectRepeat:\n      function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY,\n                                                          positions) {\n      var imgData = this.objs.get(objId);\n      if (!imgData) {\n        warn('Dependent image isn\\'t ready yet');\n        return;\n      }\n\n      var width = imgData.width;\n      var height = imgData.height;\n      var map = [];\n      for (var i = 0, ii = positions.length; i < ii; i += 2) {\n        map.push({ transform: [scaleX, 0, 0, scaleY, positions[i],\n                   positions[i + 1]], x: 0, y: 0, w: width, h: height, });\n      }\n      this.paintInlineImageXObjectGroup(imgData, map);\n    },\n\n    paintInlineImageXObject:\n      function CanvasGraphics_paintInlineImageXObject(imgData) {\n      var width = imgData.width;\n      var height = imgData.height;\n      var ctx = this.ctx;\n\n      this.save();\n      // scale the image to the unit square\n      ctx.scale(1 / width, -1 / height);\n\n      var currentTransform = ctx.mozCurrentTransformInverse;\n      var a = currentTransform[0], b = currentTransform[1];\n      var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n      var c = currentTransform[2], d = currentTransform[3];\n      var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n\n      var imgToPaint, tmpCanvas;\n      // typeof check is needed due to node.js support, see issue #8489\n      if ((typeof HTMLElement === 'function' &&\n           imgData instanceof HTMLElement) || !imgData.data) {\n        imgToPaint = imgData;\n      } else {\n        tmpCanvas = this.cachedCanvases.getCanvas('inlineImage',\n                                                  width, height);\n        var tmpCtx = tmpCanvas.context;\n        putBinaryImageData(tmpCtx, imgData);\n        imgToPaint = tmpCanvas.canvas;\n      }\n\n      var paintWidth = width, paintHeight = height;\n      var tmpCanvasId = 'prescale1';\n      // Vertial or horizontal scaling shall not be more than 2 to not loose the\n      // pixels during drawImage operation, painting on the temporary canvas(es)\n      // that are twice smaller in size\n      while ((widthScale > 2 && paintWidth > 1) ||\n             (heightScale > 2 && paintHeight > 1)) {\n        var newWidth = paintWidth, newHeight = paintHeight;\n        if (widthScale > 2 && paintWidth > 1) {\n          newWidth = Math.ceil(paintWidth / 2);\n          widthScale /= paintWidth / newWidth;\n        }\n        if (heightScale > 2 && paintHeight > 1) {\n          newHeight = Math.ceil(paintHeight / 2);\n          heightScale /= paintHeight / newHeight;\n        }\n        tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId,\n                                                  newWidth, newHeight);\n        tmpCtx = tmpCanvas.context;\n        tmpCtx.clearRect(0, 0, newWidth, newHeight);\n        tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n                                     0, 0, newWidth, newHeight);\n        imgToPaint = tmpCanvas.canvas;\n        paintWidth = newWidth;\n        paintHeight = newHeight;\n        tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n      }\n      ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight,\n                                0, -height, width, height);\n\n      if (this.imageLayer) {\n        var position = this.getCanvasPosition(0, -height);\n        this.imageLayer.appendImage({\n          imgData,\n          left: position[0],\n          top: position[1],\n          width: width / currentTransform[0],\n          height: height / currentTransform[3],\n        });\n      }\n      this.restore();\n    },\n\n    paintInlineImageXObjectGroup:\n      function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n      var ctx = this.ctx;\n      var w = imgData.width;\n      var h = imgData.height;\n\n      var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);\n      var tmpCtx = tmpCanvas.context;\n      putBinaryImageData(tmpCtx, imgData);\n\n      for (var i = 0, ii = map.length; i < ii; i++) {\n        var entry = map[i];\n        ctx.save();\n        ctx.transform.apply(ctx, entry.transform);\n        ctx.scale(1, -1);\n        ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h,\n                      0, -1, 1, 1);\n        if (this.imageLayer) {\n          var position = this.getCanvasPosition(entry.x, entry.y);\n          this.imageLayer.appendImage({\n            imgData,\n            left: position[0],\n            top: position[1],\n            width: w,\n            height: h,\n          });\n        }\n        ctx.restore();\n      }\n    },\n\n    paintSolidColorImageMask:\n      function CanvasGraphics_paintSolidColorImageMask() {\n        this.ctx.fillRect(0, 0, 1, 1);\n    },\n\n    paintXObject: function CanvasGraphics_paintXObject() {\n      warn('Unsupported \\'paintXObject\\' command.');\n    },\n\n    // Marked content\n\n    markPoint: function CanvasGraphics_markPoint(tag) {\n      // TODO Marked content.\n    },\n    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {\n      // TODO Marked content.\n    },\n    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {\n      // TODO Marked content.\n    },\n    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(\n                                        tag, properties) {\n      // TODO Marked content.\n    },\n    endMarkedContent: function CanvasGraphics_endMarkedContent() {\n      // TODO Marked content.\n    },\n\n    // Compatibility\n\n    beginCompat: function CanvasGraphics_beginCompat() {\n      // TODO ignore undefined operators (should we do that anyway?)\n    },\n    endCompat: function CanvasGraphics_endCompat() {\n      // TODO stop ignoring undefined operators\n    },\n\n    // Helper functions\n\n    consumePath: function CanvasGraphics_consumePath() {\n      var ctx = this.ctx;\n      if (this.pendingClip) {\n        if (this.pendingClip === EO_CLIP) {\n          ctx.clip('evenodd');\n        } else {\n          ctx.clip();\n        }\n        this.pendingClip = null;\n      }\n      ctx.beginPath();\n    },\n    getSinglePixelWidth(scale) {\n      if (this._cachedGetSinglePixelWidth === null) {\n        const inverse = this.ctx.mozCurrentTransformInverse;\n        // max of the current horizontal and vertical scale\n        this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(\n          (inverse[0] * inverse[0] + inverse[1] * inverse[1]),\n          (inverse[2] * inverse[2] + inverse[3] * inverse[3])));\n      }\n      return this._cachedGetSinglePixelWidth;\n    },\n    getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n      var transform = this.ctx.mozCurrentTransform;\n      return [\n        transform[0] * x + transform[2] * y + transform[4],\n        transform[1] * x + transform[3] * y + transform[5]\n      ];\n    },\n  };\n\n  for (var op in OPS) {\n    CanvasGraphics.prototype[OPS[op]] = CanvasGraphics.prototype[op];\n  }\n\n  return CanvasGraphics;\n})();\n\nexport {\n  CanvasGraphics,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, info, Util } from '../shared/util';\n\nvar ShadingIRs = {};\n\nShadingIRs.RadialAxial = {\n  fromIR: function RadialAxial_fromIR(raw) {\n    var type = raw[1];\n    var colorStops = raw[2];\n    var p0 = raw[3];\n    var p1 = raw[4];\n    var r0 = raw[5];\n    var r1 = raw[6];\n    return {\n      type: 'Pattern',\n      getPattern: function RadialAxial_getPattern(ctx) {\n        var grad;\n        if (type === 'axial') {\n          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n        } else if (type === 'radial') {\n          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n        }\n\n        for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n          var c = colorStops[i];\n          grad.addColorStop(c[0], c[1]);\n        }\n        return grad;\n      },\n    };\n  },\n};\n\nvar createMeshCanvas = (function createMeshCanvasClosure() {\n  function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n    // Very basic Gouraud-shaded triangle rasterization algorithm.\n    var coords = context.coords, colors = context.colors;\n    var bytes = data.data, rowSize = data.width * 4;\n    var tmp;\n    if (coords[p1 + 1] > coords[p2 + 1]) {\n      tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\n    }\n    if (coords[p2 + 1] > coords[p3 + 1]) {\n      tmp = p2; p2 = p3; p3 = tmp; tmp = c2; c2 = c3; c3 = tmp;\n    }\n    if (coords[p1 + 1] > coords[p2 + 1]) {\n      tmp = p1; p1 = p2; p2 = tmp; tmp = c1; c1 = c2; c2 = tmp;\n    }\n    var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n    var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n    var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n    var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n    var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n    var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n    if (y1 >= y3) {\n      return;\n    }\n    var c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2];\n    var c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2];\n    var c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2];\n\n    var minY = Math.round(y1), maxY = Math.round(y3);\n    var xa, car, cag, cab;\n    var xb, cbr, cbg, cbb;\n    var k;\n    for (var y = minY; y <= maxY; y++) {\n      if (y < y2) {\n        k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\n        xa = x1 - (x1 - x2) * k;\n        car = c1r - (c1r - c2r) * k;\n        cag = c1g - (c1g - c2g) * k;\n        cab = c1b - (c1b - c2b) * k;\n      } else {\n        k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\n        xa = x2 - (x2 - x3) * k;\n        car = c2r - (c2r - c3r) * k;\n        cag = c2g - (c2g - c3g) * k;\n        cab = c2b - (c2b - c3b) * k;\n      }\n      k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\n      xb = x1 - (x1 - x3) * k;\n      cbr = c1r - (c1r - c3r) * k;\n      cbg = c1g - (c1g - c3g) * k;\n      cbb = c1b - (c1b - c3b) * k;\n      var x1_ = Math.round(Math.min(xa, xb));\n      var x2_ = Math.round(Math.max(xa, xb));\n      var j = rowSize * y + x1_ * 4;\n      for (var x = x1_; x <= x2_; x++) {\n        k = (xa - x) / (xa - xb);\n        k = k < 0 ? 0 : k > 1 ? 1 : k;\n        bytes[j++] = (car - (car - cbr) * k) | 0;\n        bytes[j++] = (cag - (cag - cbg) * k) | 0;\n        bytes[j++] = (cab - (cab - cbb) * k) | 0;\n        bytes[j++] = 255;\n      }\n    }\n  }\n\n  function drawFigure(data, figure, context) {\n    var ps = figure.coords;\n    var cs = figure.colors;\n    var i, ii;\n    switch (figure.type) {\n      case 'lattice':\n        var verticesPerRow = figure.verticesPerRow;\n        var rows = Math.floor(ps.length / verticesPerRow) - 1;\n        var cols = verticesPerRow - 1;\n        for (i = 0; i < rows; i++) {\n          var q = i * verticesPerRow;\n          for (var j = 0; j < cols; j++, q++) {\n            drawTriangle(data, context,\n              ps[q], ps[q + 1], ps[q + verticesPerRow],\n              cs[q], cs[q + 1], cs[q + verticesPerRow]);\n            drawTriangle(data, context,\n              ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow],\n              cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n          }\n        }\n        break;\n      case 'triangles':\n        for (i = 0, ii = ps.length; i < ii; i += 3) {\n          drawTriangle(data, context,\n            ps[i], ps[i + 1], ps[i + 2],\n            cs[i], cs[i + 1], cs[i + 2]);\n        }\n        break;\n      default:\n        throw new Error('illegal figure');\n    }\n  }\n\n  function createMeshCanvas(bounds, combinesScale, coords, colors, figures,\n                            backgroundColor, cachedCanvases, webGLContext) {\n    // we will increase scale on some weird factor to let antialiasing take\n    // care of \"rough\" edges\n    var EXPECTED_SCALE = 1.1;\n    // MAX_PATTERN_SIZE is used to avoid OOM situation.\n    var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n    // We need to keep transparent border around our pattern for fill():\n    // createPattern with 'no-repeat' will bleed edges across entire area.\n    var BORDER_SIZE = 2;\n\n    var offsetX = Math.floor(bounds[0]);\n    var offsetY = Math.floor(bounds[1]);\n    var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n    var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n\n    var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] *\n      EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n    var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] *\n      EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n    var scaleX = boundsWidth / width;\n    var scaleY = boundsHeight / height;\n\n    var context = {\n      coords,\n      colors,\n      offsetX: -offsetX,\n      offsetY: -offsetY,\n      scaleX: 1 / scaleX,\n      scaleY: 1 / scaleY,\n    };\n\n    var paddedWidth = width + BORDER_SIZE * 2;\n    var paddedHeight = height + BORDER_SIZE * 2;\n\n    var canvas, tmpCanvas, i, ii;\n    if (webGLContext.isEnabled) {\n      canvas = webGLContext.drawFigures({\n        width,\n        height,\n        backgroundColor,\n        figures,\n        context,\n      });\n      // https://bugzilla.mozilla.org/show_bug.cgi?id=972126\n      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n                                           false);\n      tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n      canvas = tmpCanvas.canvas;\n    } else {\n      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight,\n                                           false);\n      var tmpCtx = tmpCanvas.context;\n\n      var data = tmpCtx.createImageData(width, height);\n      if (backgroundColor) {\n        var bytes = data.data;\n        for (i = 0, ii = bytes.length; i < ii; i += 4) {\n          bytes[i] = backgroundColor[0];\n          bytes[i + 1] = backgroundColor[1];\n          bytes[i + 2] = backgroundColor[2];\n          bytes[i + 3] = 255;\n        }\n      }\n      for (i = 0; i < figures.length; i++) {\n        drawFigure(data, figures[i], context);\n      }\n      tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n      canvas = tmpCanvas.canvas;\n    }\n\n    return {\n      canvas,\n      offsetX: offsetX - BORDER_SIZE * scaleX,\n      offsetY: offsetY - BORDER_SIZE * scaleY,\n      scaleX,\n      scaleY,\n    };\n  }\n  return createMeshCanvas;\n})();\n\nShadingIRs.Mesh = {\n  fromIR: function Mesh_fromIR(raw) {\n    // var type = raw[1];\n    var coords = raw[2];\n    var colors = raw[3];\n    var figures = raw[4];\n    var bounds = raw[5];\n    var matrix = raw[6];\n    // var bbox = raw[7];\n    var background = raw[8];\n    return {\n      type: 'Pattern',\n      getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n        var scale;\n        if (shadingFill) {\n          scale = Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n        } else {\n          // Obtain scale from matrix and current transformation matrix.\n          scale = Util.singularValueDecompose2dScale(owner.baseTransform);\n          if (matrix) {\n            var matrixScale = Util.singularValueDecompose2dScale(matrix);\n            scale = [scale[0] * matrixScale[0],\n                     scale[1] * matrixScale[1]];\n          }\n        }\n\n        // Rasterizing on the main thread since sending/queue large canvases\n        // might cause OOM.\n        var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords,\n          colors, figures, shadingFill ? null : background,\n          owner.cachedCanvases, owner.webGLContext);\n\n        if (!shadingFill) {\n          ctx.setTransform.apply(ctx, owner.baseTransform);\n          if (matrix) {\n            ctx.transform.apply(ctx, matrix);\n          }\n        }\n\n        ctx.translate(temporaryPatternCanvas.offsetX,\n                      temporaryPatternCanvas.offsetY);\n        ctx.scale(temporaryPatternCanvas.scaleX,\n                  temporaryPatternCanvas.scaleY);\n\n        return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\n      },\n    };\n  },\n};\n\nShadingIRs.Dummy = {\n  fromIR: function Dummy_fromIR() {\n    return {\n      type: 'Pattern',\n      getPattern: function Dummy_fromIR_getPattern() {\n        return 'hotpink';\n      },\n    };\n  },\n};\n\nfunction getShadingPatternFromIR(raw) {\n  var shadingIR = ShadingIRs[raw[0]];\n  if (!shadingIR) {\n    throw new Error(`Unknown IR type: ${raw[0]}`);\n  }\n  return shadingIR.fromIR(raw);\n}\n\nvar TilingPattern = (function TilingPatternClosure() {\n  var PaintType = {\n    COLORED: 1,\n    UNCOLORED: 2,\n  };\n\n  var MAX_PATTERN_SIZE = 3000; // 10in @ 300dpi shall be enough\n\n  function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n    this.operatorList = IR[2];\n    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n    this.bbox = IR[4];\n    this.xstep = IR[5];\n    this.ystep = IR[6];\n    this.paintType = IR[7];\n    this.tilingType = IR[8];\n    this.color = color;\n    this.canvasGraphicsFactory = canvasGraphicsFactory;\n    this.baseTransform = baseTransform;\n    this.type = 'Pattern';\n    this.ctx = ctx;\n  }\n\n  TilingPattern.prototype = {\n    createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n      var operatorList = this.operatorList;\n      var bbox = this.bbox;\n      var xstep = this.xstep;\n      var ystep = this.ystep;\n      var paintType = this.paintType;\n      var tilingType = this.tilingType;\n      var color = this.color;\n      var canvasGraphicsFactory = this.canvasGraphicsFactory;\n\n      info('TilingType: ' + tilingType);\n\n      var x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3];\n\n      var topLeft = [x0, y0];\n      // we want the canvas to be as large as the step size\n      var botRight = [x0 + xstep, y0 + ystep];\n\n      var width = botRight[0] - topLeft[0];\n      var height = botRight[1] - topLeft[1];\n\n      // Obtain scale from matrix and current transformation matrix.\n      var matrixScale = Util.singularValueDecompose2dScale(this.matrix);\n      var curMatrixScale = Util.singularValueDecompose2dScale(\n        this.baseTransform);\n      var combinedScale = [matrixScale[0] * curMatrixScale[0],\n        matrixScale[1] * curMatrixScale[1]];\n\n      // MAX_PATTERN_SIZE is used to avoid OOM situation.\n      // Use width and height values that are as close as possible to the end\n      // result when the pattern is used. Too low value makes the pattern look\n      // blurry. Too large value makes it look too crispy.\n      width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])),\n        MAX_PATTERN_SIZE);\n\n      height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])),\n        MAX_PATTERN_SIZE);\n\n      var tmpCanvas = owner.cachedCanvases.getCanvas('pattern',\n        width, height, true);\n      var tmpCtx = tmpCanvas.context;\n      var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n      graphics.groupLevel = owner.groupLevel;\n\n      this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n\n      this.setScale(width, height, xstep, ystep);\n      this.transformToScale(graphics);\n\n      // transform coordinates to pattern space\n      var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n      graphics.transform.apply(graphics, tmpTranslate);\n\n      this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n\n      graphics.executeOperatorList(operatorList);\n      return tmpCanvas.canvas;\n    },\n\n    setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n      this.scale = [width / xstep, height / ystep];\n    },\n\n    transformToScale: function TilingPattern_transformToScale(graphics) {\n      var scale = this.scale;\n      var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n      graphics.transform.apply(graphics, tmpScale);\n    },\n\n    scaleToContext: function TilingPattern_scaleToContext() {\n      var scale = this.scale;\n      this.ctx.scale(1 / scale[0], 1 / scale[1]);\n    },\n\n    clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        var bboxWidth = x1 - x0;\n        var bboxHeight = y1 - y0;\n        graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n        graphics.clip();\n        graphics.endPath();\n      }\n    },\n\n    setFillAndStrokeStyleToContext:\n      function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n        let context = graphics.ctx, current = graphics.current;\n        switch (paintType) {\n          case PaintType.COLORED:\n            var ctx = this.ctx;\n            context.fillStyle = ctx.fillStyle;\n            context.strokeStyle = ctx.strokeStyle;\n            current.fillColor = ctx.fillStyle;\n            current.strokeColor = ctx.strokeStyle;\n            break;\n          case PaintType.UNCOLORED:\n            var cssColor = Util.makeCssRgb(color[0], color[1], color[2]);\n            context.fillStyle = cssColor;\n            context.strokeStyle = cssColor;\n            // Set color needed by image masks (fixes issues 3226 and 8741).\n            current.fillColor = cssColor;\n            current.strokeColor = cssColor;\n            break;\n          default:\n            throw new FormatError(`Unsupported paint type: ${paintType}`);\n        }\n      },\n\n    getPattern: function TilingPattern_getPattern(ctx, owner) {\n      var temporaryPatternCanvas = this.createPatternCanvas(owner);\n\n      ctx = this.ctx;\n      ctx.setTransform.apply(ctx, this.baseTransform);\n      ctx.transform.apply(ctx, this.matrix);\n      this.scaleToContext();\n\n      return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n    },\n  };\n\n  return TilingPattern;\n})();\n\nexport {\n  getShadingPatternFromIR,\n  TilingPattern,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst GlobalWorkerOptions = Object.create(null);\n\n/**\n * Defines global port for worker process. Overrides the `workerSrc` option.\n * @var {Object}\n */\nGlobalWorkerOptions.workerPort = (GlobalWorkerOptions.workerPort === undefined ?\n                                  null : GlobalWorkerOptions.workerPort);\n\n/**\n * Path and filename of the worker file. Required when workers are enabled in\n * development mode. If unspecified in production builds, the worker will be\n * loaded based on the location of the `pdf.js` file.\n *\n * NOTE: The `workerSrc` should always be set in custom applications, in order\n *       to prevent issues caused by third-party frameworks and libraries.\n * @var {string}\n */\nGlobalWorkerOptions.workerSrc = (GlobalWorkerOptions.workerSrc === undefined ?\n                                 '' : GlobalWorkerOptions.workerSrc);\n\nexport {\n  GlobalWorkerOptions,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException, assert, createPromiseCapability, MissingPDFException,\n  ReadableStream, UnexpectedResponseException, UnknownErrorException\n} from './util';\n\nasync function resolveCall(fn, args, thisArg = null) {\n  if (!fn) {\n    return;\n  }\n  return fn.apply(thisArg, args);\n}\n\nfunction wrapReason(reason) {\n  if (typeof reason !== 'object') {\n    return reason;\n  }\n  switch (reason.name) {\n    case 'AbortException':\n      return new AbortException(reason.message);\n    case 'MissingPDFException':\n      return new MissingPDFException(reason.message);\n    case 'UnexpectedResponseException':\n      return new UnexpectedResponseException(reason.message, reason.status);\n    default:\n      return new UnknownErrorException(reason.message, reason.details);\n  }\n}\n\nfunction makeReasonSerializable(reason) {\n  if (!(reason instanceof Error) ||\n      reason instanceof AbortException ||\n      reason instanceof MissingPDFException ||\n      reason instanceof UnexpectedResponseException ||\n      reason instanceof UnknownErrorException) {\n    return reason;\n  }\n  return new 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(() => {});\n}\n\nfunction MessageHandler(sourceName, targetName, comObj) {\n  this.sourceName = sourceName;\n  this.targetName = targetName;\n  this.comObj = comObj;\n  this.callbackId = 1;\n  this.streamId = 1;\n  this.postMessageTransfers = true;\n  this.streamSinks = Object.create(null);\n  this.streamControllers = Object.create(null);\n  let callbacksCapabilities = this.callbacksCapabilities = Object.create(null);\n  let ah = this.actionHandler = Object.create(null);\n\n  this._onComObjOnMessage = (event) => {\n    let data = event.data;\n    if (data.targetName !== this.sourceName) {\n      return;\n    }\n    if (data.stream) {\n      this._processStreamMessage(data);\n    } else if (data.isReply) {\n      let callbackId = data.callbackId;\n      if (data.callbackId in callbacksCapabilities) {\n        let callback = callbacksCapabilities[callbackId];\n        delete callbacksCapabilities[callbackId];\n        if ('error' in data) {\n          callback.reject(wrapReason(data.error));\n        } else {\n          callback.resolve(data.data);\n        }\n      } else {\n        throw new Error(`Cannot resolve callback ${callbackId}`);\n      }\n    } else if (data.action in ah) {\n      let action = ah[data.action];\n      if (data.callbackId) {\n        let sourceName = this.sourceName;\n        let targetName = data.sourceName;\n        Promise.resolve().then(function () {\n          return action[0].call(action[1], data.data);\n        }).then((result) => {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            data: result,\n          });\n        }, (reason) => {\n          comObj.postMessage({\n            sourceName,\n            targetName,\n            isReply: true,\n            callbackId: data.callbackId,\n            error: makeReasonSerializable(reason),\n          });\n        });\n      } else if (data.streamId) {\n        this._createStreamSink(data);\n      } else {\n        action[0].call(action[1], data.data);\n      }\n    } else {\n      throw new Error(`Unknown action from worker: ${data.action}`);\n    }\n  };\n  comObj.addEventListener('message', this._onComObjOnMessage);\n}\n\nMessageHandler.prototype = {\n  on(actionName, handler, scope) {\n    var ah = this.actionHandler;\n    if (ah[actionName]) {\n      throw new Error(`There is already an actionName called \"${actionName}\"`);\n    }\n    ah[actionName] = [handler, scope];\n  },\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * @param {String} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers\n   */\n  send(actionName, data, transfers) {\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data,\n    };\n    this.postMessage(message, transfers);\n  },\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expects that the other side will callback with the response.\n   * @param {String} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n   * @returns {Promise} Promise to be resolved with response data.\n   */\n  sendWithPromise(actionName, data, transfers) {\n    var callbackId = this.callbackId++;\n    var message = {\n      sourceName: this.sourceName,\n      targetName: this.targetName,\n      action: actionName,\n      data,\n      callbackId,\n    };\n    var capability = createPromiseCapability();\n    this.callbacksCapabilities[callbackId] = capability;\n    try {\n      this.postMessage(message, transfers);\n    } catch (e) {\n      capability.reject(e);\n    }\n    return capability.promise;\n  },\n  /**\n   * Sends a message to the comObj to invoke the action with the supplied data.\n   * Expect that the other side will callback to signal 'start_complete'.\n   * @param {String} actionName - Action to call.\n   * @param {JSON} data - JSON data to send.\n   * @param {Object} queueingStrategy - strategy to signal backpressure based on\n   *                 internal queue.\n   * @param {Array} [transfers] - Optional list of transfers/ArrayBuffers.\n   * @return {ReadableStream} ReadableStream to read data in chunks.\n   */\n  sendWithStream(actionName, data, queueingStrategy, transfers) {\n    let streamId = this.streamId++;\n    let sourceName = this.sourceName;\n    let targetName = this.targetName;\n\n    return new ReadableStream({\n      start: (controller) => {\n        let startCapability = createPromiseCapability();\n        this.streamControllers[streamId] = {\n          controller,\n          startCall: startCapability,\n          isClosed: false,\n        };\n        this.postMessage({\n          sourceName,\n          targetName,\n          action: actionName,\n          streamId,\n          data,\n          desiredSize: controller.desiredSize,\n        });\n        // Return Promise for Async process, to signal success/failure.\n        return startCapability.promise;\n      },\n\n      pull: (controller) => {\n        let pullCapability = createPromiseCapability();\n        this.streamControllers[streamId].pullCall = pullCapability;\n        this.postMessage({\n          sourceName,\n          targetName,\n          stream: 'pull',\n          streamId,\n          desiredSize: controller.desiredSize,\n        });\n        // Returning Promise will not call \"pull\"\n        // again until current pull is resolved.\n        return pullCapability.promise;\n      },\n\n      cancel: (reason) => {\n        let cancelCapability = createPromiseCapability();\n        this.streamControllers[streamId].cancelCall = cancelCapability;\n        this.streamControllers[streamId].isClosed = true;\n        this.postMessage({\n          sourceName,\n          targetName,\n          stream: 'cancel',\n          reason,\n          streamId,\n        });\n        // Return Promise to signal success or failure.\n        return cancelCapability.promise;\n      },\n    }, queueingStrategy);\n  },\n\n  _createStreamSink(data) {\n    let self = this;\n    let action = this.actionHandler[data.action];\n    let streamId = data.streamId;\n    let desiredSize = data.desiredSize;\n    let sourceName = this.sourceName;\n    let targetName = data.sourceName;\n    let capability = createPromiseCapability();\n\n    let sendStreamRequest = ({ stream, chunk, transfers,\n                               success, reason, }) => {\n      this.postMessage({ sourceName, targetName, stream, streamId,\n                         chunk, success, reason, }, transfers);\n    };\n\n    let streamSink = {\n      enqueue(chunk, size = 1, transfers) {\n        if (this.isCancelled) {\n          return;\n        }\n        let lastDesiredSize = this.desiredSize;\n        this.desiredSize -= size;\n        // Enqueue decreases the desiredSize property of sink,\n        // so when it changes from positive to negative,\n        // set ready as unresolved promise.\n        if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n          this.sinkCapability = createPromiseCapability();\n          this.ready = this.sinkCapability.promise;\n        }\n        sendStreamRequest({ stream: 'enqueue', chunk, transfers, });\n      },\n\n      close() {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        sendStreamRequest({ stream: 'close', });\n        delete self.streamSinks[streamId];\n      },\n\n      error(reason) {\n        if (this.isCancelled) {\n          return;\n        }\n        this.isCancelled = true;\n        sendStreamRequest({ stream: 'error', reason, });\n      },\n\n      sinkCapability: capability,\n      onPull: null,\n      onCancel: null,\n      isCancelled: false,\n      desiredSize,\n      ready: null,\n    };\n\n    streamSink.sinkCapability.resolve();\n    streamSink.ready = streamSink.sinkCapability.promise;\n    this.streamSinks[streamId] = streamSink;\n    resolveCall(action[0], [data.data, streamSink], action[1]).then(() => {\n      sendStreamRequest({ stream: 'start_complete', success: true, });\n    }, (reason) => {\n      sendStreamRequest({ stream: 'start_complete', success: false, reason, });\n    });\n  },\n\n  _processStreamMessage(data) {\n    let sourceName = this.sourceName;\n    let targetName = data.sourceName;\n    let streamId = data.streamId;\n\n    let sendStreamResponse = ({ stream, success, reason, }) => {\n      this.comObj.postMessage({ sourceName, targetName, stream,\n                                success, streamId, reason, });\n    };\n\n    let deleteStreamController = () => {\n      // Delete streamController only when start, pull and\n      // cancel callbacks are resolved, to avoid \"TypeError\".\n      Promise.all([\n        this.streamControllers[data.streamId].startCall,\n        this.streamControllers[data.streamId].pullCall,\n        this.streamControllers[data.streamId].cancelCall\n      ].map(function(capability) {\n        return capability && finalize(capability.promise);\n      })).then(() => {\n        delete this.streamControllers[data.streamId];\n      });\n    };\n\n    switch (data.stream) {\n      case 'start_complete':\n        resolveOrReject(this.streamControllers[data.streamId].startCall,\n                        data.success, wrapReason(data.reason));\n        break;\n      case 'pull_complete':\n        resolveOrReject(this.streamControllers[data.streamId].pullCall,\n                        data.success, wrapReason(data.reason));\n        break;\n      case 'pull':\n        // Ignore any pull after close is called.\n        if (!this.streamSinks[data.streamId]) {\n          sendStreamResponse({ stream: 'pull_complete', success: true, });\n          break;\n        }\n        // Pull increases the desiredSize property of sink,\n        // so when it changes from negative to positive,\n        // set ready property as resolved promise.\n        if (this.streamSinks[data.streamId].desiredSize <= 0 &&\n            data.desiredSize > 0) {\n          this.streamSinks[data.streamId].sinkCapability.resolve();\n        }\n        // Reset desiredSize property of sink on every pull.\n        this.streamSinks[data.streamId].desiredSize = data.desiredSize;\n        resolveCall(this.streamSinks[data.streamId].onPull).then(() => {\n          sendStreamResponse({ stream: 'pull_complete', success: true, });\n        }, (reason) => {\n          sendStreamResponse({ stream: 'pull_complete',\n                               success: false, reason, });\n        });\n        break;\n      case 'enqueue':\n        assert(this.streamControllers[data.streamId],\n               'enqueue should have stream controller');\n        if (!this.streamControllers[data.streamId].isClosed) {\n          this.streamControllers[data.streamId].controller.enqueue(data.chunk);\n        }\n        break;\n      case 'close':\n        assert(this.streamControllers[data.streamId],\n               'close should have stream controller');\n        if (this.streamControllers[data.streamId].isClosed) {\n          break;\n        }\n        this.streamControllers[data.streamId].isClosed = true;\n        this.streamControllers[data.streamId].controller.close();\n        deleteStreamController();\n        break;\n      case 'error':\n        assert(this.streamControllers[data.streamId],\n               'error should have stream controller');\n        this.streamControllers[data.streamId].controller.\n          error(wrapReason(data.reason));\n        deleteStreamController();\n        break;\n      case 'cancel_complete':\n        resolveOrReject(this.streamControllers[data.streamId].cancelCall,\n                        data.success, wrapReason(data.reason));\n        deleteStreamController();\n        break;\n      case 'cancel':\n        if (!this.streamSinks[data.streamId]) {\n          break;\n        }\n        resolveCall(this.streamSinks[data.streamId].onCancel,\n                    [wrapReason(data.reason)]).then(() => {\n          sendStreamResponse({ stream: 'cancel_complete', success: true, });\n        }, (reason) => {\n          sendStreamResponse({ stream: 'cancel_complete',\n                               success: false, reason, });\n        });\n        this.streamSinks[data.streamId].sinkCapability.\n          reject(wrapReason(data.reason));\n        this.streamSinks[data.streamId].isCancelled = true;\n        delete this.streamSinks[data.streamId];\n        break;\n      default:\n        throw new Error('Unexpected stream case');\n    }\n  },\n\n  /**\n   * Sends raw message to the comObj.\n   * @private\n   * @param {Object} message - Raw message.\n   * @param transfers List of transfers/ArrayBuffers, or undefined.\n   */\n  postMessage(message, transfers) {\n    if (transfers && this.postMessageTransfers) {\n      this.comObj.postMessage(message, transfers);\n    } else {\n      this.comObj.postMessage(message);\n    }\n  },\n\n  destroy() {\n    this.comObj.removeEventListener('message', this._onComObjOnMessage);\n  },\n};\n\nexport {\n  MessageHandler,\n};\n","module.exports = require(\"regenerator-runtime\");\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n  Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n  // Restore the original runtime.\n  g.regeneratorRuntime = oldRuntime;\n} else {\n  // Remove the global property added by runtime.js.\n  try {\n    delete g.regeneratorRuntime;\n  } catch(e) {\n    g.regeneratorRuntime = undefined;\n  }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  var inModule = typeof module === \"object\";\n  var runtime = global.regeneratorRuntime;\n  if (runtime) {\n    if (inModule) {\n      // If regeneratorRuntime is defined globally and we're in a module,\n      // make the exports object identical to regeneratorRuntime.\n      module.exports = runtime;\n    }\n    // Don't bother evaluating the rest of this file if the runtime was\n    // already defined globally.\n    return;\n  }\n\n  // Define the runtime globally (as expected by generated code) as either\n  // module.exports (if we're in a module) or a new, empty object.\n  runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  runtime.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  runtime.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  runtime.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  runtime.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration. If the Promise is rejected, however, the\n          // result for this iteration will be rejected with the same\n          // reason. Note that rejections of yielded Promises are not\n          // thrown back into the generator function, as is the case\n          // when an awaited Promise is rejected. This difference in\n          // behavior between yield and await is important, because it\n          // allows the consumer to decide what to do with the yielded\n          // rejection (swallow it and continue, manually .throw it back\n          // into the generator, abandon iteration, whatever). With\n          // await, by contrast, there is no opportunity to examine the\n          // rejection reason outside the generator function, so the\n          // only option is to throw it from the await expression, and\n          // let the generator function handle the exception.\n          result.value = unwrapped;\n          resolve(result);\n        }, reject);\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  runtime.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return runtime.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        if (delegate.iterator.return) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  runtime.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  runtime.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n})(\n  // In sloppy mode, unbound `this` refers to the global object, fallback to\n  // Function constructor if we're in global strict mode. That is sadly a form\n  // of indirect eval which violates Content Security Policy.\n  (function() { return this })() || Function(\"return this\")()\n);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from '../shared/util';\nimport { SimpleXMLParser } from './xml_parser';\n\nclass Metadata {\n  constructor(data) {\n    assert(typeof data === 'string', 'Metadata: input is not a string');\n\n    // Ghostscript may produce invalid metadata, so try to repair that first.\n    data = this._repair(data);\n\n    // Convert the string to an XML document.\n    let parser = new SimpleXMLParser();\n    const xmlDocument = parser.parseFromString(data);\n\n    this._metadata = Object.create(null);\n\n    if (xmlDocument) {\n      this._parse(xmlDocument);\n    }\n  }\n\n  _repair(data) {\n    return data.replace(/>\\\\376\\\\377([^<]+)/g, function(all, codes) {\n      let bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g,\n          function(code, d1, d2, d3) {\n        return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n      }).replace(/&(amp|apos|gt|lt|quot);/g, function(str, name) {\n        switch (name) {\n          case 'amp':\n            return '&';\n          case 'apos':\n            return '\\'';\n          case 'gt':\n            return '>';\n          case 'lt':\n            return '<';\n          case 'quot':\n            return '\\\"';\n        }\n        throw new Error(`_repair: ${name} isn't defined.`);\n      });\n\n      let chars = '';\n      for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n        let code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n        if (code >= 32 && code < 127 && code !== 60 && code !== 62 &&\n            code !== 38) {\n          chars += String.fromCharCode(code);\n        } else {\n          chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';\n        }\n      }\n\n      return '>' + chars;\n    });\n  }\n\n  _parse(xmlDocument) {\n    let rdf = xmlDocument.documentElement;\n\n    if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { // Wrapped in <xmpmeta>\n      rdf = rdf.firstChild;\n      while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n        rdf = rdf.nextSibling;\n      }\n    }\n\n    let nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n    if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n      return;\n    }\n\n    let children = rdf.childNodes;\n    for (let i = 0, ii = children.length; i < ii; i++) {\n      let desc = children[i];\n      if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n        continue;\n      }\n\n      for (let j = 0, jj = desc.childNodes.length; j < jj; j++) {\n        if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {\n          let entry = desc.childNodes[j];\n          let name = entry.nodeName.toLowerCase();\n\n          this._metadata[name] = entry.textContent.trim();\n        }\n      }\n    }\n  }\n\n  get(name) {\n    return this._metadata[name] || null;\n  }\n\n  getAll() {\n    return this._metadata;\n  }\n\n  has(name) {\n    return typeof this._metadata[name] !== 'undefined';\n  }\n}\n\nexport {\n  Metadata,\n};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nconst XMLParserErrorCode = {\n  NoError: 0,\n  EndOfDocument: -1,\n  UnterminatedCdat: -2,\n  UnterminatedXmlDeclaration: -3,\n  UnterminatedDoctypeDeclaration: -4,\n  UnterminatedComment: -5,\n  MalformedElement: -6,\n  OutOfMemory: -7,\n  UnterminatedAttributeValue: -8,\n  UnterminatedElement: -9,\n  ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n  const ch = s[index];\n  return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\n}\n\nfunction isWhitespaceString(s) {\n  for (let i = 0, ii = s.length; i < ii; i++) {\n    if (!isWhitespace(s, i)) {\n      return false;\n    }\n  }\n  return true;\n}\n\nclass XMLParserBase {\n  _resolveEntities(s) {\n    return s.replace(/&([^;]+);/g, function (all, entity) {\n      if (entity.substring(0, 2) === '#x') {\n        return String.fromCharCode(parseInt(entity.substring(2), 16));\n      } else if (entity.substring(0, 1) === '#') {\n        return String.fromCharCode(parseInt(entity.substring(1), 10));\n      }\n      switch (entity) {\n        case 'lt':\n          return '<';\n        case 'gt':\n          return '>';\n        case 'amp':\n          return '&';\n        case 'quot':\n          return '\\\"';\n      }\n      return this.onResolveEntity(entity);\n    });\n  }\n\n  _parseContent(s, start) {\n    let pos = start, name, attributes = [];\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) &&\n           s[pos] !== '>' && s[pos] !== '/') {\n      ++pos;\n    }\n    name = s.substring(start, pos);\n    skipWs();\n    while (pos < s.length && s[pos] !== '>' &&\n           s[pos] !== '/' && s[pos] !== '?') {\n      skipWs();\n      let attrName = '', attrValue = '';\n      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n        attrName += s[pos];\n        ++pos;\n      }\n      skipWs();\n      if (s[pos] !== '=') {\n        return null;\n      }\n      ++pos;\n      skipWs();\n      const attrEndChar = s[pos];\n      if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n        return null;\n      }\n      const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n      if (attrEndIndex < 0) {\n        return null;\n      }\n      attrValue = s.substring(pos, attrEndIndex);\n      attributes.push({\n        name: attrName,\n        value: this._resolveEntities(attrValue),\n      });\n      pos = attrEndIndex + 1;\n      skipWs();\n    }\n    return {\n      name,\n      attributes,\n      parsed: pos - start,\n    };\n  }\n\n  _parseProcessingInstruction(s, start) {\n    let pos = start, name, value;\n\n    function skipWs() {\n      while (pos < s.length && isWhitespace(s, pos)) {\n        ++pos;\n      }\n    }\n\n    while (pos < s.length && !isWhitespace(s, pos) &&\n           s[pos] !== '>' && s[pos] !== '/') {\n      ++pos;\n    }\n    name = s.substring(start, pos);\n    skipWs();\n    const attrStart = pos;\n    while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n      ++pos;\n    }\n    value = s.substring(attrStart, pos);\n    return {\n      name,\n      value,\n      parsed: pos - start,\n    };\n  }\n\n  parseXml(s) {\n    let i = 0;\n    while (i < s.length) {\n      const ch = s[i];\n      let j = i;\n      if (ch === '<') {\n        ++j;\n        const ch2 = s[j];\n        let q;\n        switch (ch2) {\n          case '/':\n            ++j;\n            q = s.indexOf('>', j);\n            if (q < 0) {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onEndElement(s.substring(j, q));\n            j = q + 1;\n            break;\n          case '?':\n            ++j;\n            const pi = this._parseProcessingInstruction(s, j);\n            if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n              this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n              return;\n            }\n            this.onPi(pi.name, pi.value);\n            j += pi.parsed + 2;\n            break;\n          case '!':\n            if (s.substring(j + 1, j + 3) === '--') {\n              q = s.indexOf('-->', j + 3);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedComment);\n                return;\n              }\n              this.onComment(s.substring(j + 3, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === '[CDATA[') {\n              q = s.indexOf(']]>', j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedCdat);\n                return;\n              }\n              this.onCdata(s.substring(j + 8, q));\n              j = q + 3;\n            } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n              const q2 = s.indexOf('[', j + 8);\n              let complexDoctype = false;\n              q = s.indexOf('>', j + 8);\n              if (q < 0) {\n                this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                return;\n              }\n              if (q2 > 0 && q > q2) {\n                q = s.indexOf(']>', j + 8);\n                if (q < 0) {\n                  this.onError(\n                    XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n                  return;\n                }\n                complexDoctype = true;\n              }\n              const doctypeContent =\n                s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n              this.onDoctype(doctypeContent);\n              j = q + (complexDoctype ? 2 : 1);\n            } else {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            break;\n          default:\n            const content = this._parseContent(s, j);\n            if (content === null) {\n              this.onError(XMLParserErrorCode.MalformedElement);\n              return;\n            }\n            let isClosed = false;\n            if (s.substring(j + content.parsed,\n                            j + content.parsed + 2) === '/>') {\n              isClosed = true;\n            } else if (s.substring(j + content.parsed,\n                       j + content.parsed + 1) !== '>') {\n              this.onError(XMLParserErrorCode.UnterminatedElement);\n              return;\n            }\n            this.onBeginElement(content.name, content.attributes, isClosed);\n            j += content.parsed + (isClosed ? 2 : 1);\n            break;\n        }\n      } else {\n        while (j < s.length && s[j] !== '<') {\n          j++;\n        }\n        const text = s.substring(i, j);\n        this.onText(this._resolveEntities(text));\n      }\n      i = j;\n    }\n  }\n\n  onResolveEntity(name) {\n    return `&${name};`;\n  }\n\n  onPi(name, value) { }\n\n  onComment(text) { }\n\n  onCdata(text) { }\n\n  onDoctype(doctypeContent) { }\n\n  onText(text) { }\n\n  onBeginElement(name, attributes, isEmpty) { }\n\n  onEndElement(name) { }\n\n  onError(code) { }\n}\n\nclass SimpleDOMNode {\n  constructor(nodeName, nodeValue) {\n    this.nodeName = nodeName;\n    this.nodeValue = nodeValue;\n\n    Object.defineProperty(this, 'parentNode', { value: null, writable: true, });\n  }\n\n  get firstChild() {\n    return this.childNodes[0];\n  }\n\n  get nextSibling() {\n    let index = this.parentNode.childNodes.indexOf(this);\n    return this.parentNode.childNodes[index + 1];\n  }\n\n  get textContent() {\n    if (!this.childNodes) {\n      return this.nodeValue || '';\n    }\n    return this.childNodes.map(function(child) {\n      return child.textContent;\n    }).join('');\n  }\n\n  hasChildNodes() {\n    return this.childNodes && this.childNodes.length > 0;\n  }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n  constructor() {\n    super();\n    this._currentFragment = null;\n    this._stack = null;\n    this._errorCode = XMLParserErrorCode.NoError;\n  }\n\n  parseFromString(data) {\n    this._currentFragment = [];\n    this._stack = [];\n    this._errorCode = XMLParserErrorCode.NoError;\n\n    this.parseXml(data);\n\n    if (this._errorCode !== XMLParserErrorCode.NoError) {\n      return undefined; // return undefined on error\n    }\n\n    // We should only have one root.\n    const [documentElement] = this._currentFragment;\n    if (!documentElement) {\n      return undefined; // Return undefined if no root was found.\n    }\n    return { documentElement, };\n  }\n\n  onResolveEntity(name) {\n    switch (name) {\n      case 'apos':\n        return '\\'';\n    }\n    return super.onResolveEntity(name);\n  }\n\n  onText(text) {\n    if (isWhitespaceString(text)) {\n      return;\n    }\n    const node = new SimpleDOMNode('#text', text);\n    this._currentFragment.push(node);\n  }\n\n  onCdata(text) {\n    const node = new SimpleDOMNode('#text', text);\n    this._currentFragment.push(node);\n  }\n\n  onBeginElement(name, attributes, isEmpty) {\n    const node = new SimpleDOMNode(name);\n    node.childNodes = [];\n    this._currentFragment.push(node);\n    if (isEmpty) {\n      return;\n    }\n    this._stack.push(this._currentFragment);\n    this._currentFragment = node.childNodes;\n  }\n\n  onEndElement(name) {\n    this._currentFragment = this._stack.pop();\n    const lastElement = this._currentFragment[this._currentFragment.length - 1];\n    for (let i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n      lastElement.childNodes[i].parentNode = lastElement;\n    }\n  }\n\n  onError(code) {\n    this._errorCode = code;\n  }\n}\n\nexport {\n  SimpleXMLParser,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, createPromiseCapability } from '../shared/util';\n\n /** @implements {IPDFStream} */\nvar PDFDataTransportStream = (function PDFDataTransportStreamClosure() {\n  function PDFDataTransportStream(params, pdfDataRangeTransport) {\n    assert(pdfDataRangeTransport);\n\n    this._queuedChunks = [];\n    var initialData = params.initialData;\n    if (initialData && initialData.length > 0) {\n      let buffer = new Uint8Array(initialData).buffer;\n      this._queuedChunks.push(buffer);\n    }\n\n    this._pdfDataRangeTransport = pdfDataRangeTransport;\n    this._isStreamingSupported = !params.disableStream;\n    this._isRangeSupported = !params.disableRange;\n    this._contentLength = params.length;\n\n    this._fullRequestReader = null;\n    this._rangeReaders = [];\n\n    this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n      this._onReceiveData({ begin, chunk, });\n    });\n\n    this._pdfDataRangeTransport.addProgressListener((loaded) => {\n      this._onProgress({ loaded, });\n    });\n\n    this._pdfDataRangeTransport.addProgressiveReadListener((chunk) => {\n      this._onReceiveData({ chunk, });\n    });\n\n    this._pdfDataRangeTransport.transportReady();\n  }\n  PDFDataTransportStream.prototype = {\n    _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {\n       let buffer = new Uint8Array(args.chunk).buffer;\n       if (args.begin === undefined) {\n         if (this._fullRequestReader) {\n           this._fullRequestReader._enqueue(buffer);\n         } else {\n           this._queuedChunks.push(buffer);\n         }\n       } else {\n         var found = this._rangeReaders.some(function (rangeReader) {\n           if (rangeReader._begin !== args.begin) {\n             return false;\n           }\n           rangeReader._enqueue(buffer);\n           return true;\n         });\n         assert(found);\n       }\n    },\n\n    _onProgress: function PDFDataTransportStream_onDataProgress(evt) {\n       if (this._rangeReaders.length > 0) {\n         // Reporting to first range reader.\n         var firstReader = this._rangeReaders[0];\n         if (firstReader.onProgress) {\n           firstReader.onProgress({ loaded: evt.loaded, });\n         }\n       }\n    },\n\n    _removeRangeReader:\n        function PDFDataTransportStream_removeRangeReader(reader) {\n      var i = this._rangeReaders.indexOf(reader);\n      if (i >= 0) {\n        this._rangeReaders.splice(i, 1);\n      }\n    },\n\n    getFullReader: function PDFDataTransportStream_getFullReader() {\n      assert(!this._fullRequestReader);\n      var queuedChunks = this._queuedChunks;\n      this._queuedChunks = null;\n      return new PDFDataTransportStreamReader(this, queuedChunks);\n    },\n\n    getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {\n      var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n      this._pdfDataRangeTransport.requestDataRange(begin, end);\n      this._rangeReaders.push(reader);\n      return reader;\n    },\n\n    cancelAllRequests:\n        function PDFDataTransportStream_cancelAllRequests(reason) {\n      if (this._fullRequestReader) {\n        this._fullRequestReader.cancel(reason);\n      }\n      var readers = this._rangeReaders.slice(0);\n      readers.forEach(function (rangeReader) {\n        rangeReader.cancel(reason);\n      });\n      this._pdfDataRangeTransport.abort();\n    },\n  };\n\n  /** @implements {IPDFStreamReader} */\n  function PDFDataTransportStreamReader(stream, queuedChunks) {\n    this._stream = stream;\n    this._done = false;\n    this._filename = null;\n    this._queuedChunks = queuedChunks || [];\n    this._requests = [];\n    this._headersReady = Promise.resolve();\n    stream._fullRequestReader = this;\n\n    this.onProgress = null; // not used\n  }\n  PDFDataTransportStreamReader.prototype = {\n    _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {\n      if (this._done) {\n        return; // ignore new data\n      }\n      if (this._requests.length > 0) {\n        var requestCapability = this._requests.shift();\n        requestCapability.resolve({ value: chunk, done: false, });\n        return;\n      }\n      this._queuedChunks.push(chunk);\n    },\n\n    get headersReady() {\n      return this._headersReady;\n    },\n\n    get filename() {\n      return this._filename;\n    },\n\n    get isRangeSupported() {\n      return this._stream._isRangeSupported;\n    },\n\n    get isStreamingSupported() {\n      return this._stream._isStreamingSupported;\n    },\n\n    get contentLength() {\n      return this._stream._contentLength;\n    },\n\n    async read() {\n      if (this._queuedChunks.length > 0) {\n        var chunk = this._queuedChunks.shift();\n        return { value: chunk, done: false, };\n      }\n      if (this._done) {\n        return { value: undefined, done: true, };\n      }\n      var requestCapability = createPromiseCapability();\n      this._requests.push(requestCapability);\n      return requestCapability.promise;\n    },\n\n    cancel: function PDFDataTransportStreamReader_cancel(reason) {\n      this._done = true;\n      this._requests.forEach(function (requestCapability) {\n        requestCapability.resolve({ value: undefined, done: true, });\n      });\n      this._requests = [];\n    },\n  };\n\n  /** @implements {IPDFStreamRangeReader} */\n  function PDFDataTransportStreamRangeReader(stream, begin, end) {\n    this._stream = stream;\n    this._begin = begin;\n    this._end = end;\n    this._queuedChunk = null;\n    this._requests = [];\n    this._done = false;\n\n    this.onProgress = null;\n  }\n  PDFDataTransportStreamRangeReader.prototype = {\n    _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {\n      if (this._done) {\n        return; // ignore new data\n      }\n      if (this._requests.length === 0) {\n        this._queuedChunk = chunk;\n      } else {\n        var requestsCapability = this._requests.shift();\n        requestsCapability.resolve({ value: chunk, done: false, });\n        this._requests.forEach(function (requestCapability) {\n          requestCapability.resolve({ value: undefined, done: true, });\n        });\n        this._requests = [];\n      }\n      this._done = true;\n      this._stream._removeRangeReader(this);\n    },\n\n    get isStreamingSupported() {\n      return false;\n    },\n\n    async read() {\n      if (this._queuedChunk) {\n        let chunk = this._queuedChunk;\n        this._queuedChunk = null;\n        return { value: chunk, done: false, };\n      }\n      if (this._done) {\n        return { value: undefined, done: true, };\n      }\n      var requestCapability = createPromiseCapability();\n      this._requests.push(requestCapability);\n      return requestCapability.promise;\n    },\n\n    cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {\n      this._done = true;\n      this._requests.forEach(function (requestCapability) {\n        requestCapability.resolve({ value: undefined, done: true, });\n      });\n      this._requests = [];\n      this._stream._removeRangeReader(this);\n    },\n  };\n\n  return PDFDataTransportStream;\n})();\n\nexport {\n  PDFDataTransportStream,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-multi-str */\n\nimport { shadow } from '../shared/util';\n\nclass WebGLContext {\n  constructor({ enable = false, }) {\n    this._enabled = enable === true;\n  }\n\n  get isEnabled() {\n    let enabled = this._enabled;\n    if (enabled) {\n      enabled = WebGLUtils.tryInitGL();\n    }\n    return shadow(this, 'isEnabled', enabled);\n  }\n\n  composeSMask({ layer, mask, properties, }) {\n    return WebGLUtils.composeSMask(layer, mask, properties);\n  }\n\n  drawFigures({ width, height, backgroundColor, figures, context, }) {\n    return WebGLUtils.drawFigures(width, height, backgroundColor, figures,\n                                  context);\n  }\n\n  clear() {\n    WebGLUtils.cleanup();\n  }\n}\n\nvar WebGLUtils = (function WebGLUtilsClosure() {\n  function loadShader(gl, code, shaderType) {\n    var shader = gl.createShader(shaderType);\n    gl.shaderSource(shader, code);\n    gl.compileShader(shader);\n    var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n    if (!compiled) {\n      var errorMsg = gl.getShaderInfoLog(shader);\n      throw new Error('Error during shader compilation: ' + errorMsg);\n    }\n    return shader;\n  }\n  function createVertexShader(gl, code) {\n    return loadShader(gl, code, gl.VERTEX_SHADER);\n  }\n  function createFragmentShader(gl, code) {\n    return loadShader(gl, code, gl.FRAGMENT_SHADER);\n  }\n  function createProgram(gl, shaders) {\n    var program = gl.createProgram();\n    for (var i = 0, ii = shaders.length; i < ii; ++i) {\n      gl.attachShader(program, shaders[i]);\n    }\n    gl.linkProgram(program);\n    var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n    if (!linked) {\n      var errorMsg = gl.getProgramInfoLog(program);\n      throw new Error('Error during program linking: ' + errorMsg);\n    }\n    return program;\n  }\n  function createTexture(gl, image, textureId) {\n    gl.activeTexture(textureId);\n    var texture = gl.createTexture();\n    gl.bindTexture(gl.TEXTURE_2D, texture);\n\n    // Set the parameters so we can render any size image.\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n\n    // Upload the image into the texture.\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n    return texture;\n  }\n\n  var currentGL, currentCanvas;\n  function generateGL() {\n    if (currentGL) {\n      return;\n    }\n\n    // The temporary canvas is used in the WebGL context.\n    currentCanvas = document.createElement('canvas');\n    currentGL = currentCanvas.getContext('webgl',\n      { premultipliedalpha: false, });\n  }\n\n  var smaskVertexShaderCode = '\\\n  attribute vec2 a_position;                                    \\\n  attribute vec2 a_texCoord;                                    \\\n                                                                \\\n  uniform vec2 u_resolution;                                    \\\n                                                                \\\n  varying vec2 v_texCoord;                                      \\\n                                                                \\\n  void main() {                                                 \\\n    vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;   \\\n    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \\\n                                                                \\\n    v_texCoord = a_texCoord;                                    \\\n  }                                                             ';\n\n  var smaskFragmentShaderCode = '\\\n  precision mediump float;                                      \\\n                                                                \\\n  uniform vec4 u_backdrop;                                      \\\n  uniform int u_subtype;                                        \\\n  uniform sampler2D u_image;                                    \\\n  uniform sampler2D u_mask;                                     \\\n                                                                \\\n  varying vec2 v_texCoord;                                      \\\n                                                                \\\n  void main() {                                                 \\\n    vec4 imageColor = texture2D(u_image, v_texCoord);           \\\n    vec4 maskColor = texture2D(u_mask, v_texCoord);             \\\n    if (u_backdrop.a > 0.0) {                                   \\\n      maskColor.rgb = maskColor.rgb * maskColor.a +             \\\n                      u_backdrop.rgb * (1.0 - maskColor.a);     \\\n    }                                                           \\\n    float lum;                                                  \\\n    if (u_subtype == 0) {                                       \\\n      lum = maskColor.a;                                        \\\n    } else {                                                    \\\n      lum = maskColor.r * 0.3 + maskColor.g * 0.59 +            \\\n            maskColor.b * 0.11;                                 \\\n    }                                                           \\\n    imageColor.a *= lum;                                        \\\n    imageColor.rgb *= imageColor.a;                             \\\n    gl_FragColor = imageColor;                                  \\\n  }                                                             ';\n\n  var smaskCache = null;\n\n  function initSmaskGL() {\n    var canvas, gl;\n\n    generateGL();\n    canvas = currentCanvas;\n    currentCanvas = null;\n    gl = currentGL;\n    currentGL = null;\n\n    // setup a GLSL program\n    var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n    var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n    var program = createProgram(gl, [vertexShader, fragmentShader]);\n    gl.useProgram(program);\n\n    var cache = {};\n    cache.gl = gl;\n    cache.canvas = canvas;\n    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n    cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n    cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');\n    cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');\n\n    var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');\n    var texLayerLocation = gl.getUniformLocation(program, 'u_image');\n    var texMaskLocation = gl.getUniformLocation(program, 'u_mask');\n\n    // provide texture coordinates for the rectangle.\n    var texCoordBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n      0.0, 0.0,\n      1.0, 0.0,\n      0.0, 1.0,\n      0.0, 1.0,\n      1.0, 0.0,\n      1.0, 1.0]), gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(texCoordLocation);\n    gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n\n    gl.uniform1i(texLayerLocation, 0);\n    gl.uniform1i(texMaskLocation, 1);\n\n    smaskCache = cache;\n  }\n\n  function composeSMask(layer, mask, properties) {\n    var width = layer.width, height = layer.height;\n\n    if (!smaskCache) {\n      initSmaskGL();\n    }\n    var cache = smaskCache, canvas = cache.canvas, gl = cache.gl;\n    canvas.width = width;\n    canvas.height = height;\n    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n    gl.uniform2f(cache.resolutionLocation, width, height);\n\n    if (properties.backdrop) {\n      gl.uniform4f(cache.resolutionLocation, properties.backdrop[0],\n                   properties.backdrop[1], properties.backdrop[2], 1);\n    } else {\n      gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n    }\n    gl.uniform1i(cache.subtypeLocation,\n                 properties.subtype === 'Luminosity' ? 1 : 0);\n\n    // Create a textures\n    var texture = createTexture(gl, layer, gl.TEXTURE0);\n    var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n\n    // Create a buffer and put a single clipspace rectangle in\n    // it (2 triangles)\n    var buffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([\n      0, 0,\n      width, 0,\n      0, height,\n      0, height,\n      width, 0,\n      width, height]), gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.positionLocation);\n    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n    // draw\n    gl.clearColor(0, 0, 0, 0);\n    gl.enable(gl.BLEND);\n    gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n    gl.clear(gl.COLOR_BUFFER_BIT);\n\n    gl.drawArrays(gl.TRIANGLES, 0, 6);\n\n    gl.flush();\n\n    gl.deleteTexture(texture);\n    gl.deleteTexture(maskTexture);\n    gl.deleteBuffer(buffer);\n\n    return canvas;\n  }\n\n  var figuresVertexShaderCode = '\\\n  attribute vec2 a_position;                                    \\\n  attribute vec3 a_color;                                       \\\n                                                                \\\n  uniform vec2 u_resolution;                                    \\\n  uniform vec2 u_scale;                                         \\\n  uniform vec2 u_offset;                                        \\\n                                                                \\\n  varying vec4 v_color;                                         \\\n                                                                \\\n  void main() {                                                 \\\n    vec2 position = (a_position + u_offset) * u_scale;          \\\n    vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;     \\\n    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \\\n                                                                \\\n    v_color = vec4(a_color / 255.0, 1.0);                       \\\n  }                                                             ';\n\n  var figuresFragmentShaderCode = '\\\n  precision mediump float;                                      \\\n                                                                \\\n  varying vec4 v_color;                                         \\\n                                                                \\\n  void main() {                                                 \\\n    gl_FragColor = v_color;                                     \\\n  }                                                             ';\n\n  var figuresCache = null;\n\n  function initFiguresGL() {\n    var canvas, gl;\n\n    generateGL();\n    canvas = currentCanvas;\n    currentCanvas = null;\n    gl = currentGL;\n    currentGL = null;\n\n    // setup a GLSL program\n    var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n    var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n    var program = createProgram(gl, [vertexShader, fragmentShader]);\n    gl.useProgram(program);\n\n    var cache = {};\n    cache.gl = gl;\n    cache.canvas = canvas;\n    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n    cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');\n    cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');\n    cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n    cache.colorLocation = gl.getAttribLocation(program, 'a_color');\n\n    figuresCache = cache;\n  }\n\n  function drawFigures(width, height, backgroundColor, figures, context) {\n    if (!figuresCache) {\n      initFiguresGL();\n    }\n    var cache = figuresCache, canvas = cache.canvas, gl = cache.gl;\n\n    canvas.width = width;\n    canvas.height = height;\n    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n    gl.uniform2f(cache.resolutionLocation, width, height);\n\n    // count triangle points\n    var count = 0;\n    var i, ii, rows;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      switch (figures[i].type) {\n        case 'lattice':\n          rows = (figures[i].coords.length / figures[i].verticesPerRow) | 0;\n          count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n          break;\n        case 'triangles':\n          count += figures[i].coords.length;\n          break;\n      }\n    }\n    // transfer data\n    var coords = new Float32Array(count * 2);\n    var colors = new Uint8Array(count * 3);\n    var coordsMap = context.coords, colorsMap = context.colors;\n    var pIndex = 0, cIndex = 0;\n    for (i = 0, ii = figures.length; i < ii; i++) {\n      var figure = figures[i], ps = figure.coords, cs = figure.colors;\n      switch (figure.type) {\n        case 'lattice':\n          var cols = figure.verticesPerRow;\n          rows = (ps.length / cols) | 0;\n          for (var row = 1; row < rows; row++) {\n            var offset = row * cols + 1;\n            for (var col = 1; col < cols; col++, offset++) {\n              coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n              coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n              coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n              coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n              coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n              coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n              colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n              colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n              colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n              colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n              colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n              colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n              colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n              colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n              colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n\n              coords[pIndex + 6] = coords[pIndex + 2];\n              coords[pIndex + 7] = coords[pIndex + 3];\n              coords[pIndex + 8] = coords[pIndex + 4];\n              coords[pIndex + 9] = coords[pIndex + 5];\n              coords[pIndex + 10] = coordsMap[ps[offset]];\n              coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n              colors[cIndex + 9] = colors[cIndex + 3];\n              colors[cIndex + 10] = colors[cIndex + 4];\n              colors[cIndex + 11] = colors[cIndex + 5];\n              colors[cIndex + 12] = colors[cIndex + 6];\n              colors[cIndex + 13] = colors[cIndex + 7];\n              colors[cIndex + 14] = colors[cIndex + 8];\n              colors[cIndex + 15] = colorsMap[cs[offset]];\n              colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n              colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n              pIndex += 12;\n              cIndex += 18;\n            }\n          }\n          break;\n        case 'triangles':\n          for (var j = 0, jj = ps.length; j < jj; j++) {\n            coords[pIndex] = coordsMap[ps[j]];\n            coords[pIndex + 1] = coordsMap[ps[j] + 1];\n            colors[cIndex] = colorsMap[cs[j]];\n            colors[cIndex + 1] = colorsMap[cs[j] + 1];\n            colors[cIndex + 2] = colorsMap[cs[j] + 2];\n            pIndex += 2;\n            cIndex += 3;\n          }\n          break;\n      }\n    }\n\n    // draw\n    if (backgroundColor) {\n      gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255,\n                    backgroundColor[2] / 255, 1.0);\n    } else {\n      gl.clearColor(0, 0, 0, 0);\n    }\n    gl.clear(gl.COLOR_BUFFER_BIT);\n\n    var coordsBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.positionLocation);\n    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n    var colorsBuffer = gl.createBuffer();\n    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n    gl.enableVertexAttribArray(cache.colorLocation);\n    gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false,\n                           0, 0);\n\n    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n\n    gl.drawArrays(gl.TRIANGLES, 0, count);\n\n    gl.flush();\n\n    gl.deleteBuffer(coordsBuffer);\n    gl.deleteBuffer(colorsBuffer);\n\n    return canvas;\n  }\n\n  return {\n    tryInitGL() {\n      try {\n        generateGL();\n        return !!currentGL;\n      } catch (ex) { }\n      return false;\n    },\n\n    composeSMask,\n\n    drawFigures,\n\n    cleanup() {\n      if (smaskCache && smaskCache.canvas) {\n        smaskCache.canvas.width = 0;\n        smaskCache.canvas.height = 0;\n      }\n      if (figuresCache && figuresCache.canvas) {\n        figuresCache.canvas.width = 0;\n        figuresCache.canvas.height = 0;\n      }\n      smaskCache = null;\n      figuresCache = null;\n    },\n  };\n})();\n\nexport {\n  WebGLContext,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AbortException, createPromiseCapability, Util } from '../shared/util';\nimport globalScope from '../shared/global_scope';\n\n/**\n * Text layer render parameters.\n *\n * @typedef {Object} TextLayerRenderParameters\n * @property {TextContent} textContent - (optional) Text content to render\n *   (the object is returned by the page's getTextContent() method).\n * @property {ReadableStream} textContentStream - (optional) Text content\n *   stream to render (the stream is returned by the page's\n *   streamTextContent() method).\n * @property {HTMLElement} container - HTML element that will contain text runs.\n * @property {PageViewport} viewport - The target viewport to properly\n *   layout the text runs.\n * @property {Array} textDivs - (optional) HTML elements that are correspond\n *   the text items of the textContent input. This is output and shall be\n *   initially be set to empty array.\n * @property {Array} textContentItemsStr - (optional) Strings that correspond\n *   the `str` property of the text items of textContent input. This is output\n *   and shall be initially be set to empty array.\n * @property {number} timeout - (optional) Delay in milliseconds before\n *   rendering of the text  runs occurs.\n * @property {boolean} enhanceTextSelection - (optional) Whether to turn on the\n *   text selection enhancement.\n */\nvar renderTextLayer = (function renderTextLayerClosure() {\n  var MAX_TEXT_DIVS_TO_RENDER = 100000;\n\n  var NonWhitespaceRegexp = /\\S/;\n\n  function isAllWhitespace(str) {\n    return !NonWhitespaceRegexp.test(str);\n  }\n\n  // Text layers may contain many thousands of divs, and using `styleBuf` avoids\n  // creating many intermediate strings when building their 'style' properties.\n  var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0,\n                  'px; font-family: ', '', ';'];\n\n  function appendText(task, geom, styles) {\n    // Initialize all used properties to keep the caches monomorphic.\n    var textDiv = document.createElement('div');\n    var textDivProperties = {\n      style: null,\n      angle: 0,\n      canvasWidth: 0,\n      isWhitespace: false,\n      originalTransform: null,\n      paddingBottom: 0,\n      paddingLeft: 0,\n      paddingRight: 0,\n      paddingTop: 0,\n      scale: 1,\n    };\n\n    task._textDivs.push(textDiv);\n    if (isAllWhitespace(geom.str)) {\n      textDivProperties.isWhitespace = true;\n      task._textDivProperties.set(textDiv, textDivProperties);\n      return;\n    }\n\n    var tx = Util.transform(task._viewport.transform, geom.transform);\n    var angle = Math.atan2(tx[1], tx[0]);\n    var style = styles[geom.fontName];\n    if (style.vertical) {\n      angle += Math.PI / 2;\n    }\n    var fontHeight = Math.sqrt((tx[2] * tx[2]) + (tx[3] * tx[3]));\n    var fontAscent = fontHeight;\n    if (style.ascent) {\n      fontAscent = style.ascent * fontAscent;\n    } else if (style.descent) {\n      fontAscent = (1 + style.descent) * fontAscent;\n    }\n\n    var left;\n    var top;\n    if (angle === 0) {\n      left = tx[4];\n      top = tx[5] - fontAscent;\n    } else {\n      left = tx[4] + (fontAscent * Math.sin(angle));\n      top = tx[5] - (fontAscent * Math.cos(angle));\n    }\n    styleBuf[1] = left;\n    styleBuf[3] = top;\n    styleBuf[5] = fontHeight;\n    styleBuf[7] = style.fontFamily;\n    textDivProperties.style = styleBuf.join('');\n    textDiv.setAttribute('style', textDivProperties.style);\n\n    textDiv.textContent = geom.str;\n    // `fontName` is only used by the FontInspector, and we only use `dataset`\n    // here to make the font name available in the debugger.\n    if (task._fontInspectorEnabled) {\n      textDiv.dataset.fontName = geom.fontName;\n    }\n    if (angle !== 0) {\n      textDivProperties.angle = angle * (180 / Math.PI);\n    }\n    // We don't bother scaling single-char text divs, because it has very\n    // little effect on text highlighting. This makes scrolling on docs with\n    // lots of such divs a lot faster.\n    if (geom.str.length > 1) {\n      if (style.vertical) {\n        textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n      } else {\n        textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n      }\n    }\n    task._textDivProperties.set(textDiv, textDivProperties);\n    if (task._textContentStream) {\n      task._layoutText(textDiv);\n    }\n\n    if (task._enhanceTextSelection) {\n      var angleCos = 1, angleSin = 0;\n      if (angle !== 0) {\n        angleCos = Math.cos(angle);\n        angleSin = Math.sin(angle);\n      }\n      var divWidth = (style.vertical ? geom.height : geom.width) *\n                     task._viewport.scale;\n      var divHeight = fontHeight;\n\n      var m, b;\n      if (angle !== 0) {\n        m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n        b = Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n      } else {\n        b = [left, top, left + divWidth, top + divHeight];\n      }\n\n      task._bounds.push({\n        left: b[0],\n        top: b[1],\n        right: b[2],\n        bottom: b[3],\n        div: textDiv,\n        size: [divWidth, divHeight],\n        m,\n      });\n    }\n  }\n\n  function render(task) {\n    if (task._canceled) {\n      return;\n    }\n    var textDivs = task._textDivs;\n    var capability = task._capability;\n    var textDivsLength = textDivs.length;\n\n    // No point in rendering many divs as it would make the browser\n    // unusable even after the divs are rendered.\n    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n      task._renderingDone = true;\n      capability.resolve();\n      return;\n    }\n\n    if (!task._textContentStream) {\n      for (var i = 0; i < textDivsLength; i++) {\n        task._layoutText(textDivs[i]);\n      }\n    }\n\n    task._renderingDone = true;\n    capability.resolve();\n  }\n\n  function expand(task) {\n    var bounds = task._bounds;\n    var viewport = task._viewport;\n\n    var expanded = expandBounds(viewport.width, viewport.height, bounds);\n    for (var i = 0; i < expanded.length; i++) {\n      var div = bounds[i].div;\n      var divProperties = task._textDivProperties.get(div);\n      if (divProperties.angle === 0) {\n        divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n        divProperties.paddingTop = bounds[i].top - expanded[i].top;\n        divProperties.paddingRight = expanded[i].right - bounds[i].right;\n        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n        task._textDivProperties.set(div, divProperties);\n        continue;\n      }\n      // Box is rotated -- trying to find padding so rotated div will not\n      // exceed its expanded bounds.\n      var e = expanded[i], b = bounds[i];\n      var m = b.m, c = m[0], s = m[1];\n      // Finding intersections with expanded box.\n      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n      var ts = new Float64Array(64);\n      points.forEach(function (p, i) {\n        var t = Util.applyTransform(p, m);\n        ts[i + 0] = c && (e.left - t[0]) / c;\n        ts[i + 4] = s && (e.top - t[1]) / s;\n        ts[i + 8] = c && (e.right - t[0]) / c;\n        ts[i + 12] = s && (e.bottom - t[1]) / s;\n\n        ts[i + 16] = s && (e.left - t[0]) / -s;\n        ts[i + 20] = c && (e.top - t[1]) / c;\n        ts[i + 24] = s && (e.right - t[0]) / -s;\n        ts[i + 28] = c && (e.bottom - t[1]) / c;\n\n        ts[i + 32] = c && (e.left - t[0]) / -c;\n        ts[i + 36] = s && (e.top - t[1]) / -s;\n        ts[i + 40] = c && (e.right - t[0]) / -c;\n        ts[i + 44] = s && (e.bottom - t[1]) / -s;\n\n        ts[i + 48] = s && (e.left - t[0]) / s;\n        ts[i + 52] = c && (e.top - t[1]) / -c;\n        ts[i + 56] = s && (e.right - t[0]) / s;\n        ts[i + 60] = c && (e.bottom - t[1]) / -c;\n      });\n      var findPositiveMin = function (ts, offset, count) {\n        var result = 0;\n        for (var i = 0; i < count; i++) {\n          var t = ts[offset++];\n          if (t > 0) {\n            result = result ? Math.min(t, result) : t;\n          }\n        }\n        return result;\n      };\n      // Not based on math, but to simplify calculations, using cos and sin\n      // absolute values to not exceed the box (it can but insignificantly).\n      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n      task._textDivProperties.set(div, divProperties);\n    }\n  }\n\n  function expandBounds(width, height, boxes) {\n    var bounds = boxes.map(function (box, i) {\n      return {\n        x1: box.left,\n        y1: box.top,\n        x2: box.right,\n        y2: box.bottom,\n        index: i,\n        x1New: undefined,\n        x2New: undefined,\n      };\n    });\n    expandBoundsLTR(width, bounds);\n    var expanded = new Array(boxes.length);\n    bounds.forEach(function (b) {\n      var i = b.index;\n      expanded[i] = {\n        left: b.x1New,\n        top: 0,\n        right: b.x2New,\n        bottom: 0,\n      };\n    });\n\n    // Rotating on 90 degrees and extending extended boxes. Reusing the bounds\n    // array and objects.\n    boxes.map(function (box, i) {\n      var e = expanded[i], b = bounds[i];\n      b.x1 = box.top;\n      b.y1 = width - e.right;\n      b.x2 = box.bottom;\n      b.y2 = width - e.left;\n      b.index = i;\n      b.x1New = undefined;\n      b.x2New = undefined;\n    });\n    expandBoundsLTR(height, bounds);\n\n    bounds.forEach(function (b) {\n      var i = b.index;\n      expanded[i].top = b.x1New;\n      expanded[i].bottom = b.x2New;\n    });\n    return expanded;\n  }\n\n  function expandBoundsLTR(width, bounds) {\n    // Sorting by x1 coordinate and walk by the bounds in the same order.\n    bounds.sort(function (a, b) {\n      return a.x1 - b.x1 || a.index - b.index;\n    });\n\n    // First we see on the horizon is a fake boundary.\n    var fakeBoundary = {\n      x1: -Infinity,\n      y1: -Infinity,\n      x2: 0,\n      y2: Infinity,\n      index: -1,\n      x1New: 0,\n      x2New: 0,\n    };\n    var horizon = [{\n      start: -Infinity,\n      end: Infinity,\n      boundary: fakeBoundary,\n    }];\n\n    bounds.forEach(function (boundary) {\n      // Searching for the affected part of horizon.\n      // TODO red-black tree or simple binary search\n      var i = 0;\n      while (i < horizon.length && horizon[i].end <= boundary.y1) {\n        i++;\n      }\n      var j = horizon.length - 1;\n      while (j >= 0 && horizon[j].start >= boundary.y2) {\n        j--;\n      }\n\n      var horizonPart, affectedBoundary;\n      var q, k, maxXNew = -Infinity;\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        var xNew;\n        if (affectedBoundary.x2 > boundary.x1) {\n          // In the middle of the previous element, new x shall be at the\n          // boundary start. Extending if further if the affected boundary\n          // placed on top of the current one.\n          xNew = affectedBoundary.index > boundary.index ?\n            affectedBoundary.x1New : boundary.x1;\n        } else if (affectedBoundary.x2New === undefined) {\n          // We have some space in between, new x in middle will be a fair\n          // choice.\n          xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n        } else {\n          // Affected boundary has x2new set, using it as new x.\n          xNew = affectedBoundary.x2New;\n        }\n        if (xNew > maxXNew) {\n          maxXNew = xNew;\n        }\n      }\n\n      // Set new x1 for current boundary.\n      boundary.x1New = maxXNew;\n\n      // Adjusts new x2 for the affected boundaries.\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        if (affectedBoundary.x2New === undefined) {\n          // Was not set yet, choosing new x if possible.\n          if (affectedBoundary.x2 > boundary.x1) {\n            // Current and affected boundaries intersect. If affected boundary\n            // is placed on top of the current, shrinking the affected.\n            if (affectedBoundary.index > boundary.index) {\n              affectedBoundary.x2New = affectedBoundary.x2;\n            }\n          } else {\n            affectedBoundary.x2New = maxXNew;\n          }\n        } else if (affectedBoundary.x2New > maxXNew) {\n          // Affected boundary is touching new x, pushing it back.\n          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n        }\n      }\n\n      // Fixing the horizon.\n      var changedHorizon = [], lastBoundary = null;\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        // Checking which boundary will be visible.\n        var useBoundary = affectedBoundary.x2 > boundary.x2 ?\n          affectedBoundary : boundary;\n        if (lastBoundary === useBoundary) {\n          // Merging with previous.\n          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n        } else {\n          changedHorizon.push({\n            start: horizonPart.start,\n            end: horizonPart.end,\n            boundary: useBoundary,\n          });\n          lastBoundary = useBoundary;\n        }\n      }\n      if (horizon[i].start < boundary.y1) {\n        changedHorizon[0].start = boundary.y1;\n        changedHorizon.unshift({\n          start: horizon[i].start,\n          end: boundary.y1,\n          boundary: horizon[i].boundary,\n        });\n      }\n      if (boundary.y2 < horizon[j].end) {\n        changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n        changedHorizon.push({\n          start: boundary.y2,\n          end: horizon[j].end,\n          boundary: horizon[j].boundary,\n        });\n      }\n\n      // Set x2 new of boundary that is no longer visible (see overlapping case\n      // above).\n      // TODO more efficient, e.g. via reference counting.\n      for (q = i; q <= j; q++) {\n        horizonPart = horizon[q];\n        affectedBoundary = horizonPart.boundary;\n        if (affectedBoundary.x2New !== undefined) {\n          continue;\n        }\n        var used = false;\n        for (k = i - 1; !used && k >= 0 &&\n        horizon[k].start >= affectedBoundary.y1; k--) {\n          used = horizon[k].boundary === affectedBoundary;\n        }\n        for (k = j + 1; !used && k < horizon.length &&\n        horizon[k].end <= affectedBoundary.y2; k++) {\n          used = horizon[k].boundary === affectedBoundary;\n        }\n        for (k = 0; !used && k < changedHorizon.length; k++) {\n          used = changedHorizon[k].boundary === affectedBoundary;\n        }\n        if (!used) {\n          affectedBoundary.x2New = maxXNew;\n        }\n      }\n\n      Array.prototype.splice.apply(horizon,\n        [i, j - i + 1].concat(changedHorizon));\n    });\n\n    // Set new x2 for all unset boundaries.\n    horizon.forEach(function (horizonPart) {\n      var affectedBoundary = horizonPart.boundary;\n      if (affectedBoundary.x2New === undefined) {\n        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n      }\n    });\n  }\n\n  /**\n   * Text layer rendering task.\n   *\n   * @param {TextContent} textContent\n   * @param {HTMLElement} container\n   * @param {PageViewport} viewport\n   * @param {Array} textDivs\n   * @param {boolean} enhanceTextSelection\n   * @private\n   */\n  function TextLayerRenderTask({ textContent, textContentStream, container,\n                                 viewport, textDivs, textContentItemsStr,\n                                 enhanceTextSelection, }) {\n    this._textContent = textContent;\n    this._textContentStream = textContentStream;\n    this._container = container;\n    this._viewport = viewport;\n    this._textDivs = textDivs || [];\n    this._textContentItemsStr = textContentItemsStr || [];\n    this._enhanceTextSelection = !!enhanceTextSelection;\n    this._fontInspectorEnabled = !!(globalScope.FontInspector &&\n                                    globalScope.FontInspector.enabled);\n\n    this._reader = null;\n    this._layoutTextLastFontSize = null;\n    this._layoutTextLastFontFamily = null;\n    this._layoutTextCtx = null;\n    this._textDivProperties = new WeakMap();\n    this._renderingDone = false;\n    this._canceled = false;\n    this._capability = createPromiseCapability();\n    this._renderTimer = null;\n    this._bounds = [];\n  }\n  TextLayerRenderTask.prototype = {\n    get promise() {\n      return this._capability.promise;\n    },\n\n    cancel: function TextLayer_cancel() {\n      if (this._reader) {\n        this._reader.cancel(new AbortException('text layer task cancelled'));\n        this._reader = null;\n      }\n      this._canceled = true;\n      if (this._renderTimer !== null) {\n        clearTimeout(this._renderTimer);\n        this._renderTimer = null;\n      }\n      this._capability.reject('canceled');\n    },\n\n    _processItems(items, styleCache) {\n      for (let i = 0, len = items.length; i < len; i++) {\n        this._textContentItemsStr.push(items[i].str);\n        appendText(this, items[i], styleCache);\n      }\n    },\n\n    _layoutText(textDiv) {\n      let textLayerFrag = this._container;\n\n      let textDivProperties = this._textDivProperties.get(textDiv);\n      if (textDivProperties.isWhitespace) {\n        return;\n      }\n\n      let fontSize = textDiv.style.fontSize;\n      let fontFamily = textDiv.style.fontFamily;\n\n      // Only build font string and set to context if different from last.\n      if (fontSize !== this._layoutTextLastFontSize ||\n          fontFamily !== this._layoutTextLastFontFamily) {\n        this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n        this._layoutTextLastFontSize = fontSize;\n        this._layoutTextLastFontFamily = fontFamily;\n      }\n\n      let width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n\n      let transform = '';\n      if (textDivProperties.canvasWidth !== 0 && width > 0) {\n        textDivProperties.scale = textDivProperties.canvasWidth / width;\n        transform = 'scaleX(' + textDivProperties.scale + ')';\n      }\n      if (textDivProperties.angle !== 0) {\n        transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;\n      }\n      if (transform !== '') {\n        textDivProperties.originalTransform = transform;\n        textDiv.style.transform = transform;\n      }\n      this._textDivProperties.set(textDiv, textDivProperties);\n      textLayerFrag.appendChild(textDiv);\n    },\n\n    _render: function TextLayer_render(timeout) {\n      let capability = createPromiseCapability();\n      let styleCache = Object.create(null);\n\n      // The temporary canvas is used to measure text length in the DOM.\n      let canvas = document.createElement('canvas');\n      if (typeof PDFJSDev === 'undefined' ||\n          PDFJSDev.test('FIREFOX || MOZCENTRAL || GENERIC')) {\n         canvas.mozOpaque = true;\n      }\n      this._layoutTextCtx = canvas.getContext('2d', { alpha: false, });\n\n      if (this._textContent) {\n        let textItems = this._textContent.items;\n        let textStyles = this._textContent.styles;\n        this._processItems(textItems, textStyles);\n        capability.resolve();\n      } else if (this._textContentStream) {\n        let pump = () => {\n          this._reader.read().then(({ value, done, }) => {\n            if (done) {\n              capability.resolve();\n              return;\n            }\n\n            Object.assign(styleCache, value.styles);\n            this._processItems(value.items, styleCache);\n            pump();\n          }, capability.reject);\n        };\n\n        this._reader = this._textContentStream.getReader();\n        pump();\n      } else {\n        throw new Error('Neither \"textContent\" nor \"textContentStream\"' +\n          ' parameters specified.');\n      }\n\n      capability.promise.then(() => {\n        styleCache = null;\n        if (!timeout) { // Render right away\n          render(this);\n        } else { // Schedule\n          this._renderTimer = setTimeout(() => {\n            render(this);\n            this._renderTimer = null;\n          }, timeout);\n        }\n      }, this._capability.reject);\n    },\n\n    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n      if (!this._enhanceTextSelection || !this._renderingDone) {\n        return;\n      }\n      if (this._bounds !== null) {\n        expand(this);\n        this._bounds = null;\n      }\n\n      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n        var div = this._textDivs[i];\n        var divProperties = this._textDivProperties.get(div);\n\n        if (divProperties.isWhitespace) {\n          continue;\n        }\n        if (expandDivs) {\n          var transform = '', padding = '';\n\n          if (divProperties.scale !== 1) {\n            transform = 'scaleX(' + divProperties.scale + ')';\n          }\n          if (divProperties.angle !== 0) {\n            transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\n          }\n          if (divProperties.paddingLeft !== 0) {\n            padding += ' padding-left: ' +\n              (divProperties.paddingLeft / divProperties.scale) + 'px;';\n            transform += ' translateX(' +\n              (-divProperties.paddingLeft / divProperties.scale) + 'px)';\n          }\n          if (divProperties.paddingTop !== 0) {\n            padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n            transform += ' translateY(' + (-divProperties.paddingTop) + 'px)';\n          }\n          if (divProperties.paddingRight !== 0) {\n            padding += ' padding-right: ' +\n              (divProperties.paddingRight / divProperties.scale) + 'px;';\n          }\n          if (divProperties.paddingBottom !== 0) {\n            padding += ' padding-bottom: ' +\n              divProperties.paddingBottom + 'px;';\n          }\n\n          if (padding !== '') {\n            div.setAttribute('style', divProperties.style + padding);\n          }\n          if (transform !== '') {\n            div.style.transform = transform;\n          }\n        } else {\n          div.style.padding = 0;\n          div.style.transform = divProperties.originalTransform || '';\n        }\n      }\n    },\n  };\n\n  /**\n   * Starts rendering of the text layer.\n   *\n   * @param {TextLayerRenderParameters} renderParameters\n   * @returns {TextLayerRenderTask}\n   */\n  function renderTextLayer(renderParameters) {\n    var task = new TextLayerRenderTask({\n      textContent: renderParameters.textContent,\n      textContentStream: renderParameters.textContentStream,\n      container: renderParameters.container,\n      viewport: renderParameters.viewport,\n      textDivs: renderParameters.textDivs,\n      textContentItemsStr: renderParameters.textContentItemsStr,\n      enhanceTextSelection: renderParameters.enhanceTextSelection,\n    });\n    task._render(renderParameters.timeout);\n    return task;\n  }\n\n  return renderTextLayer;\n})();\n\nexport {\n  renderTextLayer,\n};\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  addLinkAttributes, DOMSVGFactory, getFilenameFromUrl, LinkTarget\n} from './dom_utils';\nimport {\n  AnnotationBorderStyleType, AnnotationType, stringToPDFString, unreachable,\n  Util, warn\n} from '../shared/util';\n\n/**\n * @typedef {Object} AnnotationElementParameters\n * @property {Object} data\n * @property {HTMLDivElement} layer\n * @property {PDFPage} page\n * @property {PageViewport} viewport\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n *   mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n * @property {Object} svgFactory\n */\n\nclass AnnotationElementFactory {\n  /**\n   * @param {AnnotationElementParameters} parameters\n   * @returns {AnnotationElement}\n   */\n  static create(parameters) {\n    let subtype = parameters.data.annotationType;\n\n    switch (subtype) {\n      case AnnotationType.LINK:\n        return new LinkAnnotationElement(parameters);\n\n      case AnnotationType.TEXT:\n        return new TextAnnotationElement(parameters);\n\n      case AnnotationType.WIDGET:\n        let fieldType = parameters.data.fieldType;\n\n        switch (fieldType) {\n          case 'Tx':\n            return new TextWidgetAnnotationElement(parameters);\n          case 'Btn':\n            if (parameters.data.radioButton) {\n              return new RadioButtonWidgetAnnotationElement(parameters);\n            } else if (parameters.data.checkBox) {\n              return new CheckboxWidgetAnnotationElement(parameters);\n            }\n            return new PushButtonWidgetAnnotationElement(parameters);\n          case 'Ch':\n            return new ChoiceWidgetAnnotationElement(parameters);\n        }\n        return new WidgetAnnotationElement(parameters);\n\n      case AnnotationType.POPUP:\n        return new PopupAnnotationElement(parameters);\n\n      case AnnotationType.LINE:\n        return new LineAnnotationElement(parameters);\n\n      case AnnotationType.SQUARE:\n        return new SquareAnnotationElement(parameters);\n\n      case AnnotationType.CIRCLE:\n        return new CircleAnnotationElement(parameters);\n\n      case AnnotationType.POLYLINE:\n        return new PolylineAnnotationElement(parameters);\n\n      case AnnotationType.INK:\n        return new InkAnnotationElement(parameters);\n\n      case AnnotationType.POLYGON:\n        return new PolygonAnnotationElement(parameters);\n\n      case AnnotationType.HIGHLIGHT:\n        return new HighlightAnnotationElement(parameters);\n\n      case AnnotationType.UNDERLINE:\n        return new UnderlineAnnotationElement(parameters);\n\n      case AnnotationType.SQUIGGLY:\n        return new SquigglyAnnotationElement(parameters);\n\n      case AnnotationType.STRIKEOUT:\n        return new StrikeOutAnnotationElement(parameters);\n\n      case AnnotationType.STAMP:\n        return new StampAnnotationElement(parameters);\n\n      case AnnotationType.FILEATTACHMENT:\n        return new FileAttachmentAnnotationElement(parameters);\n\n      default:\n        return new AnnotationElement(parameters);\n    }\n  }\n}\n\nclass AnnotationElement {\n  constructor(parameters, isRenderable = false, ignoreBorder = false) {\n    this.isRenderable = isRenderable;\n    this.data = parameters.data;\n    this.layer = parameters.layer;\n    this.page = parameters.page;\n    this.viewport = parameters.viewport;\n    this.linkService = parameters.linkService;\n    this.downloadManager = parameters.downloadManager;\n    this.imageResourcesPath = parameters.imageResourcesPath;\n    this.renderInteractiveForms = parameters.renderInteractiveForms;\n    this.svgFactory = parameters.svgFactory;\n\n    if (isRenderable) {\n      this.container = this._createContainer(ignoreBorder);\n    }\n  }\n\n  /**\n   * Create an empty container for the annotation's HTML element.\n   *\n   * @private\n   * @param {boolean} ignoreBorder\n   * @memberof AnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  _createContainer(ignoreBorder = false) {\n    let data = this.data, page = this.page, viewport = this.viewport;\n    let container = document.createElement('section');\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n\n    container.setAttribute('data-annotation-id', data.id);\n\n    // Do *not* modify `data.rect`, since that will corrupt the annotation\n    // position on subsequent calls to `_createContainer` (see issue 6804).\n    let rect = Util.normalizeRect([\n      data.rect[0],\n      page.view[3] - data.rect[1] + page.view[1],\n      data.rect[2],\n      page.view[3] - data.rect[3] + page.view[1]\n    ]);\n\n    container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';\n    container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';\n\n    if (!ignoreBorder && data.borderStyle.width > 0) {\n      container.style.borderWidth = data.borderStyle.width + 'px';\n      if (data.borderStyle.style !== AnnotationBorderStyleType.UNDERLINE) {\n        // Underline styles only have a bottom border, so we do not need\n        // to adjust for all borders. This yields a similar result as\n        // Adobe Acrobat/Reader.\n        width = width - 2 * data.borderStyle.width;\n        height = height - 2 * data.borderStyle.width;\n      }\n\n      let horizontalRadius = data.borderStyle.horizontalCornerRadius;\n      let verticalRadius = data.borderStyle.verticalCornerRadius;\n      if (horizontalRadius > 0 || verticalRadius > 0) {\n        let radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n        container.style.borderRadius = radius;\n      }\n\n      switch (data.borderStyle.style) {\n        case AnnotationBorderStyleType.SOLID:\n          container.style.borderStyle = 'solid';\n          break;\n\n        case AnnotationBorderStyleType.DASHED:\n          container.style.borderStyle = 'dashed';\n          break;\n\n        case AnnotationBorderStyleType.BEVELED:\n          warn('Unimplemented border style: beveled');\n          break;\n\n        case AnnotationBorderStyleType.INSET:\n          warn('Unimplemented border style: inset');\n          break;\n\n        case AnnotationBorderStyleType.UNDERLINE:\n          container.style.borderBottomStyle = 'solid';\n          break;\n\n        default:\n          break;\n      }\n\n      if (data.color) {\n        container.style.borderColor = Util.makeCssRgb(data.color[0] | 0,\n                                                      data.color[1] | 0,\n                                                      data.color[2] | 0);\n      } else {\n        // Transparent (invisible) border, so do not draw it at all.\n        container.style.borderWidth = 0;\n      }\n    }\n\n    container.style.left = rect[0] + 'px';\n    container.style.top = rect[1] + 'px';\n\n    container.style.width = width + 'px';\n    container.style.height = height + 'px';\n\n    return container;\n  }\n\n  /**\n   * Create a popup for the annotation's HTML element. This is used for\n   * annotations that do not have a Popup entry in the dictionary, but\n   * are of a type that works with popups (such as Highlight annotations).\n   *\n   * @private\n   * @param {HTMLSectionElement} container\n   * @param {HTMLDivElement|HTMLImageElement|null} trigger\n   * @param {Object} data\n   * @memberof AnnotationElement\n   */\n  _createPopup(container, trigger, data) {\n    // If no trigger element is specified, create it.\n    if (!trigger) {\n      trigger = document.createElement('div');\n      trigger.style.height = container.style.height;\n      trigger.style.width = container.style.width;\n      container.appendChild(trigger);\n    }\n\n    let popupElement = new PopupElement({\n      container,\n      trigger,\n      color: data.color,\n      title: data.title,\n      contents: data.contents,\n      hideWrapper: true,\n    });\n    let popup = popupElement.render();\n\n    // Position the popup next to the annotation's container.\n    popup.style.left = container.style.width;\n\n    container.appendChild(popup);\n  }\n\n  /**\n   * Render the annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof AnnotationElement\n   */\n  render() {\n    unreachable('Abstract method `AnnotationElement.render` called');\n  }\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.url || parameters.data.dest ||\n                          parameters.data.action);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the link annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof LinkAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'linkAnnotation';\n\n    let { data, linkService, } = this;\n    let link = document.createElement('a');\n\n    addLinkAttributes(link, {\n      url: data.url,\n      target: (data.newWindow ?\n               LinkTarget.BLANK : linkService.externalLinkTarget),\n      rel: linkService.externalLinkRel,\n    });\n\n    if (!data.url) {\n      if (data.action) {\n        this._bindNamedAction(link, data.action);\n      } else {\n        this._bindLink(link, data.dest);\n      }\n    }\n\n    this.container.appendChild(link);\n    return this.container;\n  }\n\n  /**\n   * Bind internal links to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} destination\n   * @memberof LinkAnnotationElement\n   */\n  _bindLink(link, destination) {\n    link.href = this.linkService.getDestinationHash(destination);\n    link.onclick = () => {\n      if (destination) {\n        this.linkService.navigateTo(destination);\n      }\n      return false;\n    };\n    if (destination) {\n      link.className = 'internalLink';\n    }\n  }\n\n  /**\n   * Bind named actions to the link element.\n   *\n   * @private\n   * @param {Object} link\n   * @param {Object} action\n   * @memberof LinkAnnotationElement\n   */\n  _bindNamedAction(link, action) {\n    link.href = this.linkService.getAnchorUrl('');\n    link.onclick = () => {\n      this.linkService.executeNamedAction(action);\n      return false;\n    };\n    link.className = 'internalLink';\n  }\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the text annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof TextAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'textAnnotation';\n\n    let image = document.createElement('img');\n    image.style.height = this.container.style.height;\n    image.style.width = this.container.style.width;\n    image.src = this.imageResourcesPath + 'annotation-' +\n      this.data.name.toLowerCase() + '.svg';\n    image.alt = '[{{type}} Annotation]';\n    image.dataset.l10nId = 'text_annotation_type';\n    image.dataset.l10nArgs = JSON.stringify({ type: this.data.name, });\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, image, this.data);\n    }\n\n    this.container.appendChild(image);\n    return this.container;\n  }\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n  /**\n   * Render the widget annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof WidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // Show only the container for unsupported field types.\n    return this.container;\n  }\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    let isRenderable = parameters.renderInteractiveForms ||\n      (!parameters.data.hasAppearance && !!parameters.data.fieldValue);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the text widget annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof TextWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    const TEXT_ALIGNMENT = ['left', 'center', 'right'];\n\n    this.container.className = 'textWidgetAnnotation';\n\n    let element = null;\n    if (this.renderInteractiveForms) {\n      // NOTE: We cannot set the values using `element.value` below, since it\n      //       prevents the AnnotationLayer rasterizer in `test/driver.js`\n      //       from parsing the elements correctly for the reference tests.\n      if (this.data.multiLine) {\n        element = document.createElement('textarea');\n        element.textContent = this.data.fieldValue;\n      } else {\n        element = document.createElement('input');\n        element.type = 'text';\n        element.setAttribute('value', this.data.fieldValue);\n      }\n\n      element.disabled = this.data.readOnly;\n\n      if (this.data.maxLen !== null) {\n        element.maxLength = this.data.maxLen;\n      }\n\n      if (this.data.comb) {\n        let fieldWidth = this.data.rect[2] - this.data.rect[0];\n        let combWidth = fieldWidth / this.data.maxLen;\n\n        element.classList.add('comb');\n        element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';\n      }\n    } else {\n      element = document.createElement('div');\n      element.textContent = this.data.fieldValue;\n      element.style.verticalAlign = 'middle';\n      element.style.display = 'table-cell';\n\n      let font = null;\n      if (this.data.fontRefName) {\n        font = this.page.commonObjs.getData(this.data.fontRefName);\n      }\n      this._setTextStyle(element, font);\n    }\n\n    if (this.data.textAlignment !== null) {\n      element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n    }\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n\n  /**\n   * Apply text styles to the text in the element.\n   *\n   * @private\n   * @param {HTMLDivElement} element\n   * @param {Object} font\n   * @memberof TextWidgetAnnotationElement\n   */\n  _setTextStyle(element, font) {\n    // TODO: This duplicates some of the logic in CanvasGraphics.setFont().\n    let style = element.style;\n    style.fontSize = this.data.fontSize + 'px';\n    style.direction = (this.data.fontDirection < 0 ? 'rtl' : 'ltr');\n\n    if (!font) {\n      return;\n    }\n\n    style.fontWeight = (font.black ?\n      (font.bold ? '900' : 'bold') :\n      (font.bold ? 'bold' : 'normal'));\n    style.fontStyle = (font.italic ? 'italic' : 'normal');\n\n    // Use a reasonable default font if the font doesn't specify a fallback.\n    let fontFamily = font.loadedName ? '\"' + font.loadedName + '\", ' : '';\n    let fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n    style.fontFamily = fontFamily + fallbackName;\n  }\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the checkbox widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof CheckboxWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'buttonWidgetAnnotation checkBox';\n\n    let element = document.createElement('input');\n    element.disabled = this.data.readOnly;\n    element.type = 'checkbox';\n    if (this.data.fieldValue && this.data.fieldValue !== 'Off') {\n      element.setAttribute('checked', true);\n    }\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the radio button widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof RadioButtonWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'buttonWidgetAnnotation radioButton';\n\n    let element = document.createElement('input');\n    element.disabled = this.data.readOnly;\n    element.type = 'radio';\n    element.name = this.data.fieldName;\n    if (this.data.fieldValue === this.data.buttonValue) {\n      element.setAttribute('checked', true);\n    }\n\n    this.container.appendChild(element);\n    return this.container;\n  }\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n  /**\n   * Render the push button widget annotation's HTML element\n   * in the empty container.\n   *\n   * @public\n   * @memberof PushButtonWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // The rendering and functionality of a push button widget annotation is\n    // equal to that of a link annotation, but may have more functionality, such\n    // as performing actions on form fields (resetting, submitting, et cetera).\n    let container = super.render();\n    container.className = 'buttonWidgetAnnotation pushButton';\n    return container;\n  }\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n  constructor(parameters) {\n    super(parameters, parameters.renderInteractiveForms);\n  }\n\n  /**\n   * Render the choice widget annotation's HTML element in the empty\n   * container.\n   *\n   * @public\n   * @memberof ChoiceWidgetAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'choiceWidgetAnnotation';\n\n    let selectElement = document.createElement('select');\n    selectElement.disabled = this.data.readOnly;\n\n    if (!this.data.combo) {\n      // List boxes have a size and (optionally) multiple selection.\n      selectElement.size = this.data.options.length;\n\n      if (this.data.multiSelect) {\n        selectElement.multiple = true;\n      }\n    }\n\n    // Insert the options into the choice field.\n    for (let i = 0, ii = this.data.options.length; i < ii; i++) {\n      let option = this.data.options[i];\n\n      let optionElement = document.createElement('option');\n      optionElement.textContent = option.displayValue;\n      optionElement.value = option.exportValue;\n\n      if (this.data.fieldValue.includes(option.displayValue)) {\n        optionElement.setAttribute('selected', true);\n      }\n\n      selectElement.appendChild(optionElement);\n    }\n\n    this.container.appendChild(selectElement);\n    return this.container;\n  }\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable);\n  }\n\n  /**\n   * Render the popup annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof PopupAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    // Do not render popup annotations for parent elements with these types as\n    // they create the popups themselves (because of custom trigger divs).\n    const IGNORE_TYPES = [\n      'Line',\n      'Square',\n      'Circle',\n      'PolyLine',\n      'Polygon',\n      'Ink',\n    ];\n\n    this.container.className = 'popupAnnotation';\n\n    if (IGNORE_TYPES.includes(this.data.parentType)) {\n      return this.container;\n    }\n\n    let selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n    let parentElement = this.layer.querySelector(selector);\n    if (!parentElement) {\n      return this.container;\n    }\n\n    let popup = new PopupElement({\n      container: this.container,\n      trigger: parentElement,\n      color: this.data.color,\n      title: this.data.title,\n      contents: this.data.contents,\n    });\n\n    // Position the popup next to the parent annotation's container.\n    // PDF viewers ignore a popup annotation's rectangle.\n    let parentLeft = parseFloat(parentElement.style.left);\n    let parentWidth = parseFloat(parentElement.style.width);\n    this.container.style.transformOrigin =\n      -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;\n    this.container.style.left = (parentLeft + parentWidth) + 'px';\n\n    this.container.appendChild(popup.render());\n    return this.container;\n  }\n}\n\nclass PopupElement {\n  constructor(parameters) {\n    this.container = parameters.container;\n    this.trigger = parameters.trigger;\n    this.color = parameters.color;\n    this.title = parameters.title;\n    this.contents = parameters.contents;\n    this.hideWrapper = parameters.hideWrapper || false;\n\n    this.pinned = false;\n  }\n\n  /**\n   * Render the popup's HTML element.\n   *\n   * @public\n   * @memberof PopupElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    const BACKGROUND_ENLIGHT = 0.7;\n\n    let wrapper = document.createElement('div');\n    wrapper.className = 'popupWrapper';\n\n    // For Popup annotations we hide the entire section because it contains\n    // only the popup. However, for Text annotations without a separate Popup\n    // annotation, we cannot hide the entire container as the image would\n    // disappear too. In that special case, hiding the wrapper suffices.\n    this.hideElement = (this.hideWrapper ? wrapper : this.container);\n    this.hideElement.setAttribute('hidden', true);\n\n    let popup = document.createElement('div');\n    popup.className = 'popup';\n\n    let color = this.color;\n    if (color) {\n      // Enlighten the color.\n      let r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n      let g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n      let b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n      popup.style.backgroundColor = Util.makeCssRgb(r | 0, g | 0, b | 0);\n    }\n\n    let contents = this._formatContents(this.contents);\n    let title = document.createElement('h1');\n    title.textContent = this.title;\n\n    // Attach the event listeners to the trigger element.\n    this.trigger.addEventListener('click', this._toggle.bind(this));\n    this.trigger.addEventListener('mouseover', this._show.bind(this, false));\n    this.trigger.addEventListener('mouseout', this._hide.bind(this, false));\n    popup.addEventListener('click', this._hide.bind(this, true));\n\n    popup.appendChild(title);\n    popup.appendChild(contents);\n    wrapper.appendChild(popup);\n    return wrapper;\n  }\n\n  /**\n   * Format the contents of the popup by adding newlines where necessary.\n   *\n   * @private\n   * @param {string} contents\n   * @memberof PopupElement\n   * @returns {HTMLParagraphElement}\n   */\n  _formatContents(contents) {\n    let p = document.createElement('p');\n    let lines = contents.split(/(?:\\r\\n?|\\n)/);\n    for (let i = 0, ii = lines.length; i < ii; ++i) {\n      let line = lines[i];\n      p.appendChild(document.createTextNode(line));\n      if (i < (ii - 1)) {\n        p.appendChild(document.createElement('br'));\n      }\n    }\n    return p;\n  }\n\n  /**\n   * Toggle the visibility of the popup.\n   *\n   * @private\n   * @memberof PopupElement\n   */\n  _toggle() {\n    if (this.pinned) {\n      this._hide(true);\n    } else {\n      this._show(true);\n    }\n  }\n\n  /**\n   * Show the popup.\n   *\n   * @private\n   * @param {boolean} pin\n   * @memberof PopupElement\n   */\n  _show(pin = false) {\n    if (pin) {\n      this.pinned = true;\n    }\n    if (this.hideElement.hasAttribute('hidden')) {\n      this.hideElement.removeAttribute('hidden');\n      this.container.style.zIndex += 1;\n    }\n  }\n\n  /**\n   * Hide the popup.\n   *\n   * @private\n   * @param {boolean} unpin\n   * @memberof PopupElement\n   */\n  _hide(unpin = true) {\n    if (unpin) {\n      this.pinned = false;\n    }\n    if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {\n      this.hideElement.setAttribute('hidden', true);\n      this.container.style.zIndex -= 1;\n    }\n  }\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the line annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof LineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'lineAnnotation';\n\n    // Create an invisible line with the same starting and ending coordinates\n    // that acts as the trigger for the popup. Only the line itself should\n    // trigger the popup, not the entire container.\n    let data = this.data;\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n    let svg = this.svgFactory.create(width, height);\n\n    // PDF coordinates are calculated from a bottom left origin, so transform\n    // the line coordinates to a top left origin for the SVG element.\n    let line = this.svgFactory.createElement('svg:line');\n    line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);\n    line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);\n    line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);\n    line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);\n    line.setAttribute('stroke-width', data.borderStyle.width);\n    line.setAttribute('stroke', 'transparent');\n\n    svg.appendChild(line);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the line instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, line, data);\n\n    return this.container;\n  }\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the square annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof SquareAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'squareAnnotation';\n\n    // Create an invisible square with the same rectangle that acts as the\n    // trigger for the popup. Only the square itself should trigger the\n    // popup, not the entire container.\n    let data = this.data;\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n    let svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the square and half of\n    // the borders outside the square by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    let borderWidth = data.borderStyle.width;\n    let square = this.svgFactory.createElement('svg:rect');\n    square.setAttribute('x', borderWidth / 2);\n    square.setAttribute('y', borderWidth / 2);\n    square.setAttribute('width', width - borderWidth);\n    square.setAttribute('height', height - borderWidth);\n    square.setAttribute('stroke-width', borderWidth);\n    square.setAttribute('stroke', 'transparent');\n    square.setAttribute('fill', 'none');\n\n    svg.appendChild(square);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the square instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, square, data);\n\n    return this.container;\n  }\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the circle annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof CircleAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'circleAnnotation';\n\n    // Create an invisible circle with the same ellipse that acts as the\n    // trigger for the popup. Only the circle itself should trigger the\n    // popup, not the entire container.\n    let data = this.data;\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n    let svg = this.svgFactory.create(width, height);\n\n    // The browser draws half of the borders inside the circle and half of\n    // the borders outside the circle by default. This behavior cannot be\n    // changed programmatically, so correct for that here.\n    let borderWidth = data.borderStyle.width;\n    let circle = this.svgFactory.createElement('svg:ellipse');\n    circle.setAttribute('cx', width / 2);\n    circle.setAttribute('cy', height / 2);\n    circle.setAttribute('rx', (width / 2) - (borderWidth / 2));\n    circle.setAttribute('ry', (height / 2) - (borderWidth / 2));\n    circle.setAttribute('stroke-width', borderWidth);\n    circle.setAttribute('stroke', 'transparent');\n    circle.setAttribute('fill', 'none');\n\n    svg.appendChild(circle);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the circle instead\n    // of to the entire container (which is the default).\n    this._createPopup(this.container, circle, data);\n\n    return this.container;\n  }\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n    this.containerClassName = 'polylineAnnotation';\n    this.svgElementName = 'svg:polyline';\n  }\n\n  /**\n   * Render the polyline annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof PolylineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup. Only the polyline itself should trigger the\n    // popup, not the entire container.\n    let data = this.data;\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n    let svg = this.svgFactory.create(width, height);\n\n    // Convert the vertices array to a single points string that the SVG\n    // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n    // calculated from a bottom left origin, so transform the polyline\n    // coordinates to a top left origin for the SVG element.\n    let vertices = data.vertices;\n    let points = [];\n    for (let i = 0, ii = vertices.length; i < ii; i++) {\n      let x = vertices[i].x - data.rect[0];\n      let y = data.rect[3] - vertices[i].y;\n      points.push(x + ',' + y);\n    }\n    points = points.join(' ');\n\n    let borderWidth = data.borderStyle.width;\n    let polyline = this.svgFactory.createElement(this.svgElementName);\n    polyline.setAttribute('points', points);\n    polyline.setAttribute('stroke-width', borderWidth);\n    polyline.setAttribute('stroke', 'transparent');\n    polyline.setAttribute('fill', 'none');\n\n    svg.appendChild(polyline);\n    this.container.append(svg);\n\n    // Create the popup ourselves so that we can bind it to the polyline\n    // instead of to the entire container (which is the default).\n    this._createPopup(this.container, polyline, data);\n\n    return this.container;\n  }\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n  constructor(parameters) {\n    // Polygons are specific forms of polylines, so reuse their logic.\n    super(parameters);\n\n    this.containerClassName = 'polygonAnnotation';\n    this.svgElementName = 'svg:polygon';\n  }\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n\n    this.containerClassName = 'inkAnnotation';\n\n    // Use the polyline SVG element since it allows us to use coordinates\n    // directly and to draw both straight lines and curves.\n    this.svgElementName = 'svg:polyline';\n  }\n\n  /**\n   * Render the ink annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof InkAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = this.containerClassName;\n\n    // Create an invisible polyline with the same points that acts as the\n    // trigger for the popup.\n    let data = this.data;\n    let width = data.rect[2] - data.rect[0];\n    let height = data.rect[3] - data.rect[1];\n    let svg = this.svgFactory.create(width, height);\n\n    let inkLists = data.inkLists;\n    for (let i = 0, ii = inkLists.length; i < ii; i++) {\n      let inkList = inkLists[i];\n      let points = [];\n\n      // Convert the ink list to a single points string that the SVG\n      // polyline element expects (\"x1,y1 x2,y2 ...\"). PDF coordinates are\n      // calculated from a bottom left origin, so transform the polyline\n      // coordinates to a top left origin for the SVG element.\n      for (let j = 0, jj = inkList.length; j < jj; j++) {\n        let x = inkList[j].x - data.rect[0];\n        let y = data.rect[3] - inkList[j].y;\n        points.push(x + ',' + y);\n      }\n\n      points = points.join(' ');\n\n      let borderWidth = data.borderStyle.width;\n      let polyline = this.svgFactory.createElement(this.svgElementName);\n      polyline.setAttribute('points', points);\n      polyline.setAttribute('stroke-width', borderWidth);\n      polyline.setAttribute('stroke', 'transparent');\n      polyline.setAttribute('fill', 'none');\n\n      // Create the popup ourselves so that we can bind it to the polyline\n      // instead of to the entire container (which is the default).\n      this._createPopup(this.container, polyline, data);\n\n      svg.appendChild(polyline);\n    }\n\n    this.container.append(svg);\n\n    return this.container;\n  }\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the highlight annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof HighlightAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'highlightAnnotation';\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the underline annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof UnderlineAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'underlineAnnotation';\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the squiggly annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof SquigglyAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'squigglyAnnotation';\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the strikeout annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof StrikeOutAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'strikeoutAnnotation';\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    let isRenderable = !!(parameters.data.hasPopup ||\n                          parameters.data.title || parameters.data.contents);\n    super(parameters, isRenderable, /* ignoreBorder = */ true);\n  }\n\n  /**\n   * Render the stamp annotation's HTML element in the empty container.\n   *\n   * @public\n   * @memberof StampAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'stampAnnotation';\n\n    if (!this.data.hasPopup) {\n      this._createPopup(this.container, null, this.data);\n    }\n    return this.container;\n  }\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n  constructor(parameters) {\n    super(parameters, /* isRenderable = */ true);\n\n    const { filename, content, } = this.data.file;\n    this.filename = getFilenameFromUrl(filename);\n    this.content = content;\n\n    if (this.linkService.eventBus) {\n      this.linkService.eventBus.dispatch('fileattachmentannotation', {\n        source: this,\n        id: stringToPDFString(filename),\n        filename,\n        content,\n      });\n    }\n  }\n\n  /**\n   * Render the file attachment annotation's HTML element in the empty\n   * container.\n   *\n   * @public\n   * @memberof FileAttachmentAnnotationElement\n   * @returns {HTMLSectionElement}\n   */\n  render() {\n    this.container.className = 'fileAttachmentAnnotation';\n\n    let trigger = document.createElement('div');\n    trigger.style.height = this.container.style.height;\n    trigger.style.width = this.container.style.width;\n    trigger.addEventListener('dblclick', this._download.bind(this));\n\n    if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n      this._createPopup(this.container, trigger, this.data);\n    }\n\n    this.container.appendChild(trigger);\n    return this.container;\n  }\n\n  /**\n   * Download the file attachment associated with this annotation.\n   *\n   * @private\n   * @memberof FileAttachmentAnnotationElement\n   */\n  _download() {\n    if (!this.downloadManager) {\n      warn('Download cannot be started due to unavailable download manager');\n      return;\n    }\n    this.downloadManager.downloadData(this.content, this.filename, '');\n  }\n}\n\n/**\n * @typedef {Object} AnnotationLayerParameters\n * @property {PageViewport} viewport\n * @property {HTMLDivElement} div\n * @property {Array} annotations\n * @property {PDFPage} page\n * @property {IPDFLinkService} linkService\n * @property {DownloadManager} downloadManager\n * @property {string} imageResourcesPath - (optional) Path for image resources,\n *   mainly for annotation icons. Include trailing slash.\n * @property {boolean} renderInteractiveForms\n */\n\nclass AnnotationLayer {\n  /**\n   * Render a new annotation layer with all annotation elements.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static render(parameters) {\n    for (let i = 0, ii = parameters.annotations.length; i < ii; i++) {\n      let data = parameters.annotations[i];\n      if (!data) {\n        continue;\n      }\n      let element = AnnotationElementFactory.create({\n        data,\n        layer: parameters.div,\n        page: parameters.page,\n        viewport: parameters.viewport,\n        linkService: parameters.linkService,\n        downloadManager: parameters.downloadManager,\n        imageResourcesPath: parameters.imageResourcesPath || '',\n        renderInteractiveForms: parameters.renderInteractiveForms || false,\n        svgFactory: new DOMSVGFactory(),\n      });\n      if (element.isRenderable) {\n        parameters.div.appendChild(element.render());\n      }\n    }\n  }\n\n  /**\n   * Update the annotation elements on existing annotation layer.\n   *\n   * @public\n   * @param {AnnotationLayerParameters} parameters\n   * @memberof AnnotationLayer\n   */\n  static update(parameters) {\n    for (let i = 0, ii = parameters.annotations.length; i < ii; i++) {\n      let data = parameters.annotations[i];\n      let element = parameters.div.querySelector(\n        '[data-annotation-id=\"' + data.id + '\"]');\n      if (element) {\n        element.style.transform =\n          'matrix(' + parameters.viewport.transform.join(',') + ')';\n      }\n    }\n    parameters.div.removeAttribute('hidden');\n  }\n}\n\nexport {\n  AnnotationLayer,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nimport {\n  createObjectURL, FONT_IDENTITY_MATRIX, IDENTITY_MATRIX, ImageKind, isNum, OPS,\n  TextRenderingMode, Util, warn\n} from '../shared/util';\nimport { DOMSVGFactory } from './dom_utils';\nimport isNodeJS from '../shared/is_node';\n\nvar SVGGraphics = function() {\n  throw new Error('Not implemented: SVGGraphics');\n};\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n\nvar SVG_DEFAULTS = {\n  fontStyle: 'normal',\n  fontWeight: 'normal',\n  fillColor: '#000000',\n};\n\nvar convertImgDataToPng = (function convertImgDataToPngClosure() {\n  var PNG_HEADER =\n    new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n\n  var CHUNK_WRAPPER_SIZE = 12;\n\n  var crcTable = new Int32Array(256);\n  for (var i = 0; i < 256; i++) {\n    var c = i;\n    for (var h = 0; h < 8; h++) {\n      if (c & 1) {\n        c = 0xedB88320 ^ ((c >> 1) & 0x7fffffff);\n      } else {\n        c = (c >> 1) & 0x7fffffff;\n      }\n    }\n    crcTable[i] = c;\n  }\n\n  function crc32(data, start, end) {\n    var crc = -1;\n    for (var i = start; i < end; i++) {\n      var a = (crc ^ data[i]) & 0xff;\n      var b = crcTable[a];\n      crc = (crc >>> 8) ^ b;\n    }\n    return crc ^ -1;\n  }\n\n  function writePngChunk(type, body, data, offset) {\n    var p = offset;\n    var len = body.length;\n\n    data[p] = len >> 24 & 0xff;\n    data[p + 1] = len >> 16 & 0xff;\n    data[p + 2] = len >> 8 & 0xff;\n    data[p + 3] = len & 0xff;\n    p += 4;\n\n    data[p] = type.charCodeAt(0) & 0xff;\n    data[p + 1] = type.charCodeAt(1) & 0xff;\n    data[p + 2] = type.charCodeAt(2) & 0xff;\n    data[p + 3] = type.charCodeAt(3) & 0xff;\n    p += 4;\n\n    data.set(body, p);\n    p += body.length;\n\n    var crc = crc32(data, offset + 4, p);\n\n    data[p] = crc >> 24 & 0xff;\n    data[p + 1] = crc >> 16 & 0xff;\n    data[p + 2] = crc >> 8 & 0xff;\n    data[p + 3] = crc & 0xff;\n  }\n\n  function adler32(data, start, end) {\n    var a = 1;\n    var b = 0;\n    for (var i = start; i < end; ++i) {\n      a = (a + (data[i] & 0xff)) % 65521;\n      b = (b + a) % 65521;\n    }\n    return (b << 16) | a;\n  }\n\n  /**\n   * @param {Uint8Array} literals The input data.\n   * @returns {Uint8Array} The DEFLATE-compressed data stream in zlib format.\n   *   This is the required format for compressed streams in the PNG format:\n   *   http://www.libpng.org/pub/png/spec/1.2/PNG-Compression.html\n   */\n  function deflateSync(literals) {\n    if (!isNodeJS()) {\n      // zlib is certainly not available outside of Node.js. We can either use\n      // the pako library for client-side DEFLATE compression, or use the canvas\n      // API of the browser to obtain a more optimal PNG file.\n      return deflateSyncUncompressed(literals);\n    }\n    try {\n      // NOTE: This implementation is far from perfect, but already way better\n      // than not applying any compression.\n      //\n      // A better algorithm will try to choose a good predictor/filter and\n      // then choose a suitable zlib compression strategy (e.g. 3,Z_RLE).\n      //\n      // Node v0.11.12 zlib.deflateSync is introduced (and returns a Buffer).\n      // Node v3.0.0   Buffer inherits from Uint8Array.\n      // Node v8.0.0   zlib.deflateSync accepts Uint8Array as input.\n      var input;\n        // eslint-disable-next-line no-undef\n      if (parseInt(process.versions.node) >= 8) {\n        input = literals;\n      } else {\n        // eslint-disable-next-line no-undef\n        input = new Buffer(literals);\n      }\n      var output = __non_webpack_require__('zlib')\n        .deflateSync(input, { level: 9, });\n      return output instanceof Uint8Array ? output : new Uint8Array(output);\n    } catch (e) {\n      warn('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n    }\n\n    return deflateSyncUncompressed(literals);\n  }\n\n  // An implementation of DEFLATE with compression level 0 (Z_NO_COMPRESSION).\n  function deflateSyncUncompressed(literals) {\n    var len = literals.length;\n    var maxBlockLength = 0xFFFF;\n\n    var deflateBlocks = Math.ceil(len / maxBlockLength);\n    var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n    var pi = 0;\n    idat[pi++] = 0x78; // compression method and flags\n    idat[pi++] = 0x9c; // flags\n\n    var pos = 0;\n    while (len > maxBlockLength) {\n      // writing non-final DEFLATE blocks type 0 and length of 65535\n      idat[pi++] = 0x00;\n      idat[pi++] = 0xff;\n      idat[pi++] = 0xff;\n      idat[pi++] = 0x00;\n      idat[pi++] = 0x00;\n      idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n      pi += maxBlockLength;\n      pos += maxBlockLength;\n      len -= maxBlockLength;\n    }\n\n    // writing non-final DEFLATE blocks type 0\n    idat[pi++] = 0x01;\n    idat[pi++] = len & 0xff;\n    idat[pi++] = len >> 8 & 0xff;\n    idat[pi++] = (~len & 0xffff) & 0xff;\n    idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n    idat.set(literals.subarray(pos), pi);\n    pi += literals.length - pos;\n\n    var adler = adler32(literals, 0, literals.length); // checksum\n    idat[pi++] = adler >> 24 & 0xff;\n    idat[pi++] = adler >> 16 & 0xff;\n    idat[pi++] = adler >> 8 & 0xff;\n    idat[pi++] = adler & 0xff;\n    return idat;\n  }\n\n  function encode(imgData, kind, forceDataSchema, isMask) {\n    var width = imgData.width;\n    var height = imgData.height;\n    var bitDepth, colorType, lineSize;\n    var bytes = imgData.data;\n\n    switch (kind) {\n      case ImageKind.GRAYSCALE_1BPP:\n        colorType = 0;\n        bitDepth = 1;\n        lineSize = (width + 7) >> 3;\n        break;\n      case ImageKind.RGB_24BPP:\n        colorType = 2;\n        bitDepth = 8;\n        lineSize = width * 3;\n        break;\n      case ImageKind.RGBA_32BPP:\n        colorType = 6;\n        bitDepth = 8;\n        lineSize = width * 4;\n        break;\n      default:\n        throw new Error('invalid format');\n    }\n\n    // prefix every row with predictor 0\n    var literals = new Uint8Array((1 + lineSize) * height);\n    var offsetLiterals = 0, offsetBytes = 0;\n    var y, i;\n    for (y = 0; y < height; ++y) {\n      literals[offsetLiterals++] = 0; // no prediction\n      literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize),\n                   offsetLiterals);\n      offsetBytes += lineSize;\n      offsetLiterals += lineSize;\n    }\n\n    if (kind === ImageKind.GRAYSCALE_1BPP && isMask) {\n      // inverting for image masks\n      offsetLiterals = 0;\n      for (y = 0; y < height; y++) {\n        offsetLiterals++; // skipping predictor\n        for (i = 0; i < lineSize; i++) {\n          literals[offsetLiterals++] ^= 0xFF;\n        }\n      }\n    }\n\n    var ihdr = new Uint8Array([\n      width >> 24 & 0xff,\n      width >> 16 & 0xff,\n      width >> 8 & 0xff,\n      width & 0xff,\n      height >> 24 & 0xff,\n      height >> 16 & 0xff,\n      height >> 8 & 0xff,\n      height & 0xff,\n      bitDepth, // bit depth\n      colorType, // color type\n      0x00, // compression method\n      0x00, // filter method\n      0x00 // interlace method\n    ]);\n\n    var idat = deflateSync(literals);\n\n    // PNG will consists: header, IHDR+data, IDAT+data, and IEND.\n    var pngLength = PNG_HEADER.length + (CHUNK_WRAPPER_SIZE * 3) +\n                    ihdr.length + idat.length;\n    var data = new Uint8Array(pngLength);\n    var offset = 0;\n    data.set(PNG_HEADER, offset);\n    offset += PNG_HEADER.length;\n    writePngChunk('IHDR', ihdr, data, offset);\n    offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n    writePngChunk('IDATA', idat, data, offset);\n    offset += CHUNK_WRAPPER_SIZE + idat.length;\n    writePngChunk('IEND', new Uint8Array(0), data, offset);\n\n    return createObjectURL(data, 'image/png', forceDataSchema);\n  }\n\n  return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n    var kind = (imgData.kind === undefined ?\n                ImageKind.GRAYSCALE_1BPP : imgData.kind);\n    return encode(imgData, kind, forceDataSchema, isMask);\n  };\n})();\n\nvar SVGExtraState = (function SVGExtraStateClosure() {\n  function SVGExtraState() {\n    this.fontSizeScale = 1;\n    this.fontWeight = SVG_DEFAULTS.fontWeight;\n    this.fontSize = 0;\n\n    this.textMatrix = IDENTITY_MATRIX;\n    this.fontMatrix = FONT_IDENTITY_MATRIX;\n    this.leading = 0;\n    this.textRenderingMode = TextRenderingMode.FILL;\n\n    // Current point (in user coordinates)\n    this.x = 0;\n    this.y = 0;\n\n    // Start of text line (in text coordinates)\n    this.lineX = 0;\n    this.lineY = 0;\n\n    // Character and word spacing\n    this.charSpacing = 0;\n    this.wordSpacing = 0;\n    this.textHScale = 1;\n    this.textRise = 0;\n\n    // Default foreground and background colors\n    this.fillColor = SVG_DEFAULTS.fillColor;\n    this.strokeColor = '#000000';\n\n    this.fillAlpha = 1;\n    this.strokeAlpha = 1;\n    this.lineWidth = 1;\n    this.lineJoin = '';\n    this.lineCap = '';\n    this.miterLimit = 0;\n\n    this.dashArray = [];\n    this.dashPhase = 0;\n\n    this.dependencies = [];\n\n    // Clipping\n    this.activeClipUrl = null;\n    this.clipGroup = null;\n\n    this.maskId = '';\n  }\n\n  SVGExtraState.prototype = {\n    clone: function SVGExtraState_clone() {\n      return Object.create(this);\n    },\n    setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {\n      this.x = x;\n      this.y = y;\n    },\n  };\n  return SVGExtraState;\n})();\n\nSVGGraphics = (function SVGGraphicsClosure() {\n  function opListToTree(opList) {\n    var opTree = [];\n    var tmp = [];\n    var opListLen = opList.length;\n\n    for (var x = 0; x < opListLen; x++) {\n      if (opList[x].fn === 'save') {\n        opTree.push({ 'fnId': 92, 'fn': 'group', 'items': [], });\n        tmp.push(opTree);\n        opTree = opTree[opTree.length - 1].items;\n        continue;\n      }\n\n      if (opList[x].fn === 'restore') {\n        opTree = tmp.pop();\n      } else {\n        opTree.push(opList[x]);\n      }\n    }\n    return opTree;\n  }\n\n  /**\n   * Formats float number.\n   * @param value {number} number to format.\n   * @returns {string}\n   */\n  function pf(value) {\n    if (Number.isInteger(value)) {\n      return value.toString();\n    }\n    var s = value.toFixed(10);\n    var i = s.length - 1;\n    if (s[i] !== '0') {\n      return s;\n    }\n    // removing trailing zeros\n    do {\n      i--;\n    } while (s[i] === '0');\n    return s.substring(0, s[i] === '.' ? i : i + 1);\n  }\n\n  /**\n   * Formats transform matrix. The standard rotation, scale and translate\n   * matrices are replaced by their shorter forms, and for identity matrix\n   * returns empty string to save the memory.\n   * @param m {Array} matrix to format.\n   * @returns {string}\n   */\n  function pm(m) {\n    if (m[4] === 0 && m[5] === 0) {\n      if (m[1] === 0 && m[2] === 0) {\n        if (m[0] === 1 && m[3] === 1) {\n          return '';\n        }\n        return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';\n      }\n      if (m[0] === m[3] && m[1] === -m[2]) {\n        var a = Math.acos(m[0]) * 180 / Math.PI;\n        return 'rotate(' + pf(a) + ')';\n      }\n    } else {\n      if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n        return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n      }\n    }\n    return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' +\n      pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n  }\n\n  function SVGGraphics(commonObjs, objs, forceDataSchema) {\n    this.svgFactory = new DOMSVGFactory();\n\n    this.current = new SVGExtraState();\n    this.transformMatrix = IDENTITY_MATRIX; // Graphics state matrix\n    this.transformStack = [];\n    this.extraStack = [];\n    this.commonObjs = commonObjs;\n    this.objs = objs;\n    this.pendingClip = null;\n    this.pendingEOFill = false;\n\n    this.embedFonts = false;\n    this.embeddedFonts = Object.create(null);\n    this.cssStyle = null;\n    this.forceDataSchema = !!forceDataSchema;\n  }\n\n  var XML_NS = 'http://www.w3.org/XML/1998/namespace';\n  var XLINK_NS = 'http://www.w3.org/1999/xlink';\n  var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n  var clipCount = 0;\n  var maskCount = 0;\n\n  SVGGraphics.prototype = {\n    save: function SVGGraphics_save() {\n      this.transformStack.push(this.transformMatrix);\n      var old = this.current;\n      this.extraStack.push(old);\n      this.current = old.clone();\n    },\n\n    restore: function SVGGraphics_restore() {\n      this.transformMatrix = this.transformStack.pop();\n      this.current = this.extraStack.pop();\n\n      this.pendingClip = null;\n      this.tgrp = null;\n    },\n\n    group: function SVGGraphics_group(items) {\n      this.save();\n      this.executeOpTree(items);\n      this.restore();\n    },\n\n    loadDependencies: function SVGGraphics_loadDependencies(operatorList) {\n      var fnArray = operatorList.fnArray;\n      var fnArrayLen = fnArray.length;\n      var argsArray = operatorList.argsArray;\n\n      for (var i = 0; i < fnArrayLen; i++) {\n        if (OPS.dependency === fnArray[i]) {\n          var deps = argsArray[i];\n          for (var n = 0, nn = deps.length; n < nn; n++) {\n            var obj = deps[n];\n            var common = obj.substring(0, 2) === 'g_';\n            var promise;\n            if (common) {\n              promise = new Promise((resolve) => {\n                this.commonObjs.get(obj, resolve);\n              });\n            } else {\n              promise = new Promise((resolve) => {\n                this.objs.get(obj, resolve);\n              });\n            }\n            this.current.dependencies.push(promise);\n          }\n        }\n      }\n      return Promise.all(this.current.dependencies);\n    },\n\n    transform: function SVGGraphics_transform(a, b, c, d, e, f) {\n      var transformMatrix = [a, b, c, d, e, f];\n      this.transformMatrix = Util.transform(this.transformMatrix,\n                                            transformMatrix);\n      this.tgrp = null;\n    },\n\n    getSVG: function SVGGraphics_getSVG(operatorList, viewport) {\n      this.viewport = viewport;\n\n      var svgElement = this._initialize(viewport);\n      return this.loadDependencies(operatorList).then(() => {\n        this.transformMatrix = IDENTITY_MATRIX;\n        var opTree = this.convertOpList(operatorList);\n        this.executeOpTree(opTree);\n        return svgElement;\n      });\n    },\n\n    convertOpList: function SVGGraphics_convertOpList(operatorList) {\n      var argsArray = operatorList.argsArray;\n      var fnArray = operatorList.fnArray;\n      var fnArrayLen = fnArray.length;\n      var REVOPS = [];\n      var opList = [];\n\n      for (var op in OPS) {\n        REVOPS[OPS[op]] = op;\n      }\n\n      for (var x = 0; x < fnArrayLen; x++) {\n        var fnId = fnArray[x];\n        opList.push({\n          'fnId': fnId,\n          'fn': REVOPS[fnId],\n          'args': argsArray[x],\n        });\n      }\n      return opListToTree(opList);\n    },\n\n    executeOpTree: function SVGGraphics_executeOpTree(opTree) {\n      var opTreeLen = opTree.length;\n      for (var x = 0; x < opTreeLen; x++) {\n        var fn = opTree[x].fn;\n        var fnId = opTree[x].fnId;\n        var args = opTree[x].args;\n\n        switch (fnId | 0) {\n          case OPS.beginText:\n            this.beginText();\n            break;\n          case OPS.dependency:\n            // Handled in loadDependencies, warning should not be thrown\n            break;\n          case OPS.setLeading:\n            this.setLeading(args);\n            break;\n          case OPS.setLeadingMoveText:\n            this.setLeadingMoveText(args[0], args[1]);\n            break;\n          case OPS.setFont:\n            this.setFont(args);\n            break;\n          case OPS.showText:\n            this.showText(args[0]);\n            break;\n          case OPS.showSpacedText:\n            this.showText(args[0]);\n            break;\n          case OPS.endText:\n            this.endText();\n            break;\n          case OPS.moveText:\n            this.moveText(args[0], args[1]);\n            break;\n          case OPS.setCharSpacing:\n            this.setCharSpacing(args[0]);\n            break;\n          case OPS.setWordSpacing:\n            this.setWordSpacing(args[0]);\n            break;\n          case OPS.setHScale:\n            this.setHScale(args[0]);\n            break;\n          case OPS.setTextMatrix:\n            this.setTextMatrix(args[0], args[1], args[2],\n                               args[3], args[4], args[5]);\n            break;\n          case OPS.setTextRise:\n            this.setTextRise(args[0]);\n            break;\n          case OPS.setTextRenderingMode:\n            this.setTextRenderingMode(args[0]);\n            break;\n          case OPS.setLineWidth:\n            this.setLineWidth(args[0]);\n            break;\n          case OPS.setLineJoin:\n            this.setLineJoin(args[0]);\n            break;\n          case OPS.setLineCap:\n            this.setLineCap(args[0]);\n            break;\n          case OPS.setMiterLimit:\n            this.setMiterLimit(args[0]);\n            break;\n          case OPS.setFillRGBColor:\n            this.setFillRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setStrokeRGBColor:\n            this.setStrokeRGBColor(args[0], args[1], args[2]);\n            break;\n          case OPS.setDash:\n            this.setDash(args[0], args[1]);\n            break;\n          case OPS.setGState:\n            this.setGState(args[0]);\n            break;\n          case OPS.fill:\n            this.fill();\n            break;\n          case OPS.eoFill:\n            this.eoFill();\n            break;\n          case OPS.stroke:\n            this.stroke();\n            break;\n          case OPS.fillStroke:\n            this.fillStroke();\n            break;\n          case OPS.eoFillStroke:\n            this.eoFillStroke();\n            break;\n          case OPS.clip:\n            this.clip('nonzero');\n            break;\n          case OPS.eoClip:\n            this.clip('evenodd');\n            break;\n          case OPS.paintSolidColorImageMask:\n            this.paintSolidColorImageMask();\n            break;\n          case OPS.paintJpegXObject:\n            this.paintJpegXObject(args[0], args[1], args[2]);\n            break;\n          case OPS.paintImageXObject:\n            this.paintImageXObject(args[0]);\n            break;\n          case OPS.paintInlineImageXObject:\n            this.paintInlineImageXObject(args[0]);\n            break;\n          case OPS.paintImageMaskXObject:\n            this.paintImageMaskXObject(args[0]);\n            break;\n          case OPS.paintFormXObjectBegin:\n            this.paintFormXObjectBegin(args[0], args[1]);\n            break;\n          case OPS.paintFormXObjectEnd:\n            this.paintFormXObjectEnd();\n            break;\n          case OPS.closePath:\n            this.closePath();\n            break;\n          case OPS.closeStroke:\n            this.closeStroke();\n            break;\n          case OPS.closeFillStroke:\n            this.closeFillStroke();\n            break;\n          case OPS.closeEOFillStroke:\n            this.closeEOFillStroke();\n            break;\n          case OPS.nextLine:\n            this.nextLine();\n            break;\n          case OPS.transform:\n            this.transform(args[0], args[1], args[2], args[3],\n                           args[4], args[5]);\n            break;\n          case OPS.constructPath:\n            this.constructPath(args[0], args[1]);\n            break;\n          case OPS.endPath:\n            this.endPath();\n            break;\n          case 92:\n            this.group(opTree[x].items);\n            break;\n          default:\n            warn('Unimplemented operator ' + fn);\n            break;\n        }\n      }\n    },\n\n    setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {\n      this.current.wordSpacing = wordSpacing;\n    },\n\n    setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {\n      this.current.charSpacing = charSpacing;\n    },\n\n    nextLine: function SVGGraphics_nextLine() {\n      this.moveText(0, this.current.leading);\n    },\n\n    setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {\n      var current = this.current;\n      this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];\n\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n\n      current.xcoords = [];\n      current.tspan = this.svgFactory.createElement('svg:tspan');\n      current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n      current.tspan.setAttributeNS(null, 'font-size',\n                                   pf(current.fontSize) + 'px');\n      current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n\n      current.txtElement = this.svgFactory.createElement('svg:text');\n      current.txtElement.appendChild(current.tspan);\n    },\n\n    beginText: function SVGGraphics_beginText() {\n      this.current.x = this.current.lineX = 0;\n      this.current.y = this.current.lineY = 0;\n      this.current.textMatrix = IDENTITY_MATRIX;\n      this.current.lineMatrix = IDENTITY_MATRIX;\n      this.current.tspan = this.svgFactory.createElement('svg:tspan');\n      this.current.txtElement = this.svgFactory.createElement('svg:text');\n      this.current.txtgrp = this.svgFactory.createElement('svg:g');\n      this.current.xcoords = [];\n    },\n\n    moveText: function SVGGraphics_moveText(x, y) {\n      var current = this.current;\n      this.current.x = this.current.lineX += x;\n      this.current.y = this.current.lineY += y;\n\n      current.xcoords = [];\n      current.tspan = this.svgFactory.createElement('svg:tspan');\n      current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n      current.tspan.setAttributeNS(null, 'font-size',\n                                   pf(current.fontSize) + 'px');\n      current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n    },\n\n    showText: function SVGGraphics_showText(glyphs) {\n      var current = this.current;\n      var font = current.font;\n      var fontSize = current.fontSize;\n\n      if (fontSize === 0) {\n        return;\n      }\n\n      var charSpacing = current.charSpacing;\n      var wordSpacing = current.wordSpacing;\n      var fontDirection = current.fontDirection;\n      var textHScale = current.textHScale * fontDirection;\n      var glyphsLength = glyphs.length;\n      var vertical = font.vertical;\n      var widthAdvanceScale = fontSize * current.fontMatrix[0];\n\n      var x = 0, i;\n      for (i = 0; i < glyphsLength; ++i) {\n        var glyph = glyphs[i];\n        if (glyph === null) {\n          // word break\n          x += fontDirection * wordSpacing;\n          continue;\n        } else if (isNum(glyph)) {\n          x += -glyph * fontSize * 0.001;\n          continue;\n        }\n\n        var width = glyph.width;\n        var character = glyph.fontChar;\n        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n        var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n\n        if (!glyph.isInFont && !font.missingFile) {\n          x += charWidth;\n          // TODO: To assist with text selection, we should replace the missing\n          // character with a space character if charWidth is not zero.\n          // But we cannot just do \"character = ' '\", because the ' ' character\n          // might actually map to a different glyph.\n          continue;\n        }\n        current.xcoords.push(current.x + x * textHScale);\n        current.tspan.textContent += character;\n        x += charWidth;\n      }\n      if (vertical) {\n        current.y -= x * textHScale;\n      } else {\n        current.x += x * textHScale;\n      }\n\n      current.tspan.setAttributeNS(null, 'x',\n                                   current.xcoords.map(pf).join(' '));\n      current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n      current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n      current.tspan.setAttributeNS(null, 'font-size',\n                                   pf(current.fontSize) + 'px');\n      if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n        current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n      }\n      if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n        current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n      }\n\n      const fillStrokeMode = current.textRenderingMode &\n        TextRenderingMode.FILL_STROKE_MASK;\n\n      if (fillStrokeMode === TextRenderingMode.FILL ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n          current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n        }\n        if (current.fillAlpha < 1) {\n          current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n        }\n      } else if (current.textRenderingMode === TextRenderingMode.ADD_TO_PATH) {\n        // Workaround for Firefox: We must set fill=\"transparent\" because\n        // fill=\"none\" would generate an empty clipping path.\n        current.tspan.setAttributeNS(null, 'fill', 'transparent');\n      } else {\n        current.tspan.setAttributeNS(null, 'fill', 'none');\n      }\n\n      if (fillStrokeMode === TextRenderingMode.STROKE ||\n          fillStrokeMode === TextRenderingMode.FILL_STROKE) {\n        this._setStrokeAttributes(current.tspan);\n      }\n\n      // Include the text rise in the text matrix since the `pm` function\n      // creates the SVG element's `translate` entry (work on a copy to avoid\n      // altering the original text matrix).\n      let textMatrix = current.textMatrix;\n      if (current.textRise !== 0) {\n        textMatrix = textMatrix.slice();\n        textMatrix[5] += current.textRise;\n      }\n\n      current.txtElement.setAttributeNS(null, 'transform',\n                                        pm(textMatrix) + ' scale(1, -1)');\n      current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');\n      current.txtElement.appendChild(current.tspan);\n      current.txtgrp.appendChild(current.txtElement);\n\n      this._ensureTransformGroup().appendChild(current.txtElement);\n    },\n\n    setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {\n      this.setLeading(-y);\n      this.moveText(x, y);\n    },\n\n    addFontStyle: function SVGGraphics_addFontStyle(fontObj) {\n      if (!this.cssStyle) {\n        this.cssStyle = this.svgFactory.createElement('svg:style');\n        this.cssStyle.setAttributeNS(null, 'type', 'text/css');\n        this.defs.appendChild(this.cssStyle);\n      }\n\n      var url = createObjectURL(fontObj.data, fontObj.mimetype,\n                                this.forceDataSchema);\n      this.cssStyle.textContent +=\n        '@font-face { font-family: \"' + fontObj.loadedName + '\";' +\n        ' src: url(' + url + '); }\\n';\n    },\n\n    setFont: function SVGGraphics_setFont(details) {\n      var current = this.current;\n      var fontObj = this.commonObjs.get(details[0]);\n      var size = details[1];\n      this.current.font = fontObj;\n\n      if (this.embedFonts && fontObj.data &&\n          !this.embeddedFonts[fontObj.loadedName]) {\n        this.addFontStyle(fontObj);\n        this.embeddedFonts[fontObj.loadedName] = fontObj;\n      }\n\n      current.fontMatrix = (fontObj.fontMatrix ?\n                            fontObj.fontMatrix : FONT_IDENTITY_MATRIX);\n\n      var bold = fontObj.black ? (fontObj.bold ? 'bolder' : 'bold') :\n                                 (fontObj.bold ? 'bold' : 'normal');\n      var italic = fontObj.italic ? 'italic' : 'normal';\n\n      if (size < 0) {\n        size = -size;\n        current.fontDirection = -1;\n      } else {\n        current.fontDirection = 1;\n      }\n      current.fontSize = size;\n      current.fontFamily = fontObj.loadedName;\n      current.fontWeight = bold;\n      current.fontStyle = italic;\n\n      current.tspan = this.svgFactory.createElement('svg:tspan');\n      current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n      current.xcoords = [];\n    },\n\n    endText() {\n      const current = this.current;\n      if ((current.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG) &&\n          current.txtElement && current.txtElement.hasChildNodes()) {\n        // If no glyphs are shown (i.e. no child nodes), no clipping occurs.\n        current.element = current.txtElement;\n        this.clip('nonzero');\n        this.endPath();\n      }\n    },\n\n    // Path properties\n    setLineWidth: function SVGGraphics_setLineWidth(width) {\n      this.current.lineWidth = width;\n    },\n    setLineCap: function SVGGraphics_setLineCap(style) {\n      this.current.lineCap = LINE_CAP_STYLES[style];\n    },\n    setLineJoin: function SVGGraphics_setLineJoin(style) {\n      this.current.lineJoin = LINE_JOIN_STYLES[style];\n    },\n    setMiterLimit: function SVGGraphics_setMiterLimit(limit) {\n      this.current.miterLimit = limit;\n    },\n    setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {\n      this.current.strokeAlpha = strokeAlpha;\n    },\n    setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.current.strokeColor = color;\n    },\n    setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {\n      this.current.fillAlpha = fillAlpha;\n    },\n    setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {\n      var color = Util.makeCssRgb(r, g, b);\n      this.current.fillColor = color;\n      this.current.tspan = this.svgFactory.createElement('svg:tspan');\n      this.current.xcoords = [];\n    },\n    setDash: function SVGGraphics_setDash(dashArray, dashPhase) {\n      this.current.dashArray = dashArray;\n      this.current.dashPhase = dashPhase;\n    },\n\n    constructPath: function SVGGraphics_constructPath(ops, args) {\n      var current = this.current;\n      var x = current.x, y = current.y;\n      current.path = this.svgFactory.createElement('svg:path');\n      var d = [];\n      var opLength = ops.length;\n\n      for (var i = 0, j = 0; i < opLength; i++) {\n        switch (ops[i] | 0) {\n          case OPS.rectangle:\n            x = args[j++];\n            y = args[j++];\n            var width = args[j++];\n            var height = args[j++];\n            var xw = x + width;\n            var yh = y + height;\n            d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh),\n                   'L', pf(x), pf(yh), 'Z');\n            break;\n          case OPS.moveTo:\n            x = args[j++];\n            y = args[j++];\n            d.push('M', pf(x), pf(y));\n            break;\n          case OPS.lineTo:\n            x = args[j++];\n            y = args[j++];\n            d.push('L', pf(x), pf(y));\n            break;\n          case OPS.curveTo:\n            x = args[j + 4];\n            y = args[j + 5];\n            d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]),\n                   pf(args[j + 3]), pf(x), pf(y));\n            j += 6;\n            break;\n          case OPS.curveTo2:\n            x = args[j + 2];\n            y = args[j + 3];\n            d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]),\n                   pf(args[j + 2]), pf(args[j + 3]));\n            j += 4;\n            break;\n          case OPS.curveTo3:\n            x = args[j + 2];\n            y = args[j + 3];\n            d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y),\n                   pf(x), pf(y));\n            j += 4;\n            break;\n          case OPS.closePath:\n            d.push('Z');\n            break;\n        }\n      }\n      current.path.setAttributeNS(null, 'd', d.join(' '));\n      current.path.setAttributeNS(null, 'fill', 'none');\n\n      this._ensureTransformGroup().appendChild(current.path);\n\n      // Saving a reference in current.element so that it can be addressed\n      // in 'fill' and 'stroke'\n      current.element = current.path;\n      current.setCurrentPoint(x, y);\n    },\n\n    endPath: function SVGGraphics_endPath() {\n      if (!this.pendingClip) {\n        return;\n      }\n      var current = this.current;\n      // Add current path to clipping path\n      var clipId = 'clippath' + clipCount;\n      clipCount++;\n      var clipPath = this.svgFactory.createElement('svg:clipPath');\n      clipPath.setAttributeNS(null, 'id', clipId);\n      clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n      // A deep clone is needed when text is used as a clipping path.\n      const clipElement = current.element.cloneNode(true);\n      if (this.pendingClip === 'evenodd') {\n        clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n      } else {\n        clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n      }\n      this.pendingClip = null;\n      clipPath.appendChild(clipElement);\n      this.defs.appendChild(clipPath);\n\n      if (current.activeClipUrl) {\n        // The previous clipping group content can go out of order -- resetting\n        // cached clipGroups.\n        current.clipGroup = null;\n        this.extraStack.forEach(function (prev) {\n          prev.clipGroup = null;\n        });\n        // Intersect with the previous clipping path.\n        clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n      }\n      current.activeClipUrl = 'url(#' + clipId + ')';\n\n      this.tgrp = null;\n    },\n\n    clip: function SVGGraphics_clip(type) {\n      this.pendingClip = type;\n    },\n\n    closePath: function SVGGraphics_closePath() {\n      var current = this.current;\n      if (current.path) {\n        var d = current.path.getAttributeNS(null, 'd');\n        d += 'Z';\n        current.path.setAttributeNS(null, 'd', d);\n      }\n    },\n\n    setLeading: function SVGGraphics_setLeading(leading) {\n      this.current.leading = -leading;\n    },\n\n    setTextRise: function SVGGraphics_setTextRise(textRise) {\n      this.current.textRise = textRise;\n    },\n\n    setTextRenderingMode(textRenderingMode) {\n      this.current.textRenderingMode = textRenderingMode;\n    },\n\n    setHScale: function SVGGraphics_setHScale(scale) {\n      this.current.textHScale = scale / 100;\n    },\n\n    setGState: function SVGGraphics_setGState(states) {\n      for (var i = 0, ii = states.length; i < ii; i++) {\n        var state = states[i];\n        var key = state[0];\n        var value = state[1];\n\n        switch (key) {\n          case 'LW':\n            this.setLineWidth(value);\n            break;\n          case 'LC':\n            this.setLineCap(value);\n            break;\n          case 'LJ':\n            this.setLineJoin(value);\n            break;\n          case 'ML':\n            this.setMiterLimit(value);\n            break;\n          case 'D':\n            this.setDash(value[0], value[1]);\n            break;\n          case 'Font':\n            this.setFont(value);\n            break;\n          case 'CA':\n            this.setStrokeAlpha(value);\n            break;\n          case 'ca':\n            this.setFillAlpha(value);\n            break;\n          default:\n            warn('Unimplemented graphic state ' + key);\n            break;\n        }\n      }\n    },\n\n    fill: function SVGGraphics_fill() {\n      var current = this.current;\n      if (current.element) {\n        current.element.setAttributeNS(null, 'fill', current.fillColor);\n        current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n        this.endPath();\n      }\n    },\n\n    stroke: function SVGGraphics_stroke() {\n      var current = this.current;\n\n      if (current.element) {\n        this._setStrokeAttributes(current.element);\n\n        current.element.setAttributeNS(null, 'fill', 'none');\n\n        this.endPath();\n      }\n    },\n\n    /**\n     * @private\n     */\n    _setStrokeAttributes(element) {\n      const current = this.current;\n      element.setAttributeNS(null, 'stroke', current.strokeColor);\n      element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);\n      element.setAttributeNS(null, 'stroke-miterlimit',\n                             pf(current.miterLimit));\n      element.setAttributeNS(null, 'stroke-linecap', current.lineCap);\n      element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);\n      element.setAttributeNS(null, 'stroke-width',\n                             pf(current.lineWidth) + 'px');\n      element.setAttributeNS(null, 'stroke-dasharray',\n                             current.dashArray.map(pf).join(' '));\n      element.setAttributeNS(null, 'stroke-dashoffset',\n                             pf(current.dashPhase) + 'px');\n    },\n\n    eoFill: function SVGGraphics_eoFill() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n      }\n      this.fill();\n    },\n\n    fillStroke: function SVGGraphics_fillStroke() {\n      // Order is important since stroke wants fill to be none.\n      // First stroke, then if fill needed, it will be overwritten.\n      this.stroke();\n      this.fill();\n    },\n\n    eoFillStroke: function SVGGraphics_eoFillStroke() {\n      if (this.current.element) {\n        this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n      }\n      this.fillStroke();\n    },\n\n    closeStroke: function SVGGraphics_closeStroke() {\n      this.closePath();\n      this.stroke();\n    },\n\n    closeFillStroke: function SVGGraphics_closeFillStroke() {\n      this.closePath();\n      this.fillStroke();\n    },\n\n    closeEOFillStroke() {\n      this.closePath();\n      this.eoFillStroke();\n    },\n\n    paintSolidColorImageMask:\n        function SVGGraphics_paintSolidColorImageMask() {\n      var current = this.current;\n      var rect = this.svgFactory.createElement('svg:rect');\n      rect.setAttributeNS(null, 'x', '0');\n      rect.setAttributeNS(null, 'y', '0');\n      rect.setAttributeNS(null, 'width', '1px');\n      rect.setAttributeNS(null, 'height', '1px');\n      rect.setAttributeNS(null, 'fill', current.fillColor);\n\n      this._ensureTransformGroup().appendChild(rect);\n    },\n\n    paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {\n      var imgObj = this.objs.get(objId);\n      var imgEl = this.svgFactory.createElement('svg:image');\n      imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);\n      imgEl.setAttributeNS(null, 'width', pf(w));\n      imgEl.setAttributeNS(null, 'height', pf(h));\n      imgEl.setAttributeNS(null, 'x', '0');\n      imgEl.setAttributeNS(null, 'y', pf(-h));\n      imgEl.setAttributeNS(null, 'transform',\n                           'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');\n\n      this._ensureTransformGroup().appendChild(imgEl);\n    },\n\n    paintImageXObject: function SVGGraphics_paintImageXObject(objId) {\n      var imgData = this.objs.get(objId);\n      if (!imgData) {\n        warn('Dependent image isn\\'t ready yet');\n        return;\n      }\n      this.paintInlineImageXObject(imgData);\n    },\n\n    paintInlineImageXObject:\n        function SVGGraphics_paintInlineImageXObject(imgData, mask) {\n      var width = imgData.width;\n      var height = imgData.height;\n\n      var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n      var cliprect = this.svgFactory.createElement('svg:rect');\n      cliprect.setAttributeNS(null, 'x', '0');\n      cliprect.setAttributeNS(null, 'y', '0');\n      cliprect.setAttributeNS(null, 'width', pf(width));\n      cliprect.setAttributeNS(null, 'height', pf(height));\n      this.current.element = cliprect;\n      this.clip('nonzero');\n      var imgEl = this.svgFactory.createElement('svg:image');\n      imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);\n      imgEl.setAttributeNS(null, 'x', '0');\n      imgEl.setAttributeNS(null, 'y', pf(-height));\n      imgEl.setAttributeNS(null, 'width', pf(width) + 'px');\n      imgEl.setAttributeNS(null, 'height', pf(height) + 'px');\n      imgEl.setAttributeNS(null, 'transform',\n                           'scale(' + pf(1 / width) + ' ' +\n                           pf(-1 / height) + ')');\n      if (mask) {\n        mask.appendChild(imgEl);\n      } else {\n        this._ensureTransformGroup().appendChild(imgEl);\n      }\n    },\n\n    paintImageMaskXObject:\n        function SVGGraphics_paintImageMaskXObject(imgData) {\n      var current = this.current;\n      var width = imgData.width;\n      var height = imgData.height;\n      var fillColor = current.fillColor;\n\n      current.maskId = 'mask' + maskCount++;\n      var mask = this.svgFactory.createElement('svg:mask');\n      mask.setAttributeNS(null, 'id', current.maskId);\n\n      var rect = this.svgFactory.createElement('svg:rect');\n      rect.setAttributeNS(null, 'x', '0');\n      rect.setAttributeNS(null, 'y', '0');\n      rect.setAttributeNS(null, 'width', pf(width));\n      rect.setAttributeNS(null, 'height', pf(height));\n      rect.setAttributeNS(null, 'fill', fillColor);\n      rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')');\n      this.defs.appendChild(mask);\n\n      this._ensureTransformGroup().appendChild(rect);\n\n      this.paintInlineImageXObject(imgData, mask);\n    },\n\n    paintFormXObjectBegin:\n        function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {\n      if (Array.isArray(matrix) && matrix.length === 6) {\n        this.transform(matrix[0], matrix[1], matrix[2],\n                       matrix[3], matrix[4], matrix[5]);\n      }\n\n      if (Array.isArray(bbox) && bbox.length === 4) {\n        var width = bbox[2] - bbox[0];\n        var height = bbox[3] - bbox[1];\n\n        var cliprect = this.svgFactory.createElement('svg:rect');\n        cliprect.setAttributeNS(null, 'x', bbox[0]);\n        cliprect.setAttributeNS(null, 'y', bbox[1]);\n        cliprect.setAttributeNS(null, 'width', pf(width));\n        cliprect.setAttributeNS(null, 'height', pf(height));\n        this.current.element = cliprect;\n        this.clip('nonzero');\n        this.endPath();\n      }\n    },\n\n    paintFormXObjectEnd:\n        function SVGGraphics_paintFormXObjectEnd() {},\n\n    /**\n     * @private\n     */\n    _initialize(viewport) {\n      let svg = this.svgFactory.create(viewport.width, viewport.height);\n\n      // Create the definitions element.\n      let definitions = this.svgFactory.createElement('svg:defs');\n      svg.appendChild(definitions);\n      this.defs = definitions;\n\n      // Create the root group element, which acts a container for all other\n      // groups and applies the viewport transform.\n      let rootGroup = this.svgFactory.createElement('svg:g');\n      rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n      svg.appendChild(rootGroup);\n\n      // For the construction of the SVG image we are only interested in the\n      // root group, so we expose it as the entry point of the SVG image for\n      // the other code in this class.\n      this.svg = rootGroup;\n\n      return svg;\n    },\n\n    /**\n     * @private\n     */\n    _ensureClipGroup: function SVGGraphics_ensureClipGroup() {\n      if (!this.current.clipGroup) {\n        var clipGroup = this.svgFactory.createElement('svg:g');\n        clipGroup.setAttributeNS(null, 'clip-path',\n                                 this.current.activeClipUrl);\n        this.svg.appendChild(clipGroup);\n        this.current.clipGroup = clipGroup;\n      }\n      return this.current.clipGroup;\n    },\n\n    /**\n     * @private\n     */\n    _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {\n      if (!this.tgrp) {\n        this.tgrp = this.svgFactory.createElement('svg:g');\n        this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n        if (this.current.activeClipUrl) {\n          this._ensureClipGroup().appendChild(this.tgrp);\n        } else {\n          this.svg.appendChild(this.tgrp);\n        }\n      }\n      return this.tgrp;\n    },\n  };\n  return SVGGraphics;\n})();\n\n}\n\nexport {\n  SVGGraphics,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals __non_webpack_require__ */\n\nlet fs = __non_webpack_require__('fs');\nlet http = __non_webpack_require__('http');\nlet https = __non_webpack_require__('https');\nlet url = __non_webpack_require__('url');\n\nimport {\n  AbortException, assert, createPromiseCapability, MissingPDFException\n} from '../shared/util';\nimport {\n  extractFilenameFromHeader, validateRangeRequestCapabilities\n} from './network_utils';\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n  let parsedUrl = url.parse(sourceUrl);\n  if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n    return parsedUrl;\n  }\n  // Prepending 'file:///' to Windows absolute path.\n  if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n    return url.parse(`file:///${sourceUrl}`);\n  }\n  // Changes protocol to 'file:' if url refers to filesystem.\n  if (!parsedUrl.host) {\n    parsedUrl.protocol = 'file:';\n  }\n  return parsedUrl;\n}\n\nclass PDFNodeStream {\n  constructor(source) {\n    this.source = source;\n    this.url = parseUrl(source.url);\n    this.isHttp = this.url.protocol === 'http:' ||\n                  this.url.protocol === 'https:';\n    // Check if url refers to filesystem.\n    this.isFsUrl = this.url.protocol === 'file:';\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequest = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    assert(!this._fullRequest);\n    this._fullRequest = this.isFsUrl ?\n      new PDFNodeStreamFsFullReader(this) :\n      new PDFNodeStreamFullReader(this);\n    return this._fullRequest;\n  }\n\n  getRangeReader(start, end) {\n    let rangeReader = this.isFsUrl ?\n      new PDFNodeStreamFsRangeReader(this, start, end) :\n      new PDFNodeStreamRangeReader(this, start, end);\n    this._rangeRequestReaders.push(rangeReader);\n    return rangeReader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequest) {\n      this._fullRequest.cancel(reason);\n    }\n\n    let readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function(reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\nclass BaseFullReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    let source = stream.source;\n    this._contentLength = source.length; // optional\n    this._loaded = 0;\n    this._filename = null;\n\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    this._headersCapability = createPromiseCapability();\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true, };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    let chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    let buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false, };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on('readable', () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on('end', () => {\n      // Destroy readable to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on('error', (reason) => {\n      this._error(reason);\n    });\n\n    // We need to stop reading when range is supported and streaming is\n    // disabled.\n    if (!this._isStreamingSupported && this._isRangeSupported) {\n      this._error(new AbortException('streaming is disabled'));\n    }\n\n    // Destroy ReadableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nclass BaseRangeReader {\n  constructor(stream) {\n    this._url = stream.url;\n    this._done = false;\n    this._storedError = null;\n    this.onProgress = null;\n    this._loaded = 0;\n    this._readableStream = null;\n    this._readCapability = createPromiseCapability();\n    let source = stream.source;\n    this._isStreamingSupported = !source.disableStream;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    if (this._done) {\n      return { value: undefined, done: true, };\n    }\n    if (this._storedError) {\n      throw this._storedError;\n    }\n\n    let chunk = this._readableStream.read();\n    if (chunk === null) {\n      this._readCapability = createPromiseCapability();\n      return this.read();\n    }\n    this._loaded += chunk.length;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded, });\n    }\n    // Ensure that `read()` method returns ArrayBuffer.\n    let buffer = new Uint8Array(chunk).buffer;\n    return { value: buffer, done: false, };\n  }\n\n  cancel(reason) {\n    // Call `this._error()` method when cancel is called\n    // before _readableStream is set.\n    if (!this._readableStream) {\n      this._error(reason);\n      return;\n    }\n    this._readableStream.destroy(reason);\n  }\n\n  _error(reason) {\n    this._storedError = reason;\n    this._readCapability.resolve();\n  }\n\n  _setReadableStream(readableStream) {\n    this._readableStream = readableStream;\n    readableStream.on('readable', () => {\n      this._readCapability.resolve();\n    });\n\n    readableStream.on('end', () => {\n      // Destroy readableStream to minimize resource usage.\n      readableStream.destroy();\n      this._done = true;\n      this._readCapability.resolve();\n    });\n\n    readableStream.on('error', (reason) => {\n      this._error(reason);\n    });\n\n    // Destroy readableStream if already in errored state.\n    if (this._storedError) {\n      this._readableStream.destroy(this._storedError);\n    }\n  }\n}\n\nfunction createRequestOptions(url, headers) {\n  return {\n    protocol: url.protocol,\n    auth: url.auth,\n    host: url.hostname,\n    port: url.port,\n    path: url.path,\n    method: 'GET',\n    headers,\n  };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    let handleResponse = (response) => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      this._headersCapability.resolve();\n      this._setReadableStream(response);\n\n      const getResponseHeader = (name) => {\n        // Make sure that headers name are in lower case, as mentioned\n        // here: https://nodejs.org/api/http.html#http_message_headers.\n        return this._readableStream.headers[name.toLowerCase()];\n      };\n      let { allowRangeRequests, suggestedLength, } =\n        validateRangeRequestCapabilities({\n          getResponseHeader,\n          isHttp: stream.isHttp,\n          rangeChunkSize: this._rangeChunkSize,\n          disableRange: this._disableRange,\n        });\n\n      this._isRangeSupported = allowRangeRequests;\n      // Setting right content length.\n      this._contentLength = suggestedLength || this._contentLength;\n\n      this._filename = extractFilenameFromHeader(getResponseHeader);\n    };\n\n    this._request = null;\n    if (this._url.protocol === 'http:') {\n      this._request = http.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse);\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, stream.httpHeaders),\n        handleResponse);\n    }\n\n    this._request.on('error', (reason) => {\n      this._storedError = reason;\n      this._headersCapability.reject(reason);\n    });\n    // Note: `request.end(data)` is used to write `data` to request body\n    // and notify end of request. But one should always call `request.end()`\n    // even if there is no data to write -- (to notify the end of request).\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    this._httpHeaders = {};\n    for (let property in stream.httpHeaders) {\n      let value = stream.httpHeaders[property];\n      if (typeof value === 'undefined') {\n        continue;\n      }\n      this._httpHeaders[property] = value;\n    }\n    this._httpHeaders['Range'] = `bytes=${start}-${end - 1}`;\n\n    let handleResponse = (response) => {\n      if (response.statusCode === 404) {\n        const error = new MissingPDFException(`Missing PDF \"${this._url}\".`);\n        this._storedError = error;\n        return;\n      }\n      this._setReadableStream(response);\n    };\n\n    this._request = null;\n    if (this._url.protocol === 'http:') {\n      this._request = http.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse);\n    } else {\n      this._request = https.request(\n        createRequestOptions(this._url, this._httpHeaders),\n        handleResponse);\n    }\n\n    this._request.on('error', (reason) => {\n      this._storedError = reason;\n    });\n    this._request.end();\n  }\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n  constructor(stream) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, '');\n    }\n\n    fs.lstat(path, (error, stat) => {\n      if (error) {\n        if (error.code === 'ENOENT') {\n          error = new MissingPDFException(`Missing PDF \"${path}\".`);\n        }\n        this._storedError = error;\n        this._headersCapability.reject(error);\n        return;\n      }\n      // Setting right content length.\n      this._contentLength = stat.size;\n\n      this._setReadableStream(fs.createReadStream(path));\n      this._headersCapability.resolve();\n    });\n  }\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n  constructor(stream, start, end) {\n    super(stream);\n\n    let path = decodeURIComponent(this._url.path);\n\n    // Remove the extra slash to get right path from url like `file:///C:/`\n    if (fileUriRegex.test(this._url.href)) {\n      path = path.replace(/^\\//, '');\n    }\n\n    this._setReadableStream(\n      fs.createReadStream(path, { start, end: end - 1, }));\n  }\n}\n\nexport {\n  PDFNodeStream,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  assert, MissingPDFException, UnexpectedResponseException\n} from '../shared/util';\nimport {\n  getFilenameFromContentDispositionHeader\n} from './content_disposition';\n\nfunction validateRangeRequestCapabilities({ getResponseHeader, isHttp,\n                                            rangeChunkSize, disableRange, }) {\n  assert(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n  let returnValues = {\n    allowRangeRequests: false,\n    suggestedLength: undefined,\n  };\n\n  let length = parseInt(getResponseHeader('Content-Length'), 10);\n  if (!Number.isInteger(length)) {\n    return returnValues;\n  }\n\n  returnValues.suggestedLength = length;\n\n  if (length <= 2 * rangeChunkSize) {\n    // The file size is smaller than the size of two chunks, so it does not\n    // make any sense to abort the request and retry with a range request.\n    return returnValues;\n  }\n\n  if (disableRange || !isHttp) {\n    return returnValues;\n  }\n  if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n    return returnValues;\n  }\n\n  let contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n  if (contentEncoding !== 'identity') {\n    return returnValues;\n  }\n\n  returnValues.allowRangeRequests = true;\n  return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n  const contentDisposition = getResponseHeader('Content-Disposition');\n  if (contentDisposition) {\n    let filename = getFilenameFromContentDispositionHeader(contentDisposition);\n    if (/\\.pdf$/i.test(filename)) {\n      return filename;\n    }\n  }\n  return null;\n}\n\nfunction createResponseStatusError(status, url) {\n  if (status === 404 || status === 0 && /^file:/.test(url)) {\n    return new MissingPDFException('Missing PDF \"' + url + '\".');\n  }\n  return new UnexpectedResponseException(\n    'Unexpected server response (' + status +\n    ') while retrieving PDF \"' + url + '\".', status);\n}\n\nfunction validateResponseStatus(status) {\n  return status === 200 || status === 206;\n}\n\nexport {\n  createResponseStatusError,\n  extractFilenameFromHeader,\n  validateRangeRequestCapabilities,\n  validateResponseStatus,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This getFilenameFromContentDispositionHeader function is adapted from\n// https://github.com/Rob--W/open-in-browser/blob/7e2e35a38b8b4e981b11da7b2f01df0149049e92/extension/content-disposition.js\n// with the following changes:\n// - Modified to conform to PDF.js's coding style.\n// - Support UTF-8 decoding when TextDecoder is unsupported.\n// - Replace Array.from with Array + loop for compat with old browsers.\n// - Replace \"startsWith\" with other string method for compat with old browsers.\n// - Move return to the end of the function to prevent Babel from dropping the\n//   function declarations.\n\n/**\n * Extract file name from the Content-Disposition HTTP response header.\n *\n * @param {string} contentDisposition\n * @return {string} Filename, if found in the Content-Disposition header.\n */\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n  let needsEncodingFixup = true;\n\n  // filename*=ext-value (\"ext-value\" from RFC 5987, referenced by RFC 6266).\n  let tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = unescape(filename);\n    filename = rfc5987decode(filename);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // Continuations (RFC 2231 section 3, referenced by RFC 5987 section 3.1).\n  // filename*n*=part\n  // filename*n=part\n  tmp = rfc2231getparam(contentDisposition);\n  if (tmp) {\n    // RFC 2047, section\n    let filename = rfc2047decode(tmp);\n    return fixupEncoding(filename);\n  }\n\n  // filename=value (RFC 5987, section 4.1).\n  tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n  if (tmp) {\n    tmp = tmp[1];\n    let filename = rfc2616unquote(tmp);\n    filename = rfc2047decode(filename);\n    return fixupEncoding(filename);\n  }\n\n  // After this line there are only function declarations. We cannot put\n  // \"return\" here for readability because babel would then drop the function\n  // declarations...\n  function toParamRegExp(attributePattern, flags) {\n    return new RegExp(\n      '(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' +\n      // Captures: value = token | quoted-string\n      // (RFC 2616, section 3.6 and referenced by RFC 6266 4.1)\n      '(' +\n        '[^\";\\\\s][^;\\\\s]*' +\n      '|' +\n        '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' +\n      ')', flags);\n  }\n  function textdecode(encoding, value) {\n    if (encoding) {\n      if (!/^[\\x00-\\xFF]+$/.test(value)) {\n        return value;\n      }\n      try {\n        let decoder = new TextDecoder(encoding, { fatal: true, });\n        let bytes = new Array(value.length);\n        for (let i = 0; i < value.length; ++i) {\n          bytes[i] = value.charCodeAt(i);\n        }\n        value = decoder.decode(new Uint8Array(bytes));\n        needsEncodingFixup = false;\n      } catch (e) {\n        // TextDecoder constructor threw - unrecognized encoding.\n        // Or TextDecoder API is not available (in IE / Edge).\n        if (/^utf-?8$/i.test(encoding)) {\n          // UTF-8 is commonly used, try to support it in another way:\n          try {\n            value = decodeURIComponent(escape(value));\n            needsEncodingFixup = false;\n          } catch (err) {\n          }\n        }\n      }\n    }\n    return value;\n  }\n  function fixupEncoding(value) {\n    if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n      // Maybe multi-byte UTF-8.\n      value = textdecode('utf-8', value);\n      if (needsEncodingFixup) {\n        // Try iso-8859-1 encoding.\n        value = textdecode('iso-8859-1', value);\n      }\n    }\n    return value;\n  }\n  function rfc2231getparam(contentDisposition) {\n    let matches = [], match;\n    // Iterate over all filename*n= and filename*n*= with n being an integer\n    // of at least zero. Any non-zero number must not start with '0'.\n    let iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n    while ((match = iter.exec(contentDisposition)) !== null) {\n      let [, n, quot, part] = match;\n      n = parseInt(n, 10);\n      if (n in matches) {\n        // Ignore anything after the invalid second filename*0.\n        if (n === 0) {\n          break;\n        }\n        continue;\n      }\n      matches[n] = [quot, part];\n    }\n    let parts = [];\n    for (let n = 0; n < matches.length; ++n) {\n      if (!(n in matches)) {\n        // Numbers must be consecutive. Truncate when there is a hole.\n        break;\n      }\n      let [quot, part] = matches[n];\n      part = rfc2616unquote(part);\n      if (quot) {\n        part = unescape(part);\n        if (n === 0) {\n          part = rfc5987decode(part);\n        }\n      }\n      parts.push(part);\n    }\n    return parts.join('');\n  }\n  function rfc2616unquote(value) {\n    if (value.charAt(0) === '\"') {\n      let parts = value.slice(1).split('\\\\\"');\n      // Find the first unescaped \" and terminate there.\n      for (let i = 0; i < parts.length; ++i) {\n        let quotindex = parts[i].indexOf('\"');\n        if (quotindex !== -1) {\n          parts[i] = parts[i].slice(0, quotindex);\n          parts.length = i + 1; // Truncates and stop the iteration.\n        }\n        parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n      }\n      value = parts.join('\"');\n    }\n    return value;\n  }\n  function rfc5987decode(extvalue) {\n    // Decodes \"ext-value\" from RFC 5987.\n    let encodingend = extvalue.indexOf('\\'');\n    if (encodingend === -1) {\n      // Some servers send \"filename*=\" without encoding 'language' prefix,\n      // e.g. in https://github.com/Rob--W/open-in-browser/issues/26\n      // Let's accept the value like Firefox (57) (Chrome 62 rejects it).\n      return extvalue;\n    }\n    let encoding = extvalue.slice(0, encodingend);\n    let langvalue = extvalue.slice(encodingend + 1);\n    // Ignore language (RFC 5987 section 3.2.1, and RFC 6266 section 4.1 ).\n    let value = langvalue.replace(/^[^']*'/, '');\n    return textdecode(encoding, value);\n  }\n  function rfc2047decode(value) {\n    // RFC 2047-decode the result. Firefox tried to drop support for it, but\n    // backed out because some servers use it - https://bugzil.la/875615\n    // Firefox's condition for decoding is here: https://searchfox.org/mozilla-central/rev/4a590a5a15e35d88a3b23dd6ac3c471cf85b04a8/netwerk/mime/nsMIMEHeaderParamImpl.cpp#742-748\n\n    // We are more strict and only recognize RFC 2047-encoding if the value\n    // starts with \"=?\", since then it is likely that the full value is\n    // RFC 2047-encoded.\n\n    // Firefox also decodes words even where RFC 2047 section 5 states:\n    // \"An 'encoded-word' MUST NOT appear within a 'quoted-string'.\"\n    if (value.slice(0, 2) !== '=?' || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n      return value;\n    }\n    // RFC 2047, section 2.4\n    // encoded-word = \"=?\" charset \"?\" encoding \"?\" encoded-text \"?=\"\n    // charset = token (but let's restrict to characters that denote a\n    //       possibly valid encoding).\n    // encoding = q or b\n    // encoded-text = any printable ASCII character other than ? or space.\n    //        ... but Firefox permits ? and space.\n    return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g,\n      function(_, charset, encoding, text) {\n        if (encoding === 'q' || encoding === 'Q') {\n          // RFC 2047 section 4.2.\n          text = text.replace(/_/g, ' ');\n          text = text.replace(/=([0-9a-fA-F]{2})/g, function(_, hex) {\n            return String.fromCharCode(parseInt(hex, 16));\n          });\n          return textdecode(charset, text);\n        } // else encoding is b or B - base64 (RFC 2047 section 4.1)\n        try {\n          text = atob(text);\n        } catch (e) {\n        }\n        return textdecode(charset, text);\n      });\n  }\n\n  return '';\n}\n\nexport {\n  getFilenameFromContentDispositionHeader,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  AbortException, assert, createPromiseCapability\n} from '../shared/util';\nimport {\n  createResponseStatusError, extractFilenameFromHeader,\n  validateRangeRequestCapabilities, validateResponseStatus\n} from './network_utils';\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n  return {\n    method: 'GET',\n    headers,\n    signal: abortController && abortController.signal,\n    mode: 'cors',\n    credentials: withCredentials ? 'include' : 'same-origin',\n    redirect: 'follow',\n  };\n}\n\nclass PDFFetchStream {\n  constructor(source) {\n    this.source = source;\n    this.isHttp = /^https?:/i.test(source.url);\n    this.httpHeaders = (this.isHttp && source.httpHeaders) || {};\n\n    this._fullRequestReader = null;\n    this._rangeRequestReaders = [];\n  }\n\n  getFullReader() {\n    assert(!this._fullRequestReader);\n    this._fullRequestReader = new PDFFetchStreamReader(this);\n    return this._fullRequestReader;\n  }\n\n  getRangeReader(begin, end) {\n    let reader = new PDFFetchStreamRangeReader(this, begin, end);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  }\n\n  cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    let readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function(reader) {\n      reader.cancel(reason);\n    });\n  }\n}\n\nclass PDFFetchStreamReader {\n  constructor(stream) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    this._filename = null;\n    let source = stream.source;\n    this._withCredentials = source.withCredentials;\n    this._contentLength = source.length;\n    this._headersCapability = createPromiseCapability();\n    this._disableRange = source.disableRange || false;\n    this._rangeChunkSize = source.rangeChunkSize;\n    if (!this._rangeChunkSize && !this._disableRange) {\n      this._disableRange = true;\n    }\n\n    if (typeof AbortController !== 'undefined') {\n      this._abortController = new AbortController();\n    }\n    this._isStreamingSupported = !source.disableStream;\n    this._isRangeSupported = !source.disableRange;\n\n    this._headers = new Headers();\n    for (let property in this._stream.httpHeaders) {\n      let value = this._stream.httpHeaders[property];\n      if (typeof value === 'undefined') {\n        continue;\n      }\n      this._headers.append(property, value);\n    }\n\n    let url = source.url;\n    fetch(url, createFetchOptions(this._headers, this._withCredentials,\n        this._abortController)).then((response) => {\n      if (!validateResponseStatus(response.status)) {\n        throw createResponseStatusError(response.status, url);\n      }\n      this._reader = response.body.getReader();\n      this._headersCapability.resolve();\n\n      const getResponseHeader = (name) => {\n        return response.headers.get(name);\n      };\n      let { allowRangeRequests, suggestedLength, } =\n        validateRangeRequestCapabilities({\n          getResponseHeader,\n          isHttp: this._stream.isHttp,\n          rangeChunkSize: this._rangeChunkSize,\n          disableRange: this._disableRange,\n        });\n\n      this._isRangeSupported = allowRangeRequests;\n      // Setting right content length.\n      this._contentLength = suggestedLength || this._contentLength;\n\n      this._filename = extractFilenameFromHeader(getResponseHeader);\n\n      // We need to stop reading when range is supported and streaming is\n      // disabled.\n      if (!this._isStreamingSupported && this._isRangeSupported) {\n        this.cancel(new AbortException('streaming is disabled'));\n      }\n    }).catch(this._headersCapability.reject);\n\n    this.onProgress = null;\n  }\n\n  get headersReady() {\n    return this._headersCapability.promise;\n  }\n\n  get filename() {\n    return this._filename;\n  }\n\n  get contentLength() {\n    return this._contentLength;\n  }\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._headersCapability.promise;\n    const { value, done, } = await this._reader.read();\n    if (done) {\n      return { value, done, };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: this._loaded,\n        total: this._contentLength,\n      });\n    }\n    let buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false, };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\nclass PDFFetchStreamRangeReader {\n  constructor(stream, begin, end) {\n    this._stream = stream;\n    this._reader = null;\n    this._loaded = 0;\n    let source = stream.source;\n    this._withCredentials = source.withCredentials;\n    this._readCapability = createPromiseCapability();\n    this._isStreamingSupported = !source.disableStream;\n\n    if (typeof AbortController !== 'undefined') {\n      this._abortController = new AbortController();\n    }\n\n    this._headers = new Headers();\n    for (let property in this._stream.httpHeaders) {\n      let value = this._stream.httpHeaders[property];\n      if (typeof value === 'undefined') {\n        continue;\n      }\n      this._headers.append(property, value);\n    }\n\n    let rangeStr = begin + '-' + (end - 1);\n    this._headers.append('Range', 'bytes=' + rangeStr);\n    let url = source.url;\n    fetch(url, createFetchOptions(this._headers, this._withCredentials,\n        this._abortController)).then((response) => {\n      if (!validateResponseStatus(response.status)) {\n        throw createResponseStatusError(response.status, url);\n      }\n      this._readCapability.resolve();\n      this._reader = response.body.getReader();\n    });\n\n    this.onProgress = null;\n  }\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  }\n\n  async read() {\n    await this._readCapability.promise;\n    const { value, done, } = await this._reader.read();\n    if (done) {\n      return { value, done, };\n    }\n    this._loaded += value.byteLength;\n    if (this.onProgress) {\n      this.onProgress({ loaded: this._loaded, });\n    }\n    let buffer = new Uint8Array(value).buffer;\n    return { value: buffer, done: false, };\n  }\n\n  cancel(reason) {\n    if (this._reader) {\n      this._reader.cancel(reason);\n    }\n    if (this._abortController) {\n      this._abortController.abort();\n    }\n  }\n}\n\nexport {\n  PDFFetchStream,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, createPromiseCapability, stringToBytes } from '../shared/util';\nimport {\n  createResponseStatusError, extractFilenameFromHeader,\n  validateRangeRequestCapabilities\n} from './network_utils';\nimport globalScope from '../shared/global_scope';\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL')) {\n  throw new Error('Module \"./network\" shall not ' +\n                  'be used with FIREFOX or MOZCENTRAL build.');\n}\n\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction NetworkManager(url, args) {\n  this.url = url;\n  args = args || {};\n  this.isHttp = /^https?:/i.test(url);\n  this.httpHeaders = (this.isHttp && args.httpHeaders) || {};\n  this.withCredentials = args.withCredentials || false;\n  this.getXhr = args.getXhr ||\n    function NetworkManager_getXhr() {\n      return new XMLHttpRequest();\n    };\n\n  this.currXhrId = 0;\n  this.pendingRequests = Object.create(null);\n  this.loadedRequests = Object.create(null);\n}\n\nfunction getArrayBuffer(xhr) {\n  var data = xhr.response;\n  if (typeof data !== 'string') {\n    return data;\n  }\n  let array = stringToBytes(data);\n  return array.buffer;\n}\n\nvar supportsMozChunked =\n  typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME') ? false :\n    (function supportsMozChunkedClosure() {\n  try {\n    var x = new XMLHttpRequest();\n    // Firefox 37- required .open() to be called before setting responseType.\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=707484\n    // Even though the URL is not visited, .open() could fail if the URL is\n    // blocked, e.g. via the connect-src CSP directive or the NoScript addon.\n    // When this error occurs, this feature detection method will mistakenly\n    // report that moz-chunked-arraybuffer is not supported in Firefox 37-.\n    x.open('GET', globalScope.location.href);\n    x.responseType = 'moz-chunked-arraybuffer';\n    return x.responseType === 'moz-chunked-arraybuffer';\n  } catch (e) {\n    return false;\n  }\n})();\n\nNetworkManager.prototype = {\n  requestRange: function NetworkManager_requestRange(begin, end, listeners) {\n    var args = {\n      begin,\n      end,\n    };\n    for (var prop in listeners) {\n      args[prop] = listeners[prop];\n    }\n    return this.request(args);\n  },\n\n  requestFull: function NetworkManager_requestFull(listeners) {\n    return this.request(listeners);\n  },\n\n  request: function NetworkManager_request(args) {\n    var xhr = this.getXhr();\n    var xhrId = this.currXhrId++;\n    var pendingRequest = this.pendingRequests[xhrId] = {\n      xhr,\n    };\n\n    xhr.open('GET', this.url);\n    xhr.withCredentials = this.withCredentials;\n    for (var property in this.httpHeaders) {\n      var value = this.httpHeaders[property];\n      if (typeof value === 'undefined') {\n        continue;\n      }\n      xhr.setRequestHeader(property, value);\n    }\n    if (this.isHttp && 'begin' in args && 'end' in args) {\n      var rangeStr = args.begin + '-' + (args.end - 1);\n      xhr.setRequestHeader('Range', 'bytes=' + rangeStr);\n      pendingRequest.expectedStatus = 206;\n    } else {\n      pendingRequest.expectedStatus = 200;\n    }\n\n    var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;\n    if (useMozChunkedLoading) {\n      xhr.responseType = 'moz-chunked-arraybuffer';\n      pendingRequest.onProgressiveData = args.onProgressiveData;\n      pendingRequest.mozChunked = true;\n    } else {\n      xhr.responseType = 'arraybuffer';\n    }\n\n    if (args.onError) {\n      xhr.onerror = function(evt) {\n        args.onError(xhr.status);\n      };\n    }\n    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n    xhr.onprogress = this.onProgress.bind(this, xhrId);\n\n    pendingRequest.onHeadersReceived = args.onHeadersReceived;\n    pendingRequest.onDone = args.onDone;\n    pendingRequest.onError = args.onError;\n    pendingRequest.onProgress = args.onProgress;\n\n    xhr.send(null);\n\n    return xhrId;\n  },\n\n  onProgress: function NetworkManager_onProgress(xhrId, evt) {\n    var pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      // Maybe abortRequest was called...\n      return;\n    }\n\n    if (pendingRequest.mozChunked) {\n      var chunk = getArrayBuffer(pendingRequest.xhr);\n      pendingRequest.onProgressiveData(chunk);\n    }\n\n    var onProgress = pendingRequest.onProgress;\n    if (onProgress) {\n      onProgress(evt);\n    }\n  },\n\n  onStateChange: function NetworkManager_onStateChange(xhrId, evt) {\n    var pendingRequest = this.pendingRequests[xhrId];\n    if (!pendingRequest) {\n      // Maybe abortRequest was called...\n      return;\n    }\n\n    var xhr = pendingRequest.xhr;\n    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n      pendingRequest.onHeadersReceived();\n      delete pendingRequest.onHeadersReceived;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (!(xhrId in this.pendingRequests)) {\n      // The XHR request might have been aborted in onHeadersReceived()\n      // callback, in which case we should abort request\n      return;\n    }\n\n    delete this.pendingRequests[xhrId];\n\n    // success status == 0 can be on ftp, file and other protocols\n    if (xhr.status === 0 && this.isHttp) {\n      if (pendingRequest.onError) {\n        pendingRequest.onError(xhr.status);\n      }\n      return;\n    }\n    var xhrStatus = xhr.status || OK_RESPONSE;\n\n    // From http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2:\n    // \"A server MAY ignore the Range header\". This means it's possible to\n    // get a 200 rather than a 206 response from a range request.\n    var ok_response_on_range_request =\n        xhrStatus === OK_RESPONSE &&\n        pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n    if (!ok_response_on_range_request &&\n        xhrStatus !== pendingRequest.expectedStatus) {\n      if (pendingRequest.onError) {\n        pendingRequest.onError(xhr.status);\n      }\n      return;\n    }\n\n    this.loadedRequests[xhrId] = true;\n\n    var chunk = getArrayBuffer(xhr);\n    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n      var rangeHeader = xhr.getResponseHeader('Content-Range');\n      var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n      var begin = parseInt(matches[1], 10);\n      pendingRequest.onDone({\n        begin,\n        chunk,\n      });\n    } else if (pendingRequest.onProgressiveData) {\n      pendingRequest.onDone(null);\n    } else if (chunk) {\n      pendingRequest.onDone({\n        begin: 0,\n        chunk,\n      });\n    } else if (pendingRequest.onError) {\n      pendingRequest.onError(xhr.status);\n    }\n  },\n\n  hasPendingRequests: function NetworkManager_hasPendingRequests() {\n    for (var xhrId in this.pendingRequests) {\n      return true;\n    }\n    return false;\n  },\n\n  getRequestXhr: function NetworkManager_getXhr(xhrId) {\n    return this.pendingRequests[xhrId].xhr;\n  },\n\n  isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {\n    return !!(this.pendingRequests[xhrId].onProgressiveData);\n  },\n\n  isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {\n    return xhrId in this.pendingRequests;\n  },\n\n  isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {\n    return xhrId in this.loadedRequests;\n  },\n\n  abortAllRequests: function NetworkManager_abortAllRequests() {\n    for (var xhrId in this.pendingRequests) {\n      this.abortRequest(xhrId | 0);\n    }\n  },\n\n  abortRequest: function NetworkManager_abortRequest(xhrId) {\n    var xhr = this.pendingRequests[xhrId].xhr;\n    delete this.pendingRequests[xhrId];\n    xhr.abort();\n  },\n};\n\n/** @implements {IPDFStream} */\nfunction PDFNetworkStream(source) {\n  this._source = source;\n  this._manager = new NetworkManager(source.url, {\n    httpHeaders: source.httpHeaders,\n    withCredentials: source.withCredentials,\n  });\n  this._rangeChunkSize = source.rangeChunkSize;\n  this._fullRequestReader = null;\n  this._rangeRequestReaders = [];\n}\n\nPDFNetworkStream.prototype = {\n  _onRangeRequestReaderClosed:\n      function PDFNetworkStream_onRangeRequestReaderClosed(reader) {\n    var i = this._rangeRequestReaders.indexOf(reader);\n    if (i >= 0) {\n      this._rangeRequestReaders.splice(i, 1);\n    }\n  },\n\n  getFullReader: function PDFNetworkStream_getFullReader() {\n    assert(!this._fullRequestReader);\n    this._fullRequestReader =\n      new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n    return this._fullRequestReader;\n  },\n\n  getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {\n    var reader = new PDFNetworkStreamRangeRequestReader(this._manager,\n                                                        begin, end);\n    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n    this._rangeRequestReaders.push(reader);\n    return reader;\n  },\n\n  cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {\n    if (this._fullRequestReader) {\n      this._fullRequestReader.cancel(reason);\n    }\n    var readers = this._rangeRequestReaders.slice(0);\n    readers.forEach(function (reader) {\n      reader.cancel(reason);\n    });\n  },\n};\n\n/** @implements {IPDFStreamReader} */\nfunction PDFNetworkStreamFullRequestReader(manager, source) {\n  this._manager = manager;\n\n  var args = {\n    onHeadersReceived: this._onHeadersReceived.bind(this),\n    onProgressiveData: source.disableStream ? null :\n                       this._onProgressiveData.bind(this),\n    onDone: this._onDone.bind(this),\n    onError: this._onError.bind(this),\n    onProgress: this._onProgress.bind(this),\n  };\n  this._url = source.url;\n  this._fullRequestId = manager.requestFull(args);\n  this._headersReceivedCapability = createPromiseCapability();\n  this._disableRange = source.disableRange || false;\n  this._contentLength = source.length; // optional\n  this._rangeChunkSize = source.rangeChunkSize;\n  if (!this._rangeChunkSize && !this._disableRange) {\n    this._disableRange = true;\n  }\n\n  this._isStreamingSupported = false;\n  this._isRangeSupported = false;\n\n  this._cachedChunks = [];\n  this._requests = [];\n  this._done = false;\n  this._storedError = undefined;\n  this._filename = null;\n\n  this.onProgress = null;\n}\n\nPDFNetworkStreamFullRequestReader.prototype = {\n  _onHeadersReceived:\n      function PDFNetworkStreamFullRequestReader_onHeadersReceived() {\n    var fullRequestXhrId = this._fullRequestId;\n    var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n    const getResponseHeader = (name) => {\n      return fullRequestXhr.getResponseHeader(name);\n    };\n    let { allowRangeRequests, suggestedLength, } =\n      validateRangeRequestCapabilities({\n        getResponseHeader,\n        isHttp: this._manager.isHttp,\n        rangeChunkSize: this._rangeChunkSize,\n        disableRange: this._disableRange,\n      });\n\n    if (allowRangeRequests) {\n      this._isRangeSupported = true;\n    }\n    // Setting right content length.\n    this._contentLength = suggestedLength || this._contentLength;\n\n    this._filename = extractFilenameFromHeader(getResponseHeader);\n\n    var networkManager = this._manager;\n    if (networkManager.isStreamingRequest(fullRequestXhrId)) {\n      // We can continue fetching when progressive loading is enabled,\n      // and we don't need the autoFetch feature.\n      this._isStreamingSupported = true;\n    } else if (this._isRangeSupported) {\n      // NOTE: by cancelling the full request, and then issuing range\n      // requests, there will be an issue for sites where you can only\n      // request the pdf once. However, if this is the case, then the\n      // server should not be returning that it can support range\n      // requests.\n      networkManager.abortRequest(fullRequestXhrId);\n    }\n\n    this._headersReceivedCapability.resolve();\n  },\n\n  _onProgressiveData:\n      function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {\n    if (this._requests.length > 0) {\n      var requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false, });\n    } else {\n      this._cachedChunks.push(chunk);\n    }\n  },\n\n  _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {\n    if (args) {\n      this._onProgressiveData(args.chunk);\n    }\n    this._done = true;\n    if (this._cachedChunks.length > 0) {\n      return;\n    }\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true, });\n    });\n    this._requests = [];\n  },\n\n  _onError: function PDFNetworkStreamFullRequestReader_onError(status) {\n    var url = this._url;\n    var exception = createResponseStatusError(status, url);\n    this._storedError = exception;\n    this._headersReceivedCapability.reject(exception);\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.reject(exception);\n    });\n    this._requests = [];\n    this._cachedChunks = [];\n  },\n\n  _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) {\n    if (this.onProgress) {\n      this.onProgress({\n        loaded: data.loaded,\n        total: data.lengthComputable ? data.total : this._contentLength,\n      });\n    }\n  },\n\n  get filename() {\n    return this._filename;\n  },\n\n  get isRangeSupported() {\n    return this._isRangeSupported;\n  },\n\n  get isStreamingSupported() {\n    return this._isStreamingSupported;\n  },\n\n  get contentLength() {\n    return this._contentLength;\n  },\n\n  get headersReady() {\n    return this._headersReceivedCapability.promise;\n  },\n\n  async read() {\n    if (this._storedError) {\n      throw this._storedError;\n    }\n    if (this._cachedChunks.length > 0) {\n      var chunk = this._cachedChunks.shift();\n      return { value: chunk, done: false, };\n    }\n    if (this._done) {\n      return { value: undefined, done: true, };\n    }\n    var requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  },\n\n  cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {\n    this._done = true;\n    this._headersReceivedCapability.reject(reason);\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true, });\n    });\n    this._requests = [];\n    if (this._manager.isPendingRequest(this._fullRequestId)) {\n      this._manager.abortRequest(this._fullRequestId);\n    }\n    this._fullRequestReader = null;\n  },\n};\n\n/** @implements {IPDFStreamRangeReader} */\nfunction PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n  this._manager = manager;\n  var args = {\n    onDone: this._onDone.bind(this),\n    onProgress: this._onProgress.bind(this),\n  };\n  this._requestId = manager.requestRange(begin, end, args);\n  this._requests = [];\n  this._queuedChunk = null;\n  this._done = false;\n\n  this.onProgress = null;\n  this.onClosed = null;\n}\n\nPDFNetworkStreamRangeRequestReader.prototype = {\n  _close: function PDFNetworkStreamRangeRequestReader_close() {\n    if (this.onClosed) {\n      this.onClosed(this);\n    }\n  },\n\n  _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {\n    var chunk = data.chunk;\n    if (this._requests.length > 0) {\n      var requestCapability = this._requests.shift();\n      requestCapability.resolve({ value: chunk, done: false, });\n    } else {\n      this._queuedChunk = chunk;\n    }\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true, });\n    });\n    this._requests = [];\n    this._close();\n  },\n\n  _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {\n    if (!this.isStreamingSupported && this.onProgress) {\n      this.onProgress({\n        loaded: evt.loaded,\n      });\n    }\n  },\n\n  get isStreamingSupported() {\n    return false; // TODO allow progressive range bytes loading\n  },\n\n  async read() {\n    if (this._queuedChunk !== null) {\n      var chunk = this._queuedChunk;\n      this._queuedChunk = null;\n      return { value: chunk, done: false, };\n    }\n    if (this._done) {\n      return { value: undefined, done: true, };\n    }\n    var requestCapability = createPromiseCapability();\n    this._requests.push(requestCapability);\n    return requestCapability.promise;\n  },\n\n  cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {\n    this._done = true;\n    this._requests.forEach(function (requestCapability) {\n      requestCapability.resolve({ value: undefined, done: true, });\n    });\n    this._requests = [];\n    if (this._manager.isPendingRequest(this._requestId)) {\n      this._manager.abortRequest(this._requestId);\n    }\n    this._close();\n  },\n};\n\nexport {\n  PDFNetworkStream,\n  NetworkManager,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGlobalEventBus } from './dom_events';\nimport { parseQueryString } from './ui_utils';\n\n/**\n * @typedef {Object} PDFLinkServiceOptions\n * @property {EventBus} eventBus - The application event bus.\n * @property {number} externalLinkTarget - (optional) Specifies the `target`\n *   attribute for external links. Must use one of the values from {LinkTarget}.\n *   Defaults to using no target.\n * @property {string} externalLinkRel - (optional) Specifies the `rel` attribute\n *   for external links. Defaults to stripping the referrer.\n */\n\n/**\n * Performs navigation functions inside PDF, such as opening specified page,\n * or destination.\n * @implements {IPDFLinkService}\n */\nclass PDFLinkService {\n  /**\n   * @param {PDFLinkServiceOptions} options\n   */\n  constructor({ eventBus, externalLinkTarget = null,\n                externalLinkRel = null, } = {}) {\n    this.eventBus = eventBus || getGlobalEventBus();\n    this.externalLinkTarget = externalLinkTarget;\n    this.externalLinkRel = externalLinkRel;\n\n    this.baseUrl = null;\n    this.pdfDocument = null;\n    this.pdfViewer = null;\n    this.pdfHistory = null;\n\n    this._pagesRefCache = null;\n  }\n\n  setDocument(pdfDocument, baseUrl = null) {\n    this.baseUrl = baseUrl;\n    this.pdfDocument = pdfDocument;\n    this._pagesRefCache = Object.create(null);\n  }\n\n  setViewer(pdfViewer) {\n    this.pdfViewer = pdfViewer;\n  }\n\n  setHistory(pdfHistory) {\n    this.pdfHistory = pdfHistory;\n  }\n\n  /**\n   * @returns {number}\n   */\n  get pagesCount() {\n    return this.pdfDocument ? this.pdfDocument.numPages : 0;\n  }\n\n  /**\n   * @returns {number}\n   */\n  get page() {\n    return this.pdfViewer.currentPageNumber;\n  }\n\n  /**\n   * @param {number} value\n   */\n  set page(value) {\n    this.pdfViewer.currentPageNumber = value;\n  }\n\n  /**\n   * @returns {number}\n   */\n  get rotation() {\n    return this.pdfViewer.pagesRotation;\n  }\n\n  /**\n   * @param {number} value\n   */\n  set rotation(value) {\n    this.pdfViewer.pagesRotation = value;\n  }\n\n  /**\n   * @param {string|Array} dest - The named, or explicit, PDF destination.\n   */\n  navigateTo(dest) {\n    let goToDestination = ({ namedDest, explicitDest, }) => {\n      // Dest array looks like that: <page-ref> </XYZ|/FitXXX> <args..>\n      let destRef = explicitDest[0], pageNumber;\n\n      if (destRef instanceof Object) {\n        pageNumber = this._cachedPageNumber(destRef);\n\n        if (pageNumber === null) {\n          // Fetch the page reference if it's not yet available. This could\n          // only occur during loading, before all pages have been resolved.\n          this.pdfDocument.getPageIndex(destRef).then((pageIndex) => {\n            this.cachePageRef(pageIndex + 1, destRef);\n            goToDestination({ namedDest, explicitDest, });\n          }).catch(() => {\n            console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` +\n                          `a valid page reference, for dest=\"${dest}\".`);\n          });\n          return;\n        }\n      } else if (Number.isInteger(destRef)) {\n        pageNumber = destRef + 1;\n      } else {\n        console.error(`PDFLinkService.navigateTo: \"${destRef}\" is not ` +\n                      `a valid destination reference, for dest=\"${dest}\".`);\n        return;\n      }\n      if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {\n        console.error(`PDFLinkService.navigateTo: \"${pageNumber}\" is not ` +\n                      `a valid page number, for dest=\"${dest}\".`);\n        return;\n      }\n\n      if (this.pdfHistory) {\n        // Update the browser history before scrolling the new destination into\n        // view, to be able to accurately capture the current document position.\n        this.pdfHistory.pushCurrentPosition();\n        this.pdfHistory.push({ namedDest, explicitDest, pageNumber, });\n      }\n\n      this.pdfViewer.scrollPageIntoView({\n        pageNumber,\n        destArray: explicitDest,\n      });\n    };\n\n    new Promise((resolve, reject) => {\n      if (typeof dest === 'string') {\n        this.pdfDocument.getDestination(dest).then((destArray) => {\n          resolve({\n            namedDest: dest,\n            explicitDest: destArray,\n          });\n        });\n        return;\n      }\n      resolve({\n        namedDest: '',\n        explicitDest: dest,\n      });\n    }).then((data) => {\n      if (!Array.isArray(data.explicitDest)) {\n        console.error(`PDFLinkService.navigateTo: \"${data.explicitDest}\" is` +\n                      ` not a valid destination array, for dest=\"${dest}\".`);\n        return;\n      }\n      goToDestination(data);\n    });\n  }\n\n  /**\n   * @param {string|Array} dest - The PDF destination object.\n   * @returns {string} The hyperlink to the PDF object.\n   */\n  getDestinationHash(dest) {\n    if (typeof dest === 'string') {\n      return this.getAnchorUrl('#' + escape(dest));\n    }\n    if (Array.isArray(dest)) {\n      let str = JSON.stringify(dest);\n      return this.getAnchorUrl('#' + escape(str));\n    }\n    return this.getAnchorUrl('');\n  }\n\n  /**\n   * Prefix the full url on anchor links to make sure that links are resolved\n   * relative to the current URL instead of the one defined in <base href>.\n   * @param {String} anchor The anchor hash, including the #.\n   * @returns {string} The hyperlink to the PDF object.\n   */\n  getAnchorUrl(anchor) {\n    return (this.baseUrl || '') + anchor;\n  }\n\n  /**\n   * @param {string} hash\n   */\n  setHash(hash) {\n    let pageNumber, dest;\n    if (hash.includes('=')) {\n      let params = parseQueryString(hash);\n      if ('search' in params) {\n        this.eventBus.dispatch('findfromurlhash', {\n          source: this,\n          query: params['search'].replace(/\"/g, ''),\n          phraseSearch: (params['phrase'] === 'true'),\n        });\n      }\n      // borrowing syntax from \"Parameters for Opening PDF Files\"\n      if ('nameddest' in params) {\n        this.navigateTo(params.nameddest);\n        return;\n      }\n      if ('page' in params) {\n        pageNumber = (params.page | 0) || 1;\n      }\n      if ('zoom' in params) {\n        // Build the destination array.\n        let zoomArgs = params.zoom.split(','); // scale,left,top\n        let zoomArg = zoomArgs[0];\n        let zoomArgNumber = parseFloat(zoomArg);\n\n        if (!zoomArg.includes('Fit')) {\n          // If the zoomArg is a number, it has to get divided by 100. If it's\n          // a string, it should stay as it is.\n          dest = [null, { name: 'XYZ', },\n                  zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null,\n                  zoomArgs.length > 2 ? (zoomArgs[2] | 0) : null,\n                  (zoomArgNumber ? zoomArgNumber / 100 : zoomArg)];\n        } else {\n          if (zoomArg === 'Fit' || zoomArg === 'FitB') {\n            dest = [null, { name: zoomArg, }];\n          } else if ((zoomArg === 'FitH' || zoomArg === 'FitBH') ||\n                     (zoomArg === 'FitV' || zoomArg === 'FitBV')) {\n            dest = [null, { name: zoomArg, },\n                    zoomArgs.length > 1 ? (zoomArgs[1] | 0) : null];\n          } else if (zoomArg === 'FitR') {\n            if (zoomArgs.length !== 5) {\n              console.error(\n                'PDFLinkService.setHash: Not enough parameters for \"FitR\".');\n            } else {\n              dest = [null, { name: zoomArg, },\n                      (zoomArgs[1] | 0), (zoomArgs[2] | 0),\n                      (zoomArgs[3] | 0), (zoomArgs[4] | 0)];\n            }\n          } else {\n            console.error(`PDFLinkService.setHash: \"${zoomArg}\" is not ` +\n                          'a valid zoom value.');\n          }\n        }\n      }\n      if (dest) {\n        this.pdfViewer.scrollPageIntoView({\n          pageNumber: pageNumber || this.page,\n          destArray: dest,\n          allowNegativeOffset: true,\n        });\n      } else if (pageNumber) {\n        this.page = pageNumber; // simple page\n      }\n      if ('pagemode' in params) {\n        this.eventBus.dispatch('pagemode', {\n          source: this,\n          mode: params.pagemode,\n        });\n      }\n    } else { // Named (or explicit) destination.\n      dest = unescape(hash);\n      try {\n        dest = JSON.parse(dest);\n\n        if (!Array.isArray(dest)) {\n          // Avoid incorrectly rejecting a valid named destination, such as\n          // e.g. \"4.3\" or \"true\", because `JSON.parse` converted its type.\n          dest = dest.toString();\n        }\n      } catch (ex) {}\n\n      if (typeof dest === 'string' || isValidExplicitDestination(dest)) {\n        this.navigateTo(dest);\n        return;\n      }\n      console.error(`PDFLinkService.setHash: \"${unescape(hash)}\" is not ` +\n                    'a valid destination.');\n    }\n  }\n\n  /**\n   * @param {string} action\n   */\n  executeNamedAction(action) {\n    // See PDF reference, table 8.45 - Named action\n    switch (action) {\n      case 'GoBack':\n        if (this.pdfHistory) {\n          this.pdfHistory.back();\n        }\n        break;\n\n      case 'GoForward':\n        if (this.pdfHistory) {\n          this.pdfHistory.forward();\n        }\n        break;\n\n      case 'NextPage':\n        if (this.page < this.pagesCount) {\n          this.page++;\n        }\n        break;\n\n      case 'PrevPage':\n        if (this.page > 1) {\n          this.page--;\n        }\n        break;\n\n      case 'LastPage':\n        this.page = this.pagesCount;\n        break;\n\n      case 'FirstPage':\n        this.page = 1;\n        break;\n\n      default:\n        break; // No action according to spec\n    }\n\n    this.eventBus.dispatch('namedaction', {\n      source: this,\n      action,\n    });\n  }\n\n  /**\n   * @param {number} pageNum - page number.\n   * @param {Object} pageRef - reference to the page.\n   */\n  cachePageRef(pageNum, pageRef) {\n    if (!pageRef) {\n      return;\n    }\n    let refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n    this._pagesRefCache[refStr] = pageNum;\n  }\n\n  _cachedPageNumber(pageRef) {\n    let refStr = pageRef.num + ' ' + pageRef.gen + ' R';\n    return (this._pagesRefCache && this._pagesRefCache[refStr]) || null;\n  }\n}\n\nfunction isValidExplicitDestination(dest) {\n  if (!Array.isArray(dest)) {\n    return false;\n  }\n  let destLength = dest.length, allowNull = true;\n  if (destLength < 2) {\n    return false;\n  }\n  let page = dest[0];\n  if (!(typeof page === 'object' &&\n        Number.isInteger(page.num) && Number.isInteger(page.gen)) &&\n      !(Number.isInteger(page) && page >= 0)) {\n    return false;\n  }\n  let zoom = dest[1];\n  if (!(typeof zoom === 'object' && typeof zoom.name === 'string')) {\n    return false;\n  }\n  switch (zoom.name) {\n    case 'XYZ':\n      if (destLength !== 5) {\n        return false;\n      }\n      break;\n    case 'Fit':\n    case 'FitB':\n      return destLength === 2;\n    case 'FitH':\n    case 'FitBH':\n    case 'FitV':\n    case 'FitBV':\n      if (destLength !== 3) {\n        return false;\n      }\n      break;\n    case 'FitR':\n      if (destLength !== 6) {\n        return false;\n      }\n      allowNull = false;\n      break;\n    default:\n      return false;\n  }\n  for (let i = 2; i < destLength; i++) {\n    let param = dest[i];\n    if (!(typeof param === 'number' || (allowNull && param === null))) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/**\n * @implements {IPDFLinkService}\n */\nclass SimpleLinkService {\n  constructor() {\n    this.externalLinkTarget = null;\n    this.externalLinkRel = null;\n  }\n\n  /**\n   * @returns {number}\n   */\n  get pagesCount() {\n    return 0;\n  }\n\n  /**\n   * @returns {number}\n   */\n  get page() {\n    return 0;\n  }\n\n  /**\n   * @param {number} value\n   */\n  set page(value) {}\n\n  /**\n   * @returns {number}\n   */\n  get rotation() {\n    return 0;\n  }\n\n  /**\n   * @param {number} value\n   */\n  set rotation(value) {}\n\n  /**\n   * @param dest - The PDF destination object.\n   */\n  navigateTo(dest) {}\n\n  /**\n   * @param dest - The PDF destination object.\n   * @returns {string} The hyperlink to the PDF object.\n   */\n  getDestinationHash(dest) {\n    return '#';\n  }\n\n  /**\n   * @param hash - The PDF parameters/hash.\n   * @returns {string} The hyperlink to the PDF object.\n   */\n  getAnchorUrl(hash) {\n    return '#';\n  }\n\n  /**\n   * @param {string} hash\n   */\n  setHash(hash) {}\n\n  /**\n   * @param {string} action\n   */\n  executeNamedAction(action) {}\n\n  /**\n   * @param {number} pageNum - page number.\n   * @param {Object} pageRef - reference to the page.\n   */\n  cachePageRef(pageNum, pageRef) {}\n}\n\nexport {\n  PDFLinkService,\n  SimpleLinkService,\n};\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { EventBus } from './ui_utils';\n\n// Attaching to the application event bus to dispatch events to the DOM for\n// backwards viewer API compatibility.\nfunction attachDOMEventsToEventBus(eventBus) {\n  eventBus.on('documentload', function() {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('documentload', true, true, {});\n    window.dispatchEvent(event);\n  });\n  eventBus.on('pagerendered', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('pagerendered', true, true, {\n      pageNumber: evt.pageNumber,\n      cssTransform: evt.cssTransform,\n    });\n    evt.source.div.dispatchEvent(event);\n  });\n  eventBus.on('textlayerrendered', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('textlayerrendered', true, true, {\n      pageNumber: evt.pageNumber,\n    });\n    evt.source.textLayerDiv.dispatchEvent(event);\n  });\n  eventBus.on('pagechange', function(evt) {\n    let event = document.createEvent('UIEvents');\n    event.initUIEvent('pagechange', true, true, window, 0);\n    event.pageNumber = evt.pageNumber;\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('pagesinit', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('pagesinit', true, true, null);\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('pagesloaded', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('pagesloaded', true, true, {\n      pagesCount: evt.pagesCount,\n    });\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('scalechange', function(evt) {\n    let event = document.createEvent('UIEvents');\n    event.initUIEvent('scalechange', true, true, window, 0);\n    event.scale = evt.scale;\n    event.presetValue = evt.presetValue;\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('updateviewarea', function(evt) {\n    let event = document.createEvent('UIEvents');\n    event.initUIEvent('updateviewarea', true, true, window, 0);\n    event.location = evt.location;\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('find', function(evt) {\n    if (evt.source === window) {\n      return; // event comes from FirefoxCom, no need to replicate\n    }\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('find' + evt.type, true, true, {\n      query: evt.query,\n      phraseSearch: evt.phraseSearch,\n      caseSensitive: evt.caseSensitive,\n      highlightAll: evt.highlightAll,\n      findPrevious: evt.findPrevious,\n    });\n    window.dispatchEvent(event);\n  });\n  eventBus.on('attachmentsloaded', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('attachmentsloaded', true, true, {\n      attachmentsCount: evt.attachmentsCount,\n    });\n    evt.source.container.dispatchEvent(event);\n  });\n  eventBus.on('sidebarviewchanged', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('sidebarviewchanged', true, true, {\n      view: evt.view,\n    });\n    evt.source.outerContainer.dispatchEvent(event);\n  });\n  eventBus.on('pagemode', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('pagemode', true, true, {\n      mode: evt.mode,\n    });\n    evt.source.pdfViewer.container.dispatchEvent(event);\n  });\n  eventBus.on('namedaction', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('namedaction', true, true, {\n      action: evt.action,\n    });\n    evt.source.pdfViewer.container.dispatchEvent(event);\n  });\n  eventBus.on('presentationmodechanged', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('presentationmodechanged', true, true, {\n      active: evt.active,\n      switchInProgress: evt.switchInProgress,\n    });\n    window.dispatchEvent(event);\n  });\n  eventBus.on('outlineloaded', function(evt) {\n    let event = document.createEvent('CustomEvent');\n    event.initCustomEvent('outlineloaded', true, true, {\n      outlineCount: evt.outlineCount,\n    });\n    evt.source.container.dispatchEvent(event);\n  });\n}\n\nlet globalEventBus = null;\nfunction getGlobalEventBus(dispatchToDOM = false) {\n  if (!globalEventBus) {\n    globalEventBus = new EventBus({ dispatchToDOM, });\n    if (!dispatchToDOM) {\n      attachDOMEventsToEventBus(globalEventBus);\n    }\n  }\n  return globalEventBus;\n}\n\nexport {\n  attachDOMEventsToEventBus,\n  getGlobalEventBus,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst CSS_UNITS = 96.0 / 72.0;\nconst DEFAULT_SCALE_VALUE = 'auto';\nconst DEFAULT_SCALE = 1.0;\nconst MIN_SCALE = 0.10;\nconst MAX_SCALE = 10.0;\nconst UNKNOWN_SCALE = 0;\nconst MAX_AUTO_SCALE = 1.25;\nconst SCROLLBAR_PADDING = 40;\nconst VERTICAL_PADDING = 5;\n\nconst PresentationModeState = {\n  UNKNOWN: 0,\n  NORMAL: 1,\n  CHANGING: 2,\n  FULLSCREEN: 3,\n};\n\nconst RendererType = {\n  CANVAS: 'canvas',\n  SVG: 'svg',\n};\n\nconst TextLayerMode = {\n  DISABLE: 0,\n  ENABLE: 1,\n  ENABLE_ENHANCE: 2,\n};\n\n// Replaces {{arguments}} with their values.\nfunction formatL10nValue(text, args) {\n  if (!args) {\n    return text;\n  }\n  return text.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n    return (name in args ? args[name] : '{{' + name + '}}');\n  });\n}\n\n/**\n * No-op implementation of the localization service.\n * @implements {IL10n}\n */\nlet NullL10n = {\n  async getLanguage() {\n    return 'en-us';\n  },\n\n  async getDirection() {\n    return 'ltr';\n  },\n\n  async get(property, args, fallback) {\n    return formatL10nValue(fallback, args);\n  },\n\n  async translate(element) { },\n};\n\n/**\n * Returns scale factor for the canvas. It makes sense for the HiDPI displays.\n * @return {Object} The object with horizontal (sx) and vertical (sy)\n                    scales. The scaled property is set to false if scaling is\n                    not required, true otherwise.\n */\nfunction getOutputScale(ctx) {\n  let devicePixelRatio = window.devicePixelRatio || 1;\n  let backingStoreRatio = ctx.webkitBackingStorePixelRatio ||\n                          ctx.mozBackingStorePixelRatio ||\n                          ctx.msBackingStorePixelRatio ||\n                          ctx.oBackingStorePixelRatio ||\n                          ctx.backingStorePixelRatio || 1;\n  let pixelRatio = devicePixelRatio / backingStoreRatio;\n  return {\n    sx: pixelRatio,\n    sy: pixelRatio,\n    scaled: pixelRatio !== 1,\n  };\n}\n\n/**\n * Scrolls specified element into view of its parent.\n * @param {Object} element - The element to be visible.\n * @param {Object} spot - An object with optional top and left properties,\n *   specifying the offset from the top left edge.\n * @param {boolean} skipOverflowHiddenElements - Ignore elements that have\n *   the CSS rule `overflow: hidden;` set. The default is false.\n */\nfunction scrollIntoView(element, spot, skipOverflowHiddenElements = false) {\n  // Assuming offsetParent is available (it's not available when viewer is in\n  // hidden iframe or object). We have to scroll: if the offsetParent is not set\n  // producing the error. See also animationStarted.\n  let parent = element.offsetParent;\n  if (!parent) {\n    console.error('offsetParent is not set -- cannot scroll');\n    return;\n  }\n  let offsetY = element.offsetTop + element.clientTop;\n  let offsetX = element.offsetLeft + element.clientLeft;\n  while ((parent.clientHeight === parent.scrollHeight &&\n          parent.clientWidth === parent.scrollWidth) ||\n         (skipOverflowHiddenElements &&\n          getComputedStyle(parent).overflow === 'hidden')) {\n    if (parent.dataset._scaleY) {\n      offsetY /= parent.dataset._scaleY;\n      offsetX /= parent.dataset._scaleX;\n    }\n    offsetY += parent.offsetTop;\n    offsetX += parent.offsetLeft;\n    parent = parent.offsetParent;\n    if (!parent) {\n      return; // no need to scroll\n    }\n  }\n  if (spot) {\n    if (spot.top !== undefined) {\n      offsetY += spot.top;\n    }\n    if (spot.left !== undefined) {\n      offsetX += spot.left;\n      parent.scrollLeft = offsetX;\n    }\n  }\n  parent.scrollTop = offsetY;\n}\n\n/**\n * Helper function to start monitoring the scroll event and converting them into\n * PDF.js friendly one: with scroll debounce and scroll direction.\n */\nfunction watchScroll(viewAreaElement, callback) {\n  let debounceScroll = function(evt) {\n    if (rAF) {\n      return;\n    }\n    // schedule an invocation of scroll for next animation frame.\n    rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {\n      rAF = null;\n\n      let currentX = viewAreaElement.scrollLeft;\n      let lastX = state.lastX;\n      if (currentX !== lastX) {\n        state.right = currentX > lastX;\n      }\n      state.lastX = currentX;\n      let currentY = viewAreaElement.scrollTop;\n      let lastY = state.lastY;\n      if (currentY !== lastY) {\n        state.down = currentY > lastY;\n      }\n      state.lastY = currentY;\n      callback(state);\n    });\n  };\n\n  let state = {\n    right: true,\n    down: true,\n    lastX: viewAreaElement.scrollLeft,\n    lastY: viewAreaElement.scrollTop,\n    _eventHandler: debounceScroll,\n  };\n\n  let rAF = null;\n  viewAreaElement.addEventListener('scroll', debounceScroll, true);\n  return state;\n}\n\n/**\n * Helper function to parse query string (e.g. ?param1=value&parm2=...).\n */\nfunction parseQueryString(query) {\n  let parts = query.split('&');\n  let params = Object.create(null);\n  for (let i = 0, ii = parts.length; i < ii; ++i) {\n    let param = parts[i].split('=');\n    let key = param[0].toLowerCase();\n    let value = param.length > 1 ? param[1] : null;\n    params[decodeURIComponent(key)] = decodeURIComponent(value);\n  }\n  return params;\n}\n\n/**\n * Use binary search to find the index of the first item in a given array which\n * passes a given condition. The items are expected to be sorted in the sense\n * that if the condition is true for one item in the array, then it is also true\n * for all following items.\n *\n * @returns {Number} Index of the first array element to pass the test,\n *                   or |items.length| if no such element exists.\n */\nfunction binarySearchFirstItem(items, condition) {\n  let minIndex = 0;\n  let maxIndex = items.length - 1;\n\n  if (items.length === 0 || !condition(items[maxIndex])) {\n    return items.length;\n  }\n  if (condition(items[minIndex])) {\n    return minIndex;\n  }\n\n  while (minIndex < maxIndex) {\n    let currentIndex = (minIndex + maxIndex) >> 1;\n    let currentItem = items[currentIndex];\n    if (condition(currentItem)) {\n      maxIndex = currentIndex;\n    } else {\n      minIndex = currentIndex + 1;\n    }\n  }\n  return minIndex; /* === maxIndex */\n}\n\n/**\n *  Approximates float number as a fraction using Farey sequence (max order\n *  of 8).\n *  @param {number} x - Positive float number.\n *  @returns {Array} Estimated fraction: the first array item is a numerator,\n *                   the second one is a denominator.\n */\nfunction approximateFraction(x) {\n  // Fast paths for int numbers or their inversions.\n  if (Math.floor(x) === x) {\n    return [x, 1];\n  }\n  let xinv = 1 / x;\n  let limit = 8;\n  if (xinv > limit) {\n    return [1, limit];\n  } else if (Math.floor(xinv) === xinv) {\n    return [1, xinv];\n  }\n\n  let x_ = x > 1 ? xinv : x;\n  // a/b and c/d are neighbours in Farey sequence.\n  let a = 0, b = 1, c = 1, d = 1;\n  // Limiting search to order 8.\n  while (true) {\n    // Generating next term in sequence (order of q).\n    let p = a + c, q = b + d;\n    if (q > limit) {\n      break;\n    }\n    if (x_ <= p / q) {\n      c = p; d = q;\n    } else {\n      a = p; b = q;\n    }\n  }\n  let result;\n  // Select closest of the neighbours to x.\n  if (x_ - a / b < c / d - x_) {\n    result = x_ === x ? [a, b] : [b, a];\n  } else {\n    result = x_ === x ? [c, d] : [d, c];\n  }\n  return result;\n}\n\nfunction roundToDivide(x, div) {\n  let r = x % div;\n  return r === 0 ? x : Math.round(x - r + div);\n}\n\n/**\n * Gets the size of the specified page, converted from PDF units to inches.\n * @param {Object} An Object containing the properties: {Array} `view`,\n *   {number} `userUnit`, and {number} `rotate`.\n * @return {Object} An Object containing the properties: {number} `width`\n *   and {number} `height`, given in inches.\n */\nfunction getPageSizeInches({ view, userUnit, rotate, }) {\n  const [x1, y1, x2, y2] = view;\n  // We need to take the page rotation into account as well.\n  const changeOrientation = rotate % 180 !== 0;\n\n  const width = (x2 - x1) / 72 * userUnit;\n  const height = (y2 - y1) / 72 * userUnit;\n\n  return {\n    width: (changeOrientation ? height : width),\n    height: (changeOrientation ? width : height),\n  };\n}\n\n/**\n * Helper function for getVisibleElements.\n *\n * @param {number} index - initial guess at the first visible element\n * @param {Array} views - array of pages, into which `index` is an index\n * @param {number} top - the top of the scroll pane\n * @returns {number} less than or equal to `index` that is definitely at or\n *   before the first visible element in `views`, but not by too much. (Usually,\n *   this will be the first element in the first partially visible row in\n *   `views`, although sometimes it goes back one row further.)\n */\nfunction backtrackBeforeAllVisibleElements(index, views, top) {\n  // binarySearchFirstItem's assumption is that the input is ordered, with only\n  // one index where the conditions flips from false to true: [false ...,\n  // true...]. With vertical scrolling and spreads, it is possible to have\n  // [false ..., true, false, true ...]. With wrapped scrolling we can have a\n  // similar sequence, with many more mixed true and false in the middle.\n  //\n  // So there is no guarantee that the binary search yields the index of the\n  // first visible element. It could have been any of the other visible elements\n  // that were preceded by a hidden element.\n\n  // Of course, if either this element or the previous (hidden) element is also\n  // the first element, there's nothing to worry about.\n  if (index < 2) {\n    return index;\n  }\n\n  // That aside, the possible cases are represented below.\n  //\n  //     ****  = fully hidden\n  //     A*B*  = mix of partially visible and/or hidden pages\n  //     CDEF  = fully visible\n  //\n  // (1) Binary search could have returned A, in which case we can stop.\n  // (2) Binary search could also have returned B, in which case we need to\n  // check the whole row.\n  // (3) Binary search could also have returned C, in which case we need to\n  // check the whole previous row.\n  //\n  // There's one other possibility:\n  //\n  //     ****  = fully hidden\n  //     ABCD  = mix of fully and/or partially visible pages\n  //\n  // (4) Binary search could only have returned A.\n\n  // Initially assume that we need to find the beginning of the current row\n  // (case 1, 2, or 4), which means finding a page that is above the current\n  // page's top. If the found page is partially visible, we're definitely not in\n  // case 3, and this assumption is correct.\n  let elt = views[index].div;\n  let pageTop = elt.offsetTop + elt.clientTop;\n\n  if (pageTop >= top) {\n    // The found page is fully visible, so we're actually either in case 3 or 4,\n    // and unfortunately we can't tell the difference between them without\n    // scanning the entire previous row, so we just conservatively assume that\n    // we do need to backtrack to that row. In both cases, the previous page is\n    // in the previous row, so use its top instead.\n    elt = views[index - 1].div;\n    pageTop = elt.offsetTop + elt.clientTop;\n  }\n\n  // Now we backtrack to the first page that still has its bottom below\n  // `pageTop`, which is the top of a page in the first visible row (unless\n  // we're in case 4, in which case it's the row before that).\n  // `index` is found by binary search, so the page at `index - 1` is\n  // invisible and we can start looking for potentially visible pages from\n  // `index - 2`. (However, if this loop terminates on its first iteration,\n  // which is the case when pages are stacked vertically, `index` should remain\n  // unchanged, so we use a distinct loop variable.)\n  for (let i = index - 2; i >= 0; --i) {\n    elt = views[i].div;\n    if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {\n      // We have reached the previous row, so stop now.\n      // This loop is expected to terminate relatively quickly because the\n      // number of pages per row is expected to be small.\n      break;\n    }\n    index = i;\n  }\n  return index;\n}\n\n/**\n * Generic helper to find out what elements are visible within a scroll pane.\n *\n * Well, pretty generic. There are some assumptions placed on the elements\n * referenced by `views`:\n *   - If `horizontal`, no left of any earlier element is to the right of the\n *     left of any later element.\n *   - Otherwise, `views` can be split into contiguous rows where, within a row,\n *     no top of any element is below the bottom of any other element, and\n *     between rows, no bottom of any element in an earlier row is below the\n *     top of any element in a later row.\n *\n * (Here, top, left, etc. all refer to the padding edge of the element in\n * question. For pages, that ends up being equivalent to the bounding box of the\n * rendering canvas. Earlier and later refer to index in `views`, not page\n * layout.)\n *\n * @param scrollEl {HTMLElement} - a container that can possibly scroll\n * @param views {Array} - objects with a `div` property that contains an\n *   HTMLElement, which should all be descendents of `scrollEl` satisfying the\n *   above layout assumptions\n * @param sortByVisibility {boolean} - if true, the returned elements are sorted\n *   in descending order of the percent of their padding box that is visible\n * @param horizontal {boolean} - if true, the elements are assumed to be laid\n *   out horizontally instead of vertically\n * @returns {Object} `{ first, last, views: [{ id, x, y, view, percent }] }`\n */\nfunction getVisibleElements(scrollEl, views, sortByVisibility = false,\n                            horizontal = false) {\n  let top = scrollEl.scrollTop, bottom = top + scrollEl.clientHeight;\n  let left = scrollEl.scrollLeft, right = left + scrollEl.clientWidth;\n\n  // Throughout this \"generic\" function, comments will assume we're working with\n  // PDF document pages, which is the most important and complex case. In this\n  // case, the visible elements we're actually interested is the page canvas,\n  // which is contained in a wrapper which adds no padding/border/margin, which\n  // is itself contained in `view.div` which adds no padding (but does add a\n  // border). So, as specified in this function's doc comment, this function\n  // does all of its work on the padding edge of the provided views, starting at\n  // offsetLeft/Top (which includes margin) and adding clientLeft/Top (which is\n  // the border). Adding clientWidth/Height gets us the bottom-right corner of\n  // the padding edge.\n  function isElementBottomAfterViewTop(view) {\n    let element = view.div;\n    let elementBottom =\n      element.offsetTop + element.clientTop + element.clientHeight;\n    return elementBottom > top;\n  }\n  function isElementRightAfterViewLeft(view) {\n    let element = view.div;\n    let elementRight =\n      element.offsetLeft + element.clientLeft + element.clientWidth;\n    return elementRight > left;\n  }\n\n  let visible = [], view, element;\n  let currentHeight, viewHeight, viewBottom, hiddenHeight;\n  let currentWidth, viewWidth, viewRight, hiddenWidth;\n  let percentVisible;\n  let firstVisibleElementInd = views.length === 0 ? 0 :\n    binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft :\n                                              isElementBottomAfterViewTop);\n\n  if (views.length > 0 && !horizontal) {\n    // In wrapped scrolling (or vertical scrolling with spreads), with some page\n    // sizes, isElementBottomAfterViewTop doesn't satisfy the binary search\n    // condition: there can be pages with bottoms above the view top between\n    // pages with bottoms below. This function detects and corrects that error;\n    // see it for more comments.\n    firstVisibleElementInd =\n      backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);\n  }\n\n  // lastEdge acts as a cutoff for us to stop looping, because we know all\n  // subsequent pages will be hidden.\n  //\n  // When using wrapped scrolling or vertical scrolling with spreads, we can't\n  // simply stop the first time we reach a page below the bottom of the view;\n  // the tops of subsequent pages on the same row could still be visible. In\n  // horizontal scrolling, we don't have that issue, so we can stop as soon as\n  // we pass `right`, without needing the code below that handles the -1 case.\n  let lastEdge = horizontal ? right : -1;\n\n  for (let i = firstVisibleElementInd, ii = views.length; i < ii; i++) {\n    view = views[i];\n    element = view.div;\n    currentWidth = element.offsetLeft + element.clientLeft;\n    currentHeight = element.offsetTop + element.clientTop;\n    viewWidth = element.clientWidth;\n    viewHeight = element.clientHeight;\n    viewRight = currentWidth + viewWidth;\n    viewBottom = currentHeight + viewHeight;\n\n    if (lastEdge === -1) {\n      // As commented above, this is only needed in non-horizontal cases.\n      // Setting lastEdge to the bottom of the first page that is partially\n      // visible ensures that the next page fully below lastEdge is on the\n      // next row, which has to be fully hidden along with all subsequent rows.\n      if (viewBottom >= bottom) {\n        lastEdge = viewBottom;\n      }\n    } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {\n      break;\n    }\n\n    if (viewBottom <= top || currentHeight >= bottom ||\n        viewRight <= left || currentWidth >= right) {\n      continue;\n    }\n\n    hiddenHeight = Math.max(0, top - currentHeight) +\n      Math.max(0, viewBottom - bottom);\n    hiddenWidth = Math.max(0, left - currentWidth) +\n      Math.max(0, viewRight - right);\n    percentVisible = ((viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) *\n      100 / viewHeight / viewWidth) | 0;\n\n    visible.push({\n      id: view.id,\n      x: currentWidth,\n      y: currentHeight,\n      view,\n      percent: percentVisible,\n    });\n  }\n\n  let first = visible[0];\n  let last = visible[visible.length - 1];\n\n  if (sortByVisibility) {\n    visible.sort(function(a, b) {\n      let pc = a.percent - b.percent;\n      if (Math.abs(pc) > 0.001) {\n        return -pc;\n      }\n      return a.id - b.id; // ensure stability\n    });\n  }\n  return { first, last, views: visible, };\n}\n\n/**\n * Event handler to suppress context menu.\n */\nfunction noContextMenuHandler(evt) {\n  evt.preventDefault();\n}\n\nfunction isDataSchema(url) {\n  let i = 0, ii = url.length;\n  while (i < ii && url[i].trim() === '') {\n    i++;\n  }\n  return url.substring(i, i + 5).toLowerCase() === 'data:';\n}\n\n/**\n * Returns the filename or guessed filename from the url (see issue 3455).\n * @param {string} url - The original PDF location.\n * @param {string} defaultFilename - The value returned if the filename is\n *   unknown, or the protocol is unsupported.\n * @returns {string} Guessed PDF filename.\n */\nfunction getPDFFileNameFromURL(url, defaultFilename = 'document.pdf') {\n  if (typeof url !== 'string') {\n    return defaultFilename;\n  }\n  if (isDataSchema(url)) {\n    console.warn('getPDFFileNameFromURL: ' +\n                 'ignoring \"data:\" URL for performance reasons.');\n    return defaultFilename;\n  }\n  const reURI = /^(?:(?:[^:]+:)?\\/\\/[^\\/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n  //            SCHEME        HOST         1.PATH  2.QUERY   3.REF\n  // Pattern to get last matching NAME.pdf\n  const reFilename = /[^\\/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n  let splitURI = reURI.exec(url);\n  let suggestedFilename = reFilename.exec(splitURI[1]) ||\n                          reFilename.exec(splitURI[2]) ||\n                          reFilename.exec(splitURI[3]);\n  if (suggestedFilename) {\n    suggestedFilename = suggestedFilename[0];\n    if (suggestedFilename.includes('%')) {\n      // URL-encoded %2Fpath%2Fto%2Ffile.pdf should be file.pdf\n      try {\n        suggestedFilename =\n          reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n      } catch (ex) { // Possible (extremely rare) errors:\n        // URIError \"Malformed URI\", e.g. for \"%AA.pdf\"\n        // TypeError \"null has no properties\", e.g. for \"%2F.pdf\"\n      }\n    }\n  }\n  return suggestedFilename || defaultFilename;\n}\n\nfunction normalizeWheelEventDelta(evt) {\n  let delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);\n  let angle = Math.atan2(evt.deltaY, evt.deltaX);\n  if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {\n    // All that is left-up oriented has to change the sign.\n    delta = -delta;\n  }\n\n  const MOUSE_DOM_DELTA_PIXEL_MODE = 0;\n  const MOUSE_DOM_DELTA_LINE_MODE = 1;\n  const MOUSE_PIXELS_PER_LINE = 30;\n  const MOUSE_LINES_PER_PAGE = 30;\n\n  // Converts delta to per-page units\n  if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {\n    delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;\n  } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {\n    delta /= MOUSE_LINES_PER_PAGE;\n  }\n  return delta;\n}\n\nfunction isValidRotation(angle) {\n  return Number.isInteger(angle) && angle % 90 === 0;\n}\n\nfunction isPortraitOrientation(size) {\n  return size.width <= size.height;\n}\n\nconst WaitOnType = {\n  EVENT: 'event',\n  TIMEOUT: 'timeout',\n};\n\n/**\n * @typedef {Object} WaitOnEventOrTimeoutParameters\n * @property {Object} target - The event target, can for example be:\n *   `window`, `document`, a DOM element, or an {EventBus} instance.\n * @property {string} name - The name of the event.\n * @property {number} delay - The delay, in milliseconds, after which the\n *   timeout occurs (if the event wasn't already dispatched).\n */\n\n/**\n * Allows waiting for an event or a timeout, whichever occurs first.\n * Can be used to ensure that an action always occurs, even when an event\n * arrives late or not at all.\n *\n * @param {WaitOnEventOrTimeoutParameters}\n * @returns {Promise} A promise that is resolved with a {WaitOnType} value.\n */\nfunction waitOnEventOrTimeout({ target, name, delay = 0, }) {\n  return new Promise(function(resolve, reject) {\n    if (typeof target !== 'object' || !(name && typeof name === 'string') ||\n        !(Number.isInteger(delay) && delay >= 0)) {\n      throw new Error('waitOnEventOrTimeout - invalid parameters.');\n    }\n\n    function handler(type) {\n      if (target instanceof EventBus) {\n        target.off(name, eventHandler);\n      } else {\n        target.removeEventListener(name, eventHandler);\n      }\n\n      if (timeout) {\n        clearTimeout(timeout);\n      }\n      resolve(type);\n    }\n\n    const eventHandler = handler.bind(null, WaitOnType.EVENT);\n    if (target instanceof EventBus) {\n      target.on(name, eventHandler);\n    } else {\n      target.addEventListener(name, eventHandler);\n    }\n\n    const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);\n    let timeout = setTimeout(timeoutHandler, delay);\n  });\n}\n\n/**\n * Promise that is resolved when DOM window becomes visible.\n */\nlet animationStarted = new Promise(function (resolve) {\n  if ((typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) &&\n      typeof window === 'undefined') {\n    // Prevent \"ReferenceError: window is not defined\" errors when running the\n    // unit-tests in Node.js/Travis.\n    setTimeout(resolve, 20);\n    return;\n  }\n  window.requestAnimationFrame(resolve);\n});\n\n/**\n * Simple event bus for an application. Listeners are attached using the\n * `on` and `off` methods. To raise an event, the `dispatch` method shall be\n * used.\n */\nclass EventBus {\n  constructor({ dispatchToDOM = false, } = {}) {\n    this._listeners = Object.create(null);\n    this._dispatchToDOM = dispatchToDOM === true;\n  }\n\n  on(eventName, listener) {\n    let eventListeners = this._listeners[eventName];\n    if (!eventListeners) {\n      eventListeners = [];\n      this._listeners[eventName] = eventListeners;\n    }\n    eventListeners.push(listener);\n  }\n\n  off(eventName, listener) {\n    let eventListeners = this._listeners[eventName];\n    let i;\n    if (!eventListeners || ((i = eventListeners.indexOf(listener)) < 0)) {\n      return;\n    }\n    eventListeners.splice(i, 1);\n  }\n\n  dispatch(eventName) {\n    let eventListeners = this._listeners[eventName];\n    if (!eventListeners || eventListeners.length === 0) {\n      if (this._dispatchToDOM) {\n        const args = Array.prototype.slice.call(arguments, 1);\n        this._dispatchDOMEvent(eventName, args);\n      }\n      return;\n    }\n    // Passing all arguments after the eventName to the listeners.\n    const args = Array.prototype.slice.call(arguments, 1);\n    // Making copy of the listeners array in case if it will be modified\n    // during dispatch.\n    eventListeners.slice(0).forEach(function (listener) {\n      listener.apply(null, args);\n    });\n    if (this._dispatchToDOM) {\n      this._dispatchDOMEvent(eventName, args);\n    }\n  }\n\n  /**\n   * @private\n   */\n  _dispatchDOMEvent(eventName, args = null) {\n    if (!this._dispatchToDOM) {\n      return;\n    }\n    const details = Object.create(null);\n    if (args && args.length > 0) {\n      const obj = args[0];\n      for (let key in obj) {\n        const value = obj[key];\n        if (key === 'source') {\n          if (value === window || value === document) {\n            return; // No need to re-dispatch (already) global events.\n          }\n          continue; // Ignore the `source` property.\n        }\n        details[key] = value;\n      }\n    }\n    const event = document.createEvent('CustomEvent');\n    event.initCustomEvent(eventName, true, true, details);\n    document.dispatchEvent(event);\n  }\n}\n\nfunction clamp(v, min, max) {\n  return Math.min(Math.max(v, min), max);\n}\n\nclass ProgressBar {\n  constructor(id, { height, width, units, } = {}) {\n    this.visible = true;\n\n    // Fetch the sub-elements for later.\n    this.div = document.querySelector(id + ' .progress');\n    // Get the loading bar element, so it can be resized to fit the viewer.\n    this.bar = this.div.parentNode;\n\n    // Get options, with sensible defaults.\n    this.height = height || 100;\n    this.width = width || 100;\n    this.units = units || '%';\n\n    // Initialize heights.\n    this.div.style.height = this.height + this.units;\n    this.percent = 0;\n  }\n\n  _updateBar() {\n    if (this._indeterminate) {\n      this.div.classList.add('indeterminate');\n      this.div.style.width = this.width + this.units;\n      return;\n    }\n\n    this.div.classList.remove('indeterminate');\n    let progressSize = this.width * this._percent / 100;\n    this.div.style.width = progressSize + this.units;\n  }\n\n  get percent() {\n    return this._percent;\n  }\n\n  set percent(val) {\n    this._indeterminate = isNaN(val);\n    this._percent = clamp(val, 0, 100);\n    this._updateBar();\n  }\n\n  setWidth(viewer) {\n    if (!viewer) {\n      return;\n    }\n    let container = viewer.parentNode;\n    let scrollbarWidth = container.offsetWidth - viewer.offsetWidth;\n    if (scrollbarWidth > 0) {\n      this.bar.setAttribute('style', 'width: calc(100% - ' +\n                                     scrollbarWidth + 'px);');\n    }\n  }\n\n  hide() {\n    if (!this.visible) {\n      return;\n    }\n    this.visible = false;\n    this.bar.classList.add('hidden');\n    document.body.classList.remove('loadingInProgress');\n  }\n\n  show() {\n    if (this.visible) {\n      return;\n    }\n    this.visible = true;\n    document.body.classList.add('loadingInProgress');\n    this.bar.classList.remove('hidden');\n  }\n}\n\n/**\n * Moves all elements of an array that satisfy condition to the end of the\n * array, preserving the order of the rest.\n */\nfunction moveToEndOfArray(arr, condition) {\n  const moved = [], len = arr.length;\n  let write = 0;\n  for (let read = 0; read < len; ++read) {\n    if (condition(arr[read])) {\n      moved.push(arr[read]);\n    } else {\n      arr[write] = arr[read];\n      ++write;\n    }\n  }\n  for (let read = 0; write < len; ++read, ++write) {\n    arr[write] = moved[read];\n  }\n}\n\nexport {\n  CSS_UNITS,\n  DEFAULT_SCALE_VALUE,\n  DEFAULT_SCALE,\n  MIN_SCALE,\n  MAX_SCALE,\n  UNKNOWN_SCALE,\n  MAX_AUTO_SCALE,\n  SCROLLBAR_PADDING,\n  VERTICAL_PADDING,\n  isValidRotation,\n  isPortraitOrientation,\n  PresentationModeState,\n  RendererType,\n  TextLayerMode,\n  NullL10n,\n  EventBus,\n  ProgressBar,\n  getPDFFileNameFromURL,\n  noContextMenuHandler,\n  parseQueryString,\n  backtrackBeforeAllVisibleElements, // only exported for testing\n  getVisibleElements,\n  roundToDivide,\n  getPageSizeInches,\n  approximateFraction,\n  getOutputScale,\n  scrollIntoView,\n  watchScroll,\n  binarySearchFirstItem,\n  normalizeWheelEventDelta,\n  animationStarted,\n  WaitOnType,\n  waitOnEventOrTimeout,\n  moveToEndOfArray,\n};\n"],"sourceRoot":""}

Youez - 2016 - github.com/yon3zu
LinuXploit